转载自: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)