diff options
Diffstat (limited to 'doc/metadata.texi')
-rw-r--r-- | doc/metadata.texi | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/doc/metadata.texi b/doc/metadata.texi index cfaf491c2d..bddcc99470 100644 --- a/doc/metadata.texi +++ b/doc/metadata.texi @@ -1,7 +1,7 @@ @chapter Metadata @c man begin METADATA -Libav is able to dump metadata from media files into a simple UTF-8-encoded +FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded INI-like text file and then load it back using the metadata muxer/demuxer. The file format is as follows: @@ -12,10 +12,10 @@ A file consists of a header and a number of metadata tags divided into sections, each on its own line. @item -The header is a ';FFMETADATA' string, followed by a version number (now 1). +The header is a @samp{;FFMETADATA} string, followed by a version number (now 1). @item -Metadata tags are of the form 'key=value' +Metadata tags are of the form @samp{key=value} @item Immediately after header follows global metadata @@ -26,26 +26,30 @@ metadata. @item A section starts with the section name in uppercase (i.e. STREAM or CHAPTER) in -brackets ('[', ']') and ends with next section or end of file. +brackets (@samp{[}, @samp{]}) and ends with next section or end of file. @item At the beginning of a chapter section there may be an optional timebase to be -used for start/end values. It must be in form 'TIMEBASE=num/den', where num and -den are integers. If the timebase is missing then start/end times are assumed to +used for start/end values. It must be in form +@samp{TIMEBASE=@var{num}/@var{den}}, where @var{num} and @var{den} are +integers. If the timebase is missing then start/end times are assumed to be in milliseconds. + Next a chapter section must contain chapter start and end times in form -'START=num', 'END=num', where num is a positive integer. +@samp{START=@var{num}}, @samp{END=@var{num}}, where @var{num} is a positive +integer. @item -Empty lines and lines starting with ';' or '#' are ignored. +Empty lines and lines starting with @samp{;} or @samp{#} are ignored. @item -Metadata keys or values containing special characters ('=', ';', '#', '\' and a -newline) must be escaped with a backslash '\'. +Metadata keys or values containing special characters (@samp{=}, @samp{;}, +@samp{#}, @samp{\} and a newline) must be escaped with a backslash @samp{\}. @item -Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of -the tag (in the example above key is 'foo ', value is ' bar'). +Note that whitespace in metadata (e.g. @samp{foo = bar}) is considered to be +a part of the tag (in the example above key is @samp{foo }, value is +@samp{ bar}). @end enumerate A ffmetadata file might look like this: @@ -53,7 +57,7 @@ A ffmetadata file might look like this: ;FFMETADATA1 title=bike\\shed ;this is a comment -artist=Libav troll team +artist=FFmpeg troll team [CHAPTER] TIMEBASE=1/1000 @@ -65,4 +69,20 @@ title=chapter \#1 title=multi\ line @end example + +By using the ffmetadata muxer and demuxer it is possible to extract +metadata from an input file to an ffmetadata file, and then transcode +the file into an output file with the edited ffmetadata file. + +Extracting an ffmetadata file with @file{ffmpeg} goes as follows: +@example +ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE +@end example + +Reinserting edited metadata information from the FFMETADATAFILE file can +be done as: +@example +ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT +@end example + @c man end METADATA |