sreview-transcode - transcode the output of sreview-cut into
production-quality media files
"sreview-transcode" performs the
following actions:
- Look up the talk with id TALKID in the database.
- Create the preroll slide from the preroll template, after applying
template changes to it
- If a postroll template is defined, create the postroll slide using the
same process as for the preroll slide. If no postroll template is defined,
use the statically configured preroll
- If an apology template is defined and the current talk has an apology note
that is not zero length and not NULL, create the apology slide for this
talk
- Convert the preroll slide, postroll slide, and (if any) apology slide to a
5-second video with the same properties as the main raw video
- For each of the configured profiles, do a two-pass transcode of the
concatenated version of preroll, apology (if available), main, and
postroll videos to a production video
"sreview-transcode" considers
the following configuration values:
- dbistring
- The DBI string used to connect to the database
- pubdir
- The directory in which to find the output of
"sreview-cut"
- outputdir
- The top-level directory in which to store production output data
- output_subdirs
- Array of fields on which to base subdirectories to be created under
"outputdir". The fields can be one or
more of:
- eventid
- The ID number of the event that this talk was recorded at
- event
- The name of the event that this talk was recorded at
- event_output
- The "outputdir" value in row of the events field of the event
that this talk was recorded at.
- room
- The name of the room in which this talk was recorded
- date
- The date on which this talk occurred
- year
- The year in which this talk occurred
- workdir
- The location where any temporary files are stored. Defaults to
"/tmp", but can be overridden if
necessary. These temporary files are removed when
"sreview-transcode" finishes.
- preroll_template
- The name of an SVG or Synfig template to be used for the preroll (i.e.,
opening credits). Required.
- postroll_template
- The name of an SVG or Synfig template to be used for the postroll (i.e.,
closing credits). Either this option or
"postroll" is required.
- postroll
- The name of a PNG file to be used for the postroll (i.e., closing
credits). Either this option or
"postroll_template" is required.
- template_format
- Whether the preroll, postroll, and apology templates are in SVG or Synfig
format. Currently, either all templates are SVG, or all templates are
synfig; the two cannot be combined.
Valid values are "svg" (for SVG) or
"synfig" (for synfig). Defaults to "svg".
- apology_template
- The name of an SVG template to be used for the apology slide (shown right
after the opening credits if an apology was entered). Only required if at
least one talk has an apology entered.
- input_profile
- A profile that generates videos which can be concatenated with input
videos without re-transcoding anything. If not specified, uses the input
video as a "profile".
- output_profiles
- An array of profile names to be produced (see above for the details).
Defaults to "webm".
- embedded
metadata
- The video files get metadata set based on the track data in the database.
A useful set of metadata tags can be found in
http://wiki.webmproject.org/webm-metadata/global-metadata,
https://www.matroska.org/technical/tagging.html and
/usr/share/doc/libimage-exiftool-perl/html/TagNames/Matroska.html.
The following metadata values are set using the
%sql2ffmpeg_map settings:
matruska/webm ffmpeg debconf
------------------------------------------------------- title title
event event speakers speakers track track
date starttime recording_location - room
synopsis - description subtitle - subtitle
The following values are per 2023-09-14 not available in the
data set.
matruska/webm ffmpeg debconf
-------------------------------------------------------
subject - track? content_type - type? copyright - ?
license - ? url - eventurl (to event page)
The transformation performed over the SVG files is a simple
"sed"-like replacement of input tags in
the template file. All data is XML-escaped first, however.
The following tags can be set inside the SVG file:
- @SPEAKERS@
- The names of the speakers, in this format:
Firstname Lastname, Firstname Lastname and Firstname
Lastname
- @ROOM@
- The name of the room where the talk was held.
- @TITLE@
- The title of the talk.
- @SUBTITLE@
- The subtitle of the talk.
- @DATE@
- The date on which the talk was held.
- @APOLOGY@
- The apology note defined for this talk.
If one of these fields has no data for the given talk, then the
tag will be replaced by the empty string instead.
In addition, as of version 0.7, the template is processed by
Mojo::Template with the SReview::Talk object for the current talk assigned
to the $talk variable, which allows for far more
flexibility. See the documentation of Mojo::Template for more details on
that templating engine, and the documentation of SReview::Talk for the
available values from that object.
(As an aside, the SVG transformations are actually implemented
through SReview::Template::SVG. See the documentation for that module for
details)
sreview-cut, sreview-previews, sreview-skip, sreview-config,
Media::Convert::Asset::ProfileFactory, SReview::Talk, Mojo::Template.
Hey! The above document had some coding errors, which are
explained below:
- Around line 311:
- '=item' outside of any '=over'