summaryrefslogtreecommitdiff
path: root/doc/metadata.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/metadata.texi')
-rw-r--r--doc/metadata.texi46
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