📄 ffmpeg-doc.texi
字号:
Discard threshold.
@item -qscale q
Use fixed video quantizer scale (VBR).
@item -qmin q
minimum video quantizer scale (VBR)
@item -qmax q
maximum video quantizer scale (VBR)
@item -qdiff q
maximum difference between the quantizer scales (VBR)
@item -qblur blur
video quantizer scale blur (VBR)
@item -qcomp compression
video quantizer scale compression (VBR)
@item -lmin lambda
minimum video lagrange factor (VBR)
@item -lmax lambda
max video lagrange factor (VBR)
@item -mblmin lambda
minimum macroblock quantizer scale (VBR)
@item -mblmax lambda
maximum macroblock quantizer scale (VBR)
These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
@example
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@end example
@item -rc_init_cplx complexity
initial complexity for single pass encoding
@item -b_qfactor factor
qp factor between P- and B-frames
@item -i_qfactor factor
qp factor between P- and I-frames
@item -b_qoffset offset
qp offset between P- and B-frames
@item -i_qoffset offset
qp offset between P- and I-frames
@item -rc_eq equation
Set rate control equation (@pxref{FFmpeg formula
evaluator}) (default = @code{tex^qComp}).
@item -rc_override override
rate control override for specific intervals
@item -me_method method
Set motion estimation method to @var{method}.
Available methods are (from lowest to best quality):
@table @samp
@item zero
Try just the (0, 0) vector.
@item phods
@item log
@item x1
@item hex
@item umh
@item epzs
(default method)
@item full
exhaustive search (slow and marginally better than epzs)
@end table
@item -dct_algo algo
Set DCT algorithm to @var{algo}. Available values are:
@table @samp
@item 0
FF_DCT_AUTO (default)
@item 1
FF_DCT_FASTINT
@item 2
FF_DCT_INT
@item 3
FF_DCT_MMX
@item 4
FF_DCT_MLIB
@item 5
FF_DCT_ALTIVEC
@end table
@item -idct_algo algo
Set IDCT algorithm to @var{algo}. Available values are:
@table @samp
@item 0
FF_IDCT_AUTO (default)
@item 1
FF_IDCT_INT
@item 2
FF_IDCT_SIMPLE
@item 3
FF_IDCT_SIMPLEMMX
@item 4
FF_IDCT_LIBMPEG2MMX
@item 5
FF_IDCT_PS2
@item 6
FF_IDCT_MLIB
@item 7
FF_IDCT_ARM
@item 8
FF_IDCT_ALTIVEC
@item 9
FF_IDCT_SH4
@item 10
FF_IDCT_SIMPLEARM
@end table
@item -er n
Set error resilience to @var{n}.
@table @samp
@item 1
FF_ER_CAREFUL (default)
@item 2
FF_ER_COMPLIANT
@item 3
FF_ER_AGGRESSIVE
@item 4
FF_ER_VERY_AGGRESSIVE
@end table
@item -ec bit_mask
Set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
the following values:
@table @samp
@item 1
FF_EC_GUESS_MVS (default = enabled)
@item 2
FF_EC_DEBLOCK (default = enabled)
@end table
@item -bf frames
Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
@item -mbd mode
macroblock decision
@table @samp
@item 0
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
FF_MB_DECISION_RD: rate distortion
@end table
@item -4mv
Use four motion vector by macroblock (MPEG-4 only).
@item -part
Use data partitioning (MPEG-4 only).
@item -bug param
Work around encoder bugs that are not auto-detected.
@item -strict strictness
How strictly to follow the standards.
@item -aic
Enable Advanced intra coding (h263+).
@item -umv
Enable Unlimited Motion Vector (h263+)
@item -deinterlace
Deinterlace pictures.
@item -ilme
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
@option{-deinterlace}, but deinterlacing introduces losses.
@item -psnr
Calculate PSNR of compressed frames.
@item -vstats
Dump video coding statistics to @file{vstats_HHMMSS.log}.
@item -vstats_file file
Dump video coding statistics to @var{file}.
@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
Set the audio bitrate in bit/s (default = 64k).
@item -ac channels
Set the number of audio channels (default = 1).
@item -an
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 384k test.mpg -acodec mp2 -ab 192k -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
@table @option
@item -vc channel
Set video grab channel (DV1394 only).
@item -tvstd standard
Set television standard (NTSC, PAL (SECAM)).
@item -isync
Synchronize read on input.
@end table
@section Advanced options
@table @option
@item -map input stream id[:input 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.
[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 -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_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
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.
@item -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 correction.
@item -copyts
Copy timestamps from input to output.
@item -shortest
Finish encoding when the shortest input stream ends.
@item -dts_delta_threshold
Timestamp discontinuity delta threshold.
@item -muxdelay seconds
Set the maximum demux-decode delay.
@item -muxpreload seconds
Set the initial demux-decode delay.
@end table
@node FFmpeg formula evaluator
@section FFmpeg formula evaluator
When evaluating a rate control string, FFmpeg uses an internal formula
evaluator.
The following binary operators are available: @code{+}, @code{-},
@code{*}, @code{/}, @code{^}.
The following unary operators are available: @code{+}, @code{-},
@code{(...)}.
The following functions are available:
@table @var
@item sinh(x)
@item cosh(x)
@item tanh(x)
@item sin(x)
@item cos(x)
@item tan(x)
@item exp(x)
@item log(x)
@item squish(x)
@item gauss(x)
@item abs(x)
@item max(x, y)
@item min(x, y)
@item gt(x, y)
@item lt(x, y)
@item eq(x, y)
@item bits2qp(bits)
@item qp2bits(qp)
@end table
The following constants are available:
@table @var
@item PI
@item E
@item iTex
@item pTex
@item tex
@item mv
@item fCode
@item iCount
@item mcVar
@item var
@item isI
@item isP
@item isB
@item avgQP
@item qComp
@item avgIITex
@item avgPITex
@item avgPPTex
@item avgBPTex
@item avgTex
@end table
@c man end
@ignore
@setfilename ffmpeg
@settitle FFmpeg video converter
@c man begin SEEALSO
ffserver(1), ffplay(1) and the HTML documentation of @file{ffmpeg}.
@c man end
@c man begin AUTHOR
Fabrice Bellard
@c man end
@end ignore
@section Protocols
The filename can be @file{-} to read from standard input or to write
to standard output.
FFmpeg also handles many protocols specified with an URL syntax.
Use 'ffmpeg -formats' to see a list of the supported protocols.
The protocol @code{http:} is currently used only to communicate with
FFserver (see the FFserver documentation). When FFmpeg will be a
video player it will also be used for streaming :-)
@chapter Tips
@itemize
@item For streaming at very low bitrate application, use a low frame rate
and a small GOP size. This is especially true for RealVideo where
the Linux player does not seem to be very fast, so it can miss
frames. An example is:
@example
ffmpeg -g 3 -r 3 -t 10 -b 50k -s qcif -f rv10 /tmp/b.rm
@end example
@item The parameter 'q' which is displayed while encoding is the current
quantizer. The value 1 indicates that a very good quality could
be achieved. The value 31 indicates the worst quality. If q=31 appears
too often, it means that the encoder cannot compress enough to meet
your bitrate. You must either increase the bitrate, decrease the
frame rate or decrease the frame size.
@item If your computer is not fast enough, you can speed up the
compression at the expense of the compression ratio. You can use
'-me zero' to speed up motion estimation, and '-intra' to disable
motion estimation completely (you have only I-frames, which means it
is about as good as JPEG compression).
@item To have very low audio bitrates, reduce the sampling frequency
(down to 22050 kHz for MPEG audio, 22050 or 11025 for AC3).
@item To have a constant quality (but a variable bitrate), use the option
'-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
quality).
@item When converting video files, you can use the '-sameq' option which
uses the same quality factor in the encoder as in the decoder.
It allows almost lossless encoding.
@end itemize
@bye
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -