]> git.sesse.net Git - ffmpeg/blobdiff - doc/ffmpeg-doc.texi
-s option have different defaults for ffmpeg and ffserver cases.
[ffmpeg] / doc / ffmpeg-doc.texi
index 554f5d01f073ae39be42154fbf46df7ed6fb961f..768471b53f51241ba8f2cc0153977b0b4ffd922b 100644 (file)
@@ -39,6 +39,24 @@ launching FFmpeg with any TV viewer such as xawtv
 have to set the audio recording levels correctly with a
 standard mixer.
 
+@section X11 grabbing
+
+FFmpeg can grab the X11 display.
+
+@example
+ffmpeg -f x11grab -vd x11:0.0 /tmp/out.mpg
+@end example
+
+0.0 is display.screen number of your X11 server, same as
+the DISPLAY environment variable.
+
+@example
+ffmpeg -f x11grab -vd x11:0.0+10,20 /tmp/out.mpg
+@end example
+
+0.0 is display.screen number of your X11 server, same as the DISPLAY environment
+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:
@@ -139,9 +157,31 @@ ffmpeg [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{
 If no input file is given, audio/video grabbing is done.
 
 As a general rule, options are applied to the next specified
-file. For example, if you give the @option{-b 64k} option, it sets the video
-bitrate of the next file. The format option may be needed for raw input
-files.
+file. Therefore, order is important, and you can have the same
+option on the command line multiple times. Each occurrence is
+then applied to the next input or output file.
+
+* To set the video bitrate of the output file to 64kbit/s:
+@example
+ffmpeg -i input.avi -b 64k output.avi
+@end example
+
+* To force the frame rate of the input and output file to 24 fps:
+@example
+ffmpeg -r 24 -i input.avi output.avi
+@end example
+
+* To force the frame rate of the output file to 24 fps:
+@example
+ffmpeg -i input.avi -r 24 output.avi
+@end example
+
+* To force the frame rate of input file to 1 fps and the output file to 24 fps:
+@example
+ffmpeg -r 1 -i input.avi -r 24 output.avi
+@end example
+
+The format option may be needed for raw input files.
 
 By default, FFmpeg tries to convert as losslessly as possible: It
 uses the same audio and video parameters for the outputs as the one
@@ -158,6 +198,9 @@ Show license.
 @item -h
 Show help.
 
+@item -version
+Show version.
+
 @item -formats
 Show available formats, codecs, protocols, ...
 
@@ -174,13 +217,27 @@ Overwrite output files.
 Set the recording time in seconds.
 @code{hh:mm:ss[.xxx]} syntax is also supported.
 
+@item -fs limit_size
+Set the file size limit.
+
 @item -ss position
 Seek to given time position in seconds.
 @code{hh:mm:ss[.xxx]} syntax is also supported.
 
+@item -itsoffset offset
+Set the input time offset in seconds.
+@code{[-]hh:mm:ss[.xxx]} syntax is also supported.
+This option affects all the input files that follow it.
+The offset is added to the timestamps of the input files.
+Specifying a positive offset means that the corresponding
+streams are delayed by 'offset' seconds.
+
 @item -title string
 Set the title.
 
+@item -timestamp time
+Set the timestamp.
+
 @item -author string
 Set the author.
 
@@ -190,14 +247,20 @@ Set the copyright.
 @item -comment string
 Set the comment.
 
+@item -album string
+Set the album.
+
 @item -track number
 Set the track.
 
 @item -year number
 Set the year.
 
+@item -v verbose
+Control amount of logging.
+
 @item -target type
-Specify target file type ("vcd", "svcd", "dvd", "dv", "pal-vcd",
+Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd",
 "ntsc-svcd", ... ). All the format options (bitrate, codecs,
 buffer sizes) are then set automatically. You can just type:
 
@@ -212,13 +275,17 @@ they do not conflict with the standard, as in:
 ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
 @end example
 
-@item -itsoffset offset
-Set the input time offset in seconds.
-@code{[-]hh:mm:ss[.xxx]} syntax is also supported.
-This option affects all the input files that follow it.
-The offset is added to the timestamps of the input files.
-Specifying a positive offset means that the corresponding
-streams are delayed by 'offset' seconds.
+@item -dframes number
+Set the number of data frames to record.
+
+@item -scodec codec
+Force subtitle codec ('copy' to copy stream).
+
+@item -newsubtitle
+Add a new subtitle stream to the current output stream.
+
+@item -slang code
+Set the ISO 639 language code (3 letters) of the current subtitle stream.
 
 @end table
 
@@ -227,10 +294,12 @@ streams are delayed by 'offset' seconds.
 @table @option
 @item -b bitrate
 Set the video bitrate in bit/s (default = 200 kb/s).
+@item -vframes number
+Set the number of video frames to record.
 @item -r fps
-Set frame rate (default = 25).
+Set frame rate (Hz value, fraction or abbreviation), (default = 25).
 @item -s size
-Set frame size. The format is @samp{wxh} (default = 160x128).
+Set frame size. The format is @samp{wxh} (ffserver default = 160x128, ffmpeg default = same as source).
 The following abbreviations are recognized:
 @table @samp
 @item sqcif
@@ -291,27 +360,34 @@ in the second pass.
 @item -passlogfile file
 Set two pass logfile name to @var{file}.
 
+@item -newvideo
+Add a new video stream to the current output stream.
+
 @end table
 
 @section Advanced Video Options
 
 @table @option
+@item -pix_fmt format
+Set pixel format.
 @item -g gop_size
 Set the group of pictures size.
 @item -intra
 Use only intra frames.
+@item -vdt n
+Discard threshold.
 @item -qscale q
-Use fixed video quantiser scale (VBR).
+Use fixed video quantizer scale (VBR).
 @item -qmin q
-minimum video quantiser scale (VBR)
+minimum video quantizer scale (VBR)
 @item -qmax q
-maximum video quantiser scale (VBR)
+maximum video quantizer scale (VBR)
 @item -qdiff q
-maximum difference between the quantiser scales (VBR)
+maximum difference between the quantizer scales (VBR)
 @item -qblur blur
-video quantiser scale blur (VBR)
+video quantizer scale blur (VBR)
 @item -qcomp compression
-video quantiser scale compression (VBR)
+video quantizer scale compression (VBR)
 
 @item -lmin lambda
 minimum video lagrange factor (VBR)
@@ -466,11 +542,23 @@ Dump video coding statistics to @file{vstats_HHMMSS.log}.
 @item -vhook module
 Insert video processing @var{module}. @var{module} contains the module
 name and its parameters separated by spaces.
+@item -top n
+top=1/bottom=0/auto=-1 field first
+@item -dc precision
+Intra_dc_precision.
+@item -vtag fourcc/tag
+Force video tag/fourcc.
+@item -qphist
+Show QP histogram.
+@item -vbsf bitstream filter
+Bitstream filters available are "dump_extra", "remove_extra", "noise".
 @end table
 
 @section Audio Options
 
 @table @option
+@item -aframes number
+Set the number of audio frames to record.
 @item -ar freq
 Set the audio sampling frequency (default = 44100 Hz).
 @item -ab bitrate
@@ -482,6 +570,40 @@ Disable audio recording.
 @item -acodec codec
 Force audio codec to @var{codec}. Use the @code{copy} special value to
 specify that the raw codec data must be copied as is.
+@item -newaudio
+Add a new audio track to the output file. If you want to specify parameters,
+do so before @code{-newaudio} (@code{-acodec}, @code{-ab}, etc..).
+
+Mapping will be done automatically, if the number of output streams is equal to
+the number of input streams, else it will pick the first one that matches. You
+can override the mapping using @code{-map} as usual.
+
+Example:
+@example
+ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384 test.mpg -acodec mp2 -ab 192 -newaudio
+@end example
+@item -alang code
+Set the ISO 639 language code (3 letters) of the current audio stream.
+@end table
+
+@section Advanced Audio options:
+
+@table @option
+@item -atag fourcc/tag
+Force audio tag/fourcc.
+@item -absf bitstream filter
+Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp", "mp3decomp".
+@end table
+
+@section Subtitle options:
+
+@table @option
+@item -scodec codec
+Force subtitle codec ('copy' to copy stream).
+@item -newsubtitle
+Add a new subtitle stream to the current output stream.
+@item -slang code
+Set the ISO 639 language code (3 letters) of the current subtitle stream.
 @end table
 
 @section Audio/Video grab options
@@ -497,6 +619,10 @@ Set television standard (NTSC, PAL (SECAM)).
 Set DV1394 grab.
 @item -ad device
 Set audio device (e.g. @file{/dev/dsp}).
+@item -grab format
+Request grabbing using.
+@item -gd device
+Set grab device.
 @end table
 
 @section Advanced options
@@ -506,24 +632,30 @@ Set audio device (e.g. @file{/dev/dsp}).
 Set stream mapping from input streams to output streams.
 Just enumerate the input streams in the order you want them in the output.
 [input stream id] sets the (input) stream to sync against.
+@item -map_meta_data outfile:infile
+Set meta data information of outfile from infile.
 @item -debug
 Print specific debug info.
 @item -benchmark
 Add timings for benchmarking.
-@item -hex
+@item -dump
 Dump each input packet.
+@item -hex
+When dumping packets, also dump the payload.
 @item -bitexact
 Only use bit exact algorithms (for codec testing).
 @item -ps size
 Set packet size in bits.
 @item -re
 Read input at native frame rate. Mainly used to simulate a grab device.
-@item -loop
+@item -loop_input
 Loop over the input stream. Currently it works only for image
 streams. This option is used for automatic FFserver testing.
 @item -loop_output number_of_times
 Repeatedly loop output for formats that support looping such as animated GIF
 (0 will loop the output infinitely).
+@item -threads count
+Thread count.
 @item -vsync parameter
 Video sync method. Video will be stretched/squeezed to match the timestamps,
 it is done by duplicating and dropping frames. With -map you can select from
@@ -662,6 +794,40 @@ It allows almost lossless encoding.
 
 @end itemize
 
+
+@chapter external libraries
+
+FFmpeg can be hooked up with a number of external libraries to add support
+for more formats.
+
+@section AMR
+
+AMR comes in two different flavors, WB and NB. FFmpeg can make use of the
+AMR WB (floating-point mode) and the AMR NB (both floating-point and
+fixed-point mode) reference decoders and encoders.
+
+@itemize
+
+@item For AMR WB floating-point download TS26.204 V5.1.0 from
+@url{http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip}
+and extract the source to @file{libavcodec/amrwb_float/}.
+
+@item For AMR NB floating-point download TS26.104 REL-5 V5.1.0 from
+@url{http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip}
+and extract the source to @file{libavcodec/amr_float/}.
+If you try this on Alpha, you may need to change @code{Word32} to
+@code{int} in @file{amr/typedef.h}.
+
+@item For AMR NB fixed-point download TS26.073 REL-5 V5.1.0 from
+@url{http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip}
+and extract the source to @file{libavcodec/amr}.
+You must also add @code{-DMMS_IO} and remove @code{-pedantic-errors}
+to/from @code{CFLAGS} in @file{libavcodec/amr/makefile}, i.e.
+``@code{CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO}''.
+
+@end itemize
+
+
 @chapter Supported File Formats and Codecs
 
 You can use the @code{-formats} option to have an exhaustive list.
@@ -734,7 +900,14 @@ library:
 @tab Multimedia format used by the Creature Shock game.
 @item Smacker @tab    @tab X
 @tab Multimedia format used by many games.
-@item GXF @tab    @tab X
+@item GXF @tab  X @tab X
+@tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley playout servers.
+@item CIN @tab    @tab X
+@tab Multimedia format used by Delphine Software games.
+@item MXF @tab    @tab X
+@tab Material eXchange Format SMPTE 377M, used by D-Cinema, broadcast industry.
+@item SEQ @tab    @tab X
+@tab Tiertex .seq files used in the DOS CDROM version of the game Flashback.
 @end multitable
 
 @code{X} means that encoding (resp. decoding) is supported.
@@ -753,6 +926,8 @@ following image formats are supported:
 @item .Y.U.V       @tab X @tab X @tab one raw file per component
 @item animated GIF @tab X @tab X @tab Only uncompressed GIFs are generated.
 @item PNG          @tab X @tab X @tab 2 bit and 4 bit/pixel not supported yet.
+@item Targa        @tab   @tab X @tab Targa (.TGA) image format.
+@item TIFF         @tab   @tab X @tab Only 24 bit/pixel images are supported.
 @item SGI          @tab X @tab X @tab SGI RGB image format
 @end multitable
 
@@ -764,12 +939,14 @@ following image formats are supported:
 @item Supported Codec @tab Encoding @tab Decoding @tab Comments
 @item MPEG-1 video           @tab  X  @tab  X
 @item MPEG-2 video           @tab  X  @tab  X
-@item MPEG-4                 @tab  X  @tab  X @tab also known as DivX4/5
+@item MPEG-4                 @tab  X  @tab  X
 @item MSMPEG4 V1             @tab  X  @tab  X
 @item MSMPEG4 V2             @tab  X  @tab  X
-@item MSMPEG4 V3             @tab  X  @tab  X @tab also known as DivX3
+@item MSMPEG4 V3             @tab  X  @tab  X
 @item WMV7                   @tab  X  @tab  X
 @item WMV8                   @tab  X  @tab  X @tab not completely working
+@item WMV9                   @tab     @tab  X @tab not completely working
+@item VC1                    @tab     @tab  X
 @item H.261                  @tab  X  @tab  X
 @item H.263(+)               @tab  X  @tab  X @tab also known as RealVideo 1.0
 @item H.264                  @tab     @tab  X
@@ -791,11 +968,11 @@ following image formats are supported:
 @item Sorenson Video 3       @tab     @tab  X @tab fourcc: SVQ3
 @item On2 VP3                @tab     @tab  X @tab still experimental
 @item On2 VP5                @tab     @tab  X @tab fourcc: VP50
-@item On2 VP6                @tab     @tab  X @tab fourcc: VP62
-@item Theora                 @tab     @tab  X @tab still experimental
+@item On2 VP6                @tab     @tab  X @tab fourcc: VP60,VP61,VP62
+@item Theora                 @tab  X  @tab  X @tab still experimental
 @item Intel Indeo 3          @tab     @tab  X
 @item FLV                    @tab  X  @tab  X @tab Sorenson H.263 used in Flash
-@item Flash Screen Video     @tab     @tab  X @tab fourcc: FSV1
+@item Flash Screen Video     @tab  X  @tab  X @tab fourcc: FSV1
 @item ATI VCR1               @tab     @tab  X @tab fourcc: VCR1
 @item ATI VCR2               @tab     @tab  X @tab fourcc: VCR2
 @item Cirrus Logic AccuPak   @tab     @tab  X @tab fourcc: CLJR
@@ -830,12 +1007,14 @@ following image formats are supported:
 @item Fraps FPS1             @tab     @tab  X @tab
 @item CamStudio              @tab     @tab  X @tab fourcc: CSCD
 @item American Laser Games Video  @tab    @tab X @tab Used in games like Mad Dog McCree
-@item ZMBV                   @tab     @tab  X @tab
+@item ZMBV                   @tab   X @tab  X @tab Encoder works only on PAL8
 @item AVS Video              @tab     @tab  X @tab Video encoding used by the Creature Shock game.
 @item Smacker Video          @tab     @tab  X @tab Video encoding used in Smacker.
 @item RTjpeg                 @tab     @tab  X @tab Video encoding used in NuppelVideo files.
 @item KMVC                   @tab     @tab  X @tab Codec used in Worms games.
 @item VMware Video           @tab     @tab  X @tab Codec used in videos captured by VMware.
+@item Cin Video              @tab     @tab  X @tab Codec used in Delphine Software games.
+@item Tiertex Seq Video      @tab     @tab  X @tab Codec used in DOS CDROM FlashBack game.
 @end multitable
 
 @code{X} means that encoding (resp. decoding) is supported.
@@ -850,8 +1029,7 @@ following image formats are supported:
 @item AC3                    @tab  IX  @tab  IX
 @tab liba52 is used internally for decoding.
 @item Vorbis                 @tab  X   @tab  X
-@tab Supported through the external library libvorbis.
-@item WMA V1/V2              @tab      @tab X
+@item WMA V1/V2              @tab X    @tab X
 @item AAC                    @tab X    @tab X
 @tab Supported through the external library libfaac/libfaad.
 @item Microsoft ADPCM        @tab X    @tab X
@@ -909,6 +1087,11 @@ following image formats are supported:
 @item True Audio (TTA)       @tab      @tab X
 @item Smacker Audio          @tab      @tab X
 @item WavPack Audio          @tab      @tab X
+@item Cin Audio              @tab      @tab X
+@tab Codec used in Delphine Software games.
+@item Intel Music Coder      @tab      @tab X
+@item Musepack               @tab      @tab X
+@tab Only SV7 is supported
 @end multitable
 
 @code{X} means that encoding (resp. decoding) is supported.
@@ -918,12 +1101,6 @@ performance on systems without hardware floating point support).
 
 @chapter Platform Specific information
 
-@section Linux
-
-FFmpeg should be compiled with at least GCC 2.95.3. GCC 3.2 is the
-preferred compiler now for FFmpeg. All future optimizations will depend on
-features only found in GCC 3.2.
-
 @section BSD
 
 BSD make will not build FFmpeg, you need to install and use GNU Make
@@ -931,6 +1108,10 @@ BSD make will not build FFmpeg, you need to install and use GNU Make
 
 @section Windows
 
+To get help and instructions for using FFmpeg under Windows, check out
+the FFmpeg Windows Help Forum at
+@url{http://arrozcru.no-ip.org/ffmpeg/}.
+
 @subsection Native Windows compilation
 
 @itemize
@@ -1168,8 +1349,6 @@ and for a build with shared libraries
 ./configure --enable-mingw32 --enable-memalign-hack --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
 @end example
 
-@section Mac OS X
-
 @section BeOS
 
 The configure script should guess the configuration itself.