转载自:http://www.tin.org/bin/man.cgi?section=1&topic=ffmpeg
NAME ffmpeg - FFmpeg video converter SYNOPSIS ffmpeg [[infile options][-i infile]]... {[outfile options] outfile}... DESCRIPTION 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 -b 64 option, it sets the video bitrate of the next file. 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 speci- fied for the inputs. OPTIONS Main options -L Show license. -h Show help. -formats Show available formats, codecs, protocols, ... -f fmt Force format. -i filename input filename -y Overwrite output files. -t duration Set the recording time in seconds. "hh:mm:ss[.xxx]" syntax is also supported. -ss position Seek to given time position in seconds. "hh:mm:ss[.xxx]" syntax is also supported. -title string Set the title. -author string Set the author. -copyright string Set the copyright. -comment string Set the comment. -target type Specify target file type ("vcd", "svcd", "dvd", "dv", "pal-vcd", "ntsc-svcd", ... ). All the format options (bitrate, codecs, buffer sizes) are then set automatically. You can just type: ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg Nevertheless you can specify additional options as long as you know they do not conflict with the standard, as in: ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg -hq Activate high quality settings. -itsoffset offset Set the input time offset in seconds. "[-]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. Video Options -b bitrate Set the video bitrate in kbit/s (default = 200 kb/s). -r fps Set frame rate (default = 25). -s size Set frame size. The format is wxh (default = 160x128). The follow- ing abbreviations are recognized: sqcif 128x96 qcif 176x144 cif 352x288 4cif 704x576 -aspect aspect Set aspect ratio (4:3, 16:9 or 1.3333, 1.7777). -croptop size Set top crop band size (in pixels). -cropbottom size Set bottom crop band size (in pixels). -cropleft size Set left crop band size (in pixels). -cropright size Set right crop band size (in pixels). -padtop size Set top pad band size (in pixels). -padbottom size Set bottom pad band size (in pixels). -padleft size Set left pad band size (in pixels). -padright size Set right pad band size (in pixels). -padcolor (hex color) Set color of padded bands. The value for padcolor is expressed as a six digit hexadecimal number where the first two digits represent red, the middle two digits green and last two digits blue (default = 000000 (black)). -vn Disable video recording. -bt tolerance Set video bitrate tolerance (in kbit/s). -maxrate bitrate Set max video bitrate tolerance (in kbit/s). -minrate bitrate Set min video bitrate tolerance (in kbit/s). -bufsize size Set rate control buffer size (in kbit). -vcodec codec Force video codec to codec. Use the "copy" special value to tell that the raw codec data must be copied as is. -sameq Use same video quality as source (implies VBR). -pass n Select the pass number (1 or 2). It is useful to do two pass encod- ing. The statistics of the video are recorded in the first pass and the video is generated at the exact requested bitrate in the second pass. -passlogfile file Set two pass logfile name to file. Advanced Video Options -g gop_size Set the group of pictures size. -intra Use only intra frames. -qscale q Use fixed video quantiser scale (VBR). -qmin q minimum video quantiser scale (VBR) -qmax q maximum video quantiser scale (VBR) -qdiff q maximum difference between the quantiser scales (VBR) -qblur blur video quantiser scale blur (VBR) -qcomp compression video quantiser scale compression (VBR) -rc_init_cplx complexity initial complexity for single pass encoding -b_qfactor factor qp factor between P- and B-frames -i_qfactor factor qp factor between P- and I-frames -b_qoffset offset qp offset between P- and B-frames -i_qoffset offset qp offset between P- and I-frames -rc_eq equation Set rate control equation (default = "tex^qComp"). -rc_override override rate control override for specific intervals -me method Set motion estimation method to method. Available methods are (from lowest to best quality): zero Try just the (0, 0) vector. phods log x1 epzs (default method) full exhaustive search (slow and marginally better than epzs) -dct_algo algo Set DCT algorithm to algo. Available values are: 0 FF_DCT_AUTO (default) 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC -idct_algo algo Set IDCT algorithm to algo. Available values are: 0 FF_IDCT_AUTO (default) 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM -er n Set error resilience to n. 1 FF_ER_CAREFUL (default) 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE -ec bit_mask Set error concealment to bit_mask. bit_mask is a bit mask of the following values: 1 FF_EC_GUESS_MVS (default = enabled) 2 FF_EC_DEBLOCK (default = enabled) -bf frames Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4). -mbd mode macroblock decision 0 FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in FFm- peg). 1 FF_MB_DECISION_BITS: Choose the one which needs the fewest bits. 2 FF_MB_DECISION_RD: rate distortion -4mv Use four motion vector by macroblock (MPEG-4 only). -part Use data partitioning (MPEG-4 only). -bug param Work around encoder bugs that are not auto-detected. -strict strictness How strictly to follow the standards. -aic Enable Advanced intra coding (h263+). -umv Enable Unlimited Motion Vector (h263+) -deinterlace Deinterlace pictures. -interlace Force interlacing support in encoder (MPEG-2 and MPEG-4 only). Use this option if your input file is interlaced and you want to keep the interlaced format for minimum losses. The alternative is to deinterlace the input stream with -deinterlace, but deinterlacing introduces losses. -psnr Calculate PSNR of compressed frames. -vstats Dump video coding statistics to vstats_HHMMSS.log. -vhook module Insert video processing module. module contains the module name and its parameters separated by spaces. Audio Options -ar freq Set the audio sampling frequency (default = 44100 Hz). -ab bitrate Set the audio bitrate in kbit/s (default = 64). -ac channels Set the number of audio channels (default = 1). -an Disable audio recording. -acodec codec Force audio codec to codec. Use the "copy" special value to specify that the raw codec data must be copied as is. Audio/Video grab options -vd device sEt video grab device (e.g. /dev/video0). -vc channel Set video grab channel (DV1394 only). -tvstd standard Set television standard (NTSC, PAL (SECAM)). -dv1394 Set DV1394 grab. -ad device Set audio device (e.g. /dev/dsp). Advanced options -map file:stream Set input stream mapping. -debug Print specific debug info. -benchmark Add timings for benchmarking. -hex Dump each input packet. -bitexact Only use bit exact algorithms (for codec testing). -ps size Set packet size in bits. -re Read input at native frame rate. Mainly used to simulate a grab device. -loop Loop over the input stream. Currently it works only for image streams. This option is used for automatic FFserver testing. -loop_output number_of_times Repeatedly loop output for formats that support looping such as animated GIF (0 will loop the output infinitely). -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 which stream the timestamps should be taken. You can leave either video or audio unchanged and sync the remaining stream(s) to the unchanged one. -async samples_per_second Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps, the parameter is the maximum samples per second by which the audio is changed. -async 1 is a special case where only the start of the audio stream is corrected without any later cor- rection. FFmpeg formula evaluator When evaluating a rate control string, FFmpeg uses an internal formula evaluator. The following binary operators are available: "+", "-", "*", "/", "^". The following unary operators are available: "+", "-", "(...)". The following functions are available: sinh(x) cosh(x) tanh(x) sin(x) cos(x) tan(x) exp(x) log(x) squish(x) gauss(x) abs(x) max(x, y) min(x, y) gt(x, y) lt(x, y) eq(x, y) bits2qp(bits) qp2bits(qp) The following constants are available: PI E iTex pTex tex mv fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex EXAMPLES Video and Audio grabbing FFmpeg can use a video4linux compatible video source and any Open Sound System audio source: ffmpeg /tmp/out.mpg Note that you must activate the right video source and channel before launching FFmpeg with any TV viewer such as xawtv (<http://byte- sex.org/xawtv/>) by Gerd Knorr. You also have to set the audio record- ing levels correctly with a standard mixer. Video and Audio file format conversion * FFmpeg can use any supported file format and protocol as input: Examples: * You can use YUV files as input: ffmpeg -i /tmp/test%d.Y /tmp/out.mpg It will use the files: /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc... 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 -s option if FFmpeg cannot guess it. * You can input from a raw YUV420P file: ffmpeg -i /tmp/test.yuv /tmp/out.avi test.yuv is a file containing raw YUV planar data. Each frame is com- posed of the Y plane followed by the U and V planes at half vertical and horizontal resolution. * You can output to a raw YUV420P file: ffmpeg -i mydivx.avi hugefile.yuv * You can set several input files and output files: ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg Converts the audio file a.wav and the raw YUV video file a.yuv to MPEG file a.mpg. * You can also do audio and video conversions at the same time: ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2 Converts a.wav to MPEG audio at 22050Hz sample rate. * You can encode to several formats at the same time and define a map- ping from input stream to output streams: ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0 Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. '-map file:index' specifies which input stream is used for each output stream, in the order of the definition of output streams. * You can transcode decrypted VOBs ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi This is a typical DVD ripping example; the input is a VOB file, the output an AVI file with MPEG-4 video and MP3 audio. Note that in this command we use B-frames so the MPEG-4 stream is DivX5 compatible, and GOP size is 300 which means one intra frame every 10 seconds for 29.97fps input video. Furthermore, the audio stream is MP3-encoded so you need to enable LAME support by passing "--enable-mp3lame" to con- figure. The mapping is particularly useful for DVD transcoding to get the desired audio language. NOTE: To see the supported input formats, use "ffmpeg -formats". SEE ALSO ffserver(1), ffplay(1) and the HTML documentation of ffmpeg. AUTHOR Fabrice Bellard 2009-04-26 FFMPEG(1)