]> git.sesse.net Git - ffmpeg/blobdiff - doc/ffmpeg.texi
mpegaudio: remove unused version of SAME_HEADER_MASK
[ffmpeg] / doc / ffmpeg.texi
index 1732c9b4bfd805d16508a8a4f60d6d384ffdb6d2..cabf39558245b338bf7943c14f0976bd48f14af1 100644 (file)
@@ -1,12 +1,14 @@
 \input texinfo @c -*- texinfo -*-
 
-@settitle FFmpeg Documentation
+@settitle ffmpeg Documentation
 @titlepage
-@sp 7
-@center @titlefont{FFmpeg Documentation}
-@sp 3
+@center @titlefont{ffmpeg Documentation}
 @end titlepage
 
+@top
+
+@contents
+
 @chapter Synopsis
 
 The generic syntax is:
@@ -20,17 +22,15 @@ ffmpeg [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{
 @chapter Description
 @c man begin DESCRIPTION
 
-FFmpeg is a very fast video and audio converter. It can also grab from
-a live audio/video source.
+ffmpeg is a very fast video and audio converter that can also grab from
+a live audio/video source. It can also convert between arbitrary sample
+rates and resize video on the fly with a high quality polyphase filter.
 
 The command line interface is designed to be intuitive, in the sense
-that FFmpeg tries to figure out all parameters that can possibly be
+that ffmpeg tries to figure out all parameters that can possibly be
 derived automatically. You usually only have to specify the target
 bitrate you want.
 
-FFmpeg can also convert from any sample rate to any other, and resize
-video on the fly with a high quality polyphase filter.
-
 As a general rule, options are applied to the next specified
 file. Therefore, order is important, and you can have the same
 option on the command line multiple times. Each occurrence is
@@ -59,7 +59,7 @@ ffmpeg -r 1 -i input.m2v -r 24 output.avi
 
 The format option may be needed for raw input files.
 
-By default, FFmpeg tries to convert as losslessly as possible: It
+By default ffmpeg tries to convert as losslessly as possible: It
 uses the same audio and video parameters for the outputs as the one
 specified for the inputs.
 
@@ -230,7 +230,13 @@ The following abbreviations are recognized:
 @end table
 
 @item -aspect @var{aspect}
-Set aspect ratio (4:3, 16:9 or 1.3333, 1.7777).
+Set the video display aspect ratio specified by @var{aspect}.
+
+@var{aspect} can be a floating point number string, or a string of the
+form @var{num}:@var{den}, where @var{num} and @var{den} are the
+numerator and denominator of the aspect ratio. For example "4:3",
+"16:9", "1.3333", and "1.7777" are valid argument values.
+
 @item -croptop @var{size}
 @item -cropbottom @var{size}
 @item -cropleft @var{size}
@@ -270,7 +276,7 @@ Set video buffer verifier buffer size (in bits).
 Force video codec to @var{codec}. Use the @code{copy} special value to
 tell that the raw codec data must be copied as is.
 @item -sameq
-Use same video quality as source (implies VBR).
+Use same quantizer as source (implies VBR).
 
 @item -pass @var{n}
 Select the pass number (1 or 2). It is used to do two-pass
@@ -484,7 +490,7 @@ Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
 macroblock decision
 @table @samp
 @item 0
-FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in FFmpeg).
+FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in ffmpeg).
 @item 1
 FF_MB_DECISION_BITS: Choose the one which needs the fewest bits.
 @item 2
@@ -584,6 +590,28 @@ Set the ISO 639 language code (3 letters) of the current audio stream.
 @table @option
 @item -atag @var{fourcc/tag}
 Force audio tag/fourcc.
+@item -audio_service_type @var{type}
+Set the type of service that the audio stream contains.
+@table @option
+@item ma
+Main Audio Service (default)
+@item ef
+Effects
+@item vi
+Visually Impaired
+@item hi
+Hearing Impaired
+@item di
+Dialogue
+@item co
+Commentary
+@item em
+Emergency
+@item vo
+Voice Over
+@item ka
+Karaoke
+@end table
 @item -absf @var{bitstream_filter}
 Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp", "mp3decomp".
 @end table
@@ -620,13 +648,48 @@ Synchronize read on input.
 @section Advanced options
 
 @table @option
-@item -map @var{input_stream_id}[:@var{sync_stream_id}]
-Set stream mapping from input streams to output streams.
-Just enumerate the input streams in the order you want them in the output.
-@var{sync_stream_id} if specified sets the input stream to sync
-against.
+@item -map @var{input_file_id}.@var{input_stream_id}[:@var{sync_file_id}.@var{sync_stream_id}]
+
+Designate an input stream as a source for the output file. Each input
+stream is identified by the input file index @var{input_file_id} and
+the input stream index @var{input_stream_id} within the input
+file. Both indexes start at 0. If specified,
+@var{sync_file_id}.@var{sync_stream_id} sets which input stream
+is used as a presentation sync reference.
+
+The @code{-map} options must be specified just after the output file.
+If any @code{-map} options are used, the number of @code{-map} options
+on the command line must match the number of streams in the output
+file. The first @code{-map} option on the command line specifies the
+source for output stream 0, the second @code{-map} option specifies
+the source for output stream 1, etc.
+
+For example, if you have two audio streams in the first input file,
+these streams are identified by "0.0" and "0.1". You can use
+@code{-map} to select which stream to place in an output file. For
+example:
+@example
+ffmpeg -i INPUT out.wav -map 0.1
+@end example
+will map the input stream in @file{INPUT} identified by "0.1" to
+the (single) output stream in @file{out.wav}.
+
+For example, to select the stream with index 2 from input file
+@file{a.mov} (specified by the identifier "0.2"), and stream with
+index 6 from input @file{b.mov} (specified by the identifier "1.6"),
+and copy them to the output file @file{out.mov}:
+@example
+ffmpeg -i a.mov -i b.mov -vcodec copy -acodec copy out.mov -map 0.2 -map 1.6
+@end example
+
+To add more streams to the output file, you can use the
+@code{-newaudio}, @code{-newvideo}, @code{-newsubtitle} options.
+
 @item -map_meta_data @var{outfile}[,@var{metadata}]:@var{infile}[,@var{metadata}]
-Set meta data information of @var{outfile} from @var{infile}. Note that those
+Deprecated, use @var{-map_metadata} instead.
+
+@item -map_metadata @var{outfile}[,@var{metadata}]:@var{infile}[,@var{metadata}]
+Set metadata information of @var{outfile} from @var{infile}. Note that those
 are file indices (zero-based), not filenames.
 Optional @var{metadata} parameters specify, which metadata to copy - (g)lobal
 (i.e. metadata that applies to the whole file), per-(s)tream, per-(c)hapter or
@@ -642,7 +705,7 @@ file index can be used to create a dummy mapping that just disables automatic co
 For example to copy metadata from the first stream of the input file to global metadata
 of the output file:
 @example
-ffmpeg -i in.ogg -map_meta_data 0:0,s0 out.mp3
+ffmpeg -i in.ogg -map_metadata 0:0,s0 out.mp3
 @end example
 @item -map_chapters @var{outfile}:@var{infile}
 Copy chapters from @var{infile} to @var{outfile}. If no chapter mapping is specified,
@@ -730,7 +793,7 @@ A preset file contains a sequence of @var{option}=@var{value} pairs,
 one for each line, specifying a sequence of options which would be
 awkward to specify on the command line. Lines starting with the hash
 ('#') character are ignored and are used to provide comments. Check
-the @file{ffpresets} directory in the FFmpeg source tree for examples.
+the @file{ffpresets} directory in the Libav source tree for examples.
 
 Preset files are specified with the @code{vpre}, @code{apre},
 @code{spre}, and @code{fpre} options. The @code{fpre} option takes the
@@ -809,22 +872,22 @@ It allows almost lossless encoding.
 
 @section Video and Audio grabbing
 
-FFmpeg can grab video and audio from devices given that you specify the input
-format and device.
+If you specify the input format and device then ffmpeg can grab video
+and audio directly.
 
 @example
 ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
 @end example
 
 Note that you must activate the right video source and channel before
-launching FFmpeg with any TV viewer such as xawtv
+launching ffmpeg with any TV viewer such as xawtv
 (@url{http://linux.bytesex.org/xawtv/}) by Gerd Knorr. You also
 have to set the audio recording levels correctly with a
 standard mixer.
 
 @section X11 grabbing
 
-FFmpeg can grab the X11 display.
+Grab the X11 display with ffmpeg via
 
 @example
 ffmpeg -f x11grab -s cif -r 25 -i :0.0 /tmp/out.mpg
@@ -842,7 +905,7 @@ variable. 10 is the x-offset and 20 the y-offset for the grabbing.
 
 @section Video and Audio file format conversion
 
-FFmpeg can use any supported file format and protocol as input:
+Any supported file format and protocol can serve as input to ffmpeg:
 
 Examples:
 @itemize
@@ -862,7 +925,7 @@ It will use the files:
 The Y files use twice the resolution of the U and V files. They are
 raw files, without header. They can be generated by all decent video
 decoders. You must specify the size of the image with the @option{-s} option
-if FFmpeg cannot guess it.
+if ffmpeg cannot guess it.
 
 @item
 You can input from a raw YUV420P file:
@@ -976,7 +1039,9 @@ file to which you want to add them.
 @c man end EXAMPLES
 
 @include eval.texi
+@include encoders.texi
 @include demuxers.texi
+@include muxers.texi
 @include indevs.texi
 @include outdevs.texi
 @include protocols.texi
@@ -987,14 +1052,14 @@ file to which you want to add them.
 @ignore
 
 @setfilename ffmpeg
-@settitle FFmpeg video converter
+@settitle ffmpeg video converter
 
 @c man begin SEEALSO
-ffplay(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation
+ffplay(1), ffprobe(1), ffserver(1) and the Libav HTML documentation
 @c man end
 
 @c man begin AUTHORS
-The FFmpeg developers
+The Libav developers
 @c man end
 
 @end ignore