mirror of https://git.ffmpeg.org/ffmpeg.git
1275 lines
31 KiB
Plaintext
1275 lines
31 KiB
Plaintext
@anchor{codec-options}
|
|
@chapter Codec Options
|
|
@c man begin CODEC OPTIONS
|
|
|
|
libavcodec provides some generic global options, which can be set on
|
|
all the encoders and decoders. In addition each codec may support
|
|
so-called private options, which are specific for a given codec.
|
|
|
|
Sometimes, a global option may only affect a specific kind of codec,
|
|
and may be nonsensical or ignored by another, so you need to be aware
|
|
of the meaning of the specified options. Also some options are
|
|
meant only for decoding or encoding.
|
|
|
|
Options may be set by specifying -@var{option} @var{value} in the
|
|
FFmpeg tools, or by setting the value explicitly in the
|
|
@code{AVCodecContext} options or using the @file{libavutil/opt.h} API
|
|
for programmatic use.
|
|
|
|
The list of supported options follow:
|
|
|
|
@table @option
|
|
@item b @var{integer} (@emph{encoding,audio,video})
|
|
Set bitrate in bits/s. Default value is 200K.
|
|
|
|
@item ab @var{integer} (@emph{encoding,audio})
|
|
Set audio bitrate (in bits/s). Default value is 128K.
|
|
|
|
@item bt @var{integer} (@emph{encoding,video})
|
|
Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
|
|
tolerance specifies how far ratecontrol is willing to deviate from the
|
|
target average bitrate value. This is not related to min/max
|
|
bitrate. Lowering tolerance too much has an adverse effect on quality.
|
|
|
|
@item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
|
|
Set generic flags.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item mv4
|
|
Use four motion vector by macroblock (mpeg4).
|
|
@item qpel
|
|
Use 1/4 pel motion compensation.
|
|
@item loop
|
|
Use loop filter.
|
|
@item qscale
|
|
Use fixed qscale.
|
|
@item pass1
|
|
Use internal 2pass ratecontrol in first pass mode.
|
|
@item pass2
|
|
Use internal 2pass ratecontrol in second pass mode.
|
|
@item gray
|
|
Only decode/encode grayscale.
|
|
@item emu_edge
|
|
Do not draw edges.
|
|
@item psnr
|
|
Set error[?] variables during encoding.
|
|
@item truncated
|
|
Input bitstream might be randomly truncated.
|
|
@item drop_changed
|
|
Don't output frames whose parameters differ from first decoded frame in stream.
|
|
Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
|
|
|
|
@item ildct
|
|
Use interlaced DCT.
|
|
@item low_delay
|
|
Force low delay.
|
|
@item global_header
|
|
Place global headers in extradata instead of every keyframe.
|
|
@item bitexact
|
|
Only write platform-, build- and time-independent data. (except (I)DCT).
|
|
This ensures that file and data checksums are reproducible and match between
|
|
platforms. Its primary use is for regression testing.
|
|
@item aic
|
|
Apply H263 advanced intra coding / mpeg4 ac prediction.
|
|
@item cbp
|
|
Deprecated, use mpegvideo private options instead.
|
|
@item qprd
|
|
Deprecated, use mpegvideo private options instead.
|
|
@item ilme
|
|
Apply interlaced motion estimation.
|
|
@item cgop
|
|
Use closed gop.
|
|
@item output_corrupt
|
|
Output even potentially corrupted frames.
|
|
@end table
|
|
|
|
@item me_method @var{integer} (@emph{encoding,video})
|
|
Set motion estimation method.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item zero
|
|
zero motion estimation (fastest)
|
|
@item full
|
|
full motion estimation (slowest)
|
|
@item epzs
|
|
EPZS motion estimation (default)
|
|
@item esa
|
|
esa motion estimation (alias for full)
|
|
@item tesa
|
|
tesa motion estimation
|
|
@item dia
|
|
dia motion estimation (alias for epzs)
|
|
@item log
|
|
log motion estimation
|
|
@item phods
|
|
phods motion estimation
|
|
@item x1
|
|
X1 motion estimation
|
|
@item hex
|
|
hex motion estimation
|
|
@item umh
|
|
umh motion estimation
|
|
@item iter
|
|
iter motion estimation
|
|
@end table
|
|
|
|
@item extradata_size @var{integer}
|
|
Set extradata size.
|
|
|
|
@item time_base @var{rational number}
|
|
Set codec time base.
|
|
|
|
It is the fundamental unit of time (in seconds) in terms of which
|
|
frame timestamps are represented. For fixed-fps content, timebase
|
|
should be @code{1 / frame_rate} and timestamp increments should be
|
|
identically 1.
|
|
|
|
@item g @var{integer} (@emph{encoding,video})
|
|
Set the group of picture (GOP) size. Default value is 12.
|
|
|
|
@item ar @var{integer} (@emph{decoding/encoding,audio})
|
|
Set audio sampling rate (in Hz).
|
|
|
|
@item ac @var{integer} (@emph{decoding/encoding,audio})
|
|
Set number of audio channels.
|
|
|
|
@item cutoff @var{integer} (@emph{encoding,audio})
|
|
Set cutoff bandwidth. (Supported only by selected encoders, see
|
|
their respective documentation sections.)
|
|
|
|
@item frame_size @var{integer} (@emph{encoding,audio})
|
|
Set audio frame size.
|
|
|
|
Each submitted frame except the last must contain exactly frame_size
|
|
samples per channel. May be 0 when the codec has
|
|
CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
|
|
restricted. It is set by some decoders to indicate constant frame
|
|
size.
|
|
|
|
@item frame_number @var{integer}
|
|
Set the frame number.
|
|
|
|
@item delay @var{integer}
|
|
|
|
@item qcomp @var{float} (@emph{encoding,video})
|
|
Set video quantizer scale compression (VBR). It is used as a constant
|
|
in the ratecontrol equation. Recommended range for default rc_eq:
|
|
0.0-1.0.
|
|
|
|
@item qblur @var{float} (@emph{encoding,video})
|
|
Set video quantizer scale blur (VBR).
|
|
|
|
@item qmin @var{integer} (@emph{encoding,video})
|
|
Set min video quantizer scale (VBR). Must be included between -1 and
|
|
69, default value is 2.
|
|
|
|
@item qmax @var{integer} (@emph{encoding,video})
|
|
Set max video quantizer scale (VBR). Must be included between -1 and
|
|
1024, default value is 31.
|
|
|
|
@item qdiff @var{integer} (@emph{encoding,video})
|
|
Set max difference between the quantizer scale (VBR).
|
|
|
|
@item bf @var{integer} (@emph{encoding,video})
|
|
Set max number of B frames between non-B-frames.
|
|
|
|
Must be an integer between -1 and 16. 0 means that B-frames are
|
|
disabled. If a value of -1 is used, it will choose an automatic value
|
|
depending on the encoder.
|
|
|
|
Default value is 0.
|
|
|
|
@item b_qfactor @var{float} (@emph{encoding,video})
|
|
Set qp factor between P and B frames.
|
|
|
|
@item rc_strategy @var{integer} (@emph{encoding,video})
|
|
Set ratecontrol method.
|
|
|
|
@item b_strategy @var{integer} (@emph{encoding,video})
|
|
Set strategy to choose between I/P/B-frames.
|
|
|
|
@item ps @var{integer} (@emph{encoding,video})
|
|
Set RTP payload size in bytes.
|
|
|
|
@item mv_bits @var{integer}
|
|
@item header_bits @var{integer}
|
|
@item i_tex_bits @var{integer}
|
|
@item p_tex_bits @var{integer}
|
|
@item i_count @var{integer}
|
|
@item p_count @var{integer}
|
|
@item skip_count @var{integer}
|
|
@item misc_bits @var{integer}
|
|
@item frame_bits @var{integer}
|
|
@item codec_tag @var{integer}
|
|
@item bug @var{flags} (@emph{decoding,video})
|
|
Workaround not auto detected encoder bugs.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item autodetect
|
|
|
|
@item old_msmpeg4
|
|
some old lavc generated msmpeg4v3 files (no autodetection)
|
|
@item xvid_ilace
|
|
Xvid interlacing bug (autodetected if fourcc==XVIX)
|
|
@item ump4
|
|
(autodetected if fourcc==UMP4)
|
|
@item no_padding
|
|
padding bug (autodetected)
|
|
@item amv
|
|
|
|
@item ac_vlc
|
|
illegal vlc bug (autodetected per fourcc)
|
|
@item qpel_chroma
|
|
|
|
@item std_qpel
|
|
old standard qpel (autodetected per fourcc/version)
|
|
@item qpel_chroma2
|
|
|
|
@item direct_blocksize
|
|
direct-qpel-blocksize bug (autodetected per fourcc/version)
|
|
@item edge
|
|
edge padding bug (autodetected per fourcc/version)
|
|
@item hpel_chroma
|
|
|
|
@item dc_clip
|
|
|
|
@item ms
|
|
Workaround various bugs in microsoft broken decoders.
|
|
@item trunc
|
|
trancated frames
|
|
@end table
|
|
|
|
@item lelim @var{integer} (@emph{encoding,video})
|
|
Set single coefficient elimination threshold for luminance (negative
|
|
values also consider DC coefficient).
|
|
|
|
@item celim @var{integer} (@emph{encoding,video})
|
|
Set single coefficient elimination threshold for chrominance (negative
|
|
values also consider dc coefficient)
|
|
|
|
@item strict @var{integer} (@emph{decoding/encoding,audio,video})
|
|
Specify how strictly to follow the standards.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item very
|
|
strictly conform to an older more strict version of the spec or reference software
|
|
@item strict
|
|
strictly conform to all the things in the spec no matter what consequences
|
|
@item normal
|
|
|
|
@item unofficial
|
|
allow unofficial extensions
|
|
@item experimental
|
|
allow non standardized experimental things, experimental
|
|
(unfinished/work in progress/not well tested) decoders and encoders.
|
|
Note: experimental decoders can pose a security risk, do not use this for
|
|
decoding untrusted input.
|
|
@end table
|
|
|
|
@item b_qoffset @var{float} (@emph{encoding,video})
|
|
Set QP offset between P and B frames.
|
|
|
|
@item err_detect @var{flags} (@emph{decoding,audio,video})
|
|
Set error detection flags.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item crccheck
|
|
verify embedded CRCs
|
|
@item bitstream
|
|
detect bitstream specification deviations
|
|
@item buffer
|
|
detect improper bitstream length
|
|
@item explode
|
|
abort decoding on minor error detection
|
|
@item ignore_err
|
|
ignore decoding errors, and continue decoding.
|
|
This is useful if you want to analyze the content of a video and thus want
|
|
everything to be decoded no matter what. This option will not result in a video
|
|
that is pleasing to watch in case of errors.
|
|
@item careful
|
|
consider things that violate the spec and have not been seen in the wild as errors
|
|
@item compliant
|
|
consider all spec non compliancies as errors
|
|
@item aggressive
|
|
consider things that a sane encoder should not do as an error
|
|
@end table
|
|
|
|
@item has_b_frames @var{integer}
|
|
|
|
@item block_align @var{integer}
|
|
|
|
@item mpeg_quant @var{integer} (@emph{encoding,video})
|
|
Use MPEG quantizers instead of H.263.
|
|
|
|
@item qsquish @var{float} (@emph{encoding,video})
|
|
How to keep quantizer between qmin and qmax (0 = clip, 1 = use
|
|
differentiable function).
|
|
|
|
@item rc_qmod_amp @var{float} (@emph{encoding,video})
|
|
Set experimental quantizer modulation.
|
|
|
|
@item rc_qmod_freq @var{integer} (@emph{encoding,video})
|
|
Set experimental quantizer modulation.
|
|
|
|
@item rc_override_count @var{integer}
|
|
|
|
@item rc_eq @var{string} (@emph{encoding,video})
|
|
Set rate control equation. When computing the expression, besides the
|
|
standard functions defined in the section 'Expression Evaluation', the
|
|
following functions are available: bits2qp(bits), qp2bits(qp). Also
|
|
the following constants are available: iTex pTex tex mv fCode iCount
|
|
mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
|
|
avgTex.
|
|
|
|
@item maxrate @var{integer} (@emph{encoding,audio,video})
|
|
Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
|
|
|
|
@item minrate @var{integer} (@emph{encoding,audio,video})
|
|
Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
|
|
encode. It is of little use elsewise.
|
|
|
|
@item bufsize @var{integer} (@emph{encoding,audio,video})
|
|
Set ratecontrol buffer size (in bits).
|
|
|
|
@item rc_buf_aggressivity @var{float} (@emph{encoding,video})
|
|
Currently useless.
|
|
|
|
@item i_qfactor @var{float} (@emph{encoding,video})
|
|
Set QP factor between P and I frames.
|
|
|
|
@item i_qoffset @var{float} (@emph{encoding,video})
|
|
Set QP offset between P and I frames.
|
|
|
|
@item rc_init_cplx @var{float} (@emph{encoding,video})
|
|
Set initial complexity for 1-pass encoding.
|
|
|
|
@item dct @var{integer} (@emph{encoding,video})
|
|
Set DCT algorithm.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item auto
|
|
autoselect a good one (default)
|
|
@item fastint
|
|
fast integer
|
|
@item int
|
|
accurate integer
|
|
@item mmx
|
|
|
|
@item altivec
|
|
|
|
@item faan
|
|
floating point AAN DCT
|
|
@end table
|
|
|
|
@item lumi_mask @var{float} (@emph{encoding,video})
|
|
Compress bright areas stronger than medium ones.
|
|
|
|
@item tcplx_mask @var{float} (@emph{encoding,video})
|
|
Set temporal complexity masking.
|
|
|
|
@item scplx_mask @var{float} (@emph{encoding,video})
|
|
Set spatial complexity masking.
|
|
|
|
@item p_mask @var{float} (@emph{encoding,video})
|
|
Set inter masking.
|
|
|
|
@item dark_mask @var{float} (@emph{encoding,video})
|
|
Compress dark areas stronger than medium ones.
|
|
|
|
@item idct @var{integer} (@emph{decoding/encoding,video})
|
|
Select IDCT implementation.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item auto
|
|
|
|
@item int
|
|
|
|
@item simple
|
|
|
|
@item simplemmx
|
|
|
|
@item simpleauto
|
|
Automatically pick a IDCT compatible with the simple one
|
|
|
|
@item arm
|
|
|
|
@item altivec
|
|
|
|
@item sh4
|
|
|
|
@item simplearm
|
|
|
|
@item simplearmv5te
|
|
|
|
@item simplearmv6
|
|
|
|
@item simpleneon
|
|
|
|
@item simplealpha
|
|
|
|
@item ipp
|
|
|
|
@item xvidmmx
|
|
|
|
@item faani
|
|
floating point AAN IDCT
|
|
@end table
|
|
|
|
@item slice_count @var{integer}
|
|
|
|
@item ec @var{flags} (@emph{decoding,video})
|
|
Set error concealment strategy.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item guess_mvs
|
|
iterative motion vector (MV) search (slow)
|
|
@item deblock
|
|
use strong deblock filter for damaged MBs
|
|
@item favor_inter
|
|
favor predicting from the previous frame instead of the current
|
|
@end table
|
|
|
|
@item bits_per_coded_sample @var{integer}
|
|
|
|
@item pred @var{integer} (@emph{encoding,video})
|
|
Set prediction method.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item left
|
|
|
|
@item plane
|
|
|
|
@item median
|
|
|
|
@end table
|
|
|
|
@item aspect @var{rational number} (@emph{encoding,video})
|
|
Set sample aspect ratio.
|
|
|
|
@item sar @var{rational number} (@emph{encoding,video})
|
|
Set sample aspect ratio. Alias to @var{aspect}.
|
|
|
|
@item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
|
|
Print specific debug info.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item pict
|
|
picture info
|
|
@item rc
|
|
rate control
|
|
@item bitstream
|
|
|
|
@item mb_type
|
|
macroblock (MB) type
|
|
@item qp
|
|
per-block quantization parameter (QP)
|
|
@item dct_coeff
|
|
|
|
@item green_metadata
|
|
display complexity metadata for the upcoming frame, GoP or for a given duration.
|
|
|
|
@item skip
|
|
|
|
@item startcode
|
|
|
|
@item er
|
|
error recognition
|
|
@item mmco
|
|
memory management control operations (H.264)
|
|
@item bugs
|
|
|
|
@item buffers
|
|
picture buffer allocations
|
|
@item thread_ops
|
|
threading operations
|
|
@item nomc
|
|
skip motion compensation
|
|
@end table
|
|
|
|
@item cmp @var{integer} (@emph{encoding,video})
|
|
Set full pel me compare function.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item sad
|
|
sum of absolute differences, fast (default)
|
|
@item sse
|
|
sum of squared errors
|
|
@item satd
|
|
sum of absolute Hadamard transformed differences
|
|
@item dct
|
|
sum of absolute DCT transformed differences
|
|
@item psnr
|
|
sum of squared quantization errors (avoid, low quality)
|
|
@item bit
|
|
number of bits needed for the block
|
|
@item rd
|
|
rate distortion optimal, slow
|
|
@item zero
|
|
0
|
|
@item vsad
|
|
sum of absolute vertical differences
|
|
@item vsse
|
|
sum of squared vertical differences
|
|
@item nsse
|
|
noise preserving sum of squared differences
|
|
@item w53
|
|
5/3 wavelet, only used in snow
|
|
@item w97
|
|
9/7 wavelet, only used in snow
|
|
@item dctmax
|
|
|
|
@item chroma
|
|
|
|
@end table
|
|
|
|
@item subcmp @var{integer} (@emph{encoding,video})
|
|
Set sub pel me compare function.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item sad
|
|
sum of absolute differences, fast (default)
|
|
@item sse
|
|
sum of squared errors
|
|
@item satd
|
|
sum of absolute Hadamard transformed differences
|
|
@item dct
|
|
sum of absolute DCT transformed differences
|
|
@item psnr
|
|
sum of squared quantization errors (avoid, low quality)
|
|
@item bit
|
|
number of bits needed for the block
|
|
@item rd
|
|
rate distortion optimal, slow
|
|
@item zero
|
|
0
|
|
@item vsad
|
|
sum of absolute vertical differences
|
|
@item vsse
|
|
sum of squared vertical differences
|
|
@item nsse
|
|
noise preserving sum of squared differences
|
|
@item w53
|
|
5/3 wavelet, only used in snow
|
|
@item w97
|
|
9/7 wavelet, only used in snow
|
|
@item dctmax
|
|
|
|
@item chroma
|
|
|
|
@end table
|
|
|
|
@item mbcmp @var{integer} (@emph{encoding,video})
|
|
Set macroblock compare function.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item sad
|
|
sum of absolute differences, fast (default)
|
|
@item sse
|
|
sum of squared errors
|
|
@item satd
|
|
sum of absolute Hadamard transformed differences
|
|
@item dct
|
|
sum of absolute DCT transformed differences
|
|
@item psnr
|
|
sum of squared quantization errors (avoid, low quality)
|
|
@item bit
|
|
number of bits needed for the block
|
|
@item rd
|
|
rate distortion optimal, slow
|
|
@item zero
|
|
0
|
|
@item vsad
|
|
sum of absolute vertical differences
|
|
@item vsse
|
|
sum of squared vertical differences
|
|
@item nsse
|
|
noise preserving sum of squared differences
|
|
@item w53
|
|
5/3 wavelet, only used in snow
|
|
@item w97
|
|
9/7 wavelet, only used in snow
|
|
@item dctmax
|
|
|
|
@item chroma
|
|
|
|
@end table
|
|
|
|
@item ildctcmp @var{integer} (@emph{encoding,video})
|
|
Set interlaced dct compare function.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item sad
|
|
sum of absolute differences, fast (default)
|
|
@item sse
|
|
sum of squared errors
|
|
@item satd
|
|
sum of absolute Hadamard transformed differences
|
|
@item dct
|
|
sum of absolute DCT transformed differences
|
|
@item psnr
|
|
sum of squared quantization errors (avoid, low quality)
|
|
@item bit
|
|
number of bits needed for the block
|
|
@item rd
|
|
rate distortion optimal, slow
|
|
@item zero
|
|
0
|
|
@item vsad
|
|
sum of absolute vertical differences
|
|
@item vsse
|
|
sum of squared vertical differences
|
|
@item nsse
|
|
noise preserving sum of squared differences
|
|
@item w53
|
|
5/3 wavelet, only used in snow
|
|
@item w97
|
|
9/7 wavelet, only used in snow
|
|
@item dctmax
|
|
|
|
@item chroma
|
|
|
|
@end table
|
|
|
|
@item dia_size @var{integer} (@emph{encoding,video})
|
|
Set diamond type & size for motion estimation.
|
|
@table @samp
|
|
@item (1024, INT_MAX)
|
|
full motion estimation(slowest)
|
|
@item (768, 1024]
|
|
umh motion estimation
|
|
@item (512, 768]
|
|
hex motion estimation
|
|
@item (256, 512]
|
|
l2s diamond motion estimation
|
|
@item [2,256]
|
|
var diamond motion estimation
|
|
@item (-1, 2)
|
|
small diamond motion estimation
|
|
@item -1
|
|
funny diamond motion estimation
|
|
@item (INT_MIN, -1)
|
|
sab diamond motion estimation
|
|
@end table
|
|
|
|
@item last_pred @var{integer} (@emph{encoding,video})
|
|
Set amount of motion predictors from the previous frame.
|
|
|
|
@item preme @var{integer} (@emph{encoding,video})
|
|
Set pre motion estimation.
|
|
|
|
@item precmp @var{integer} (@emph{encoding,video})
|
|
Set pre motion estimation compare function.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item sad
|
|
sum of absolute differences, fast (default)
|
|
@item sse
|
|
sum of squared errors
|
|
@item satd
|
|
sum of absolute Hadamard transformed differences
|
|
@item dct
|
|
sum of absolute DCT transformed differences
|
|
@item psnr
|
|
sum of squared quantization errors (avoid, low quality)
|
|
@item bit
|
|
number of bits needed for the block
|
|
@item rd
|
|
rate distortion optimal, slow
|
|
@item zero
|
|
0
|
|
@item vsad
|
|
sum of absolute vertical differences
|
|
@item vsse
|
|
sum of squared vertical differences
|
|
@item nsse
|
|
noise preserving sum of squared differences
|
|
@item w53
|
|
5/3 wavelet, only used in snow
|
|
@item w97
|
|
9/7 wavelet, only used in snow
|
|
@item dctmax
|
|
|
|
@item chroma
|
|
|
|
@end table
|
|
|
|
@item pre_dia_size @var{integer} (@emph{encoding,video})
|
|
Set diamond type & size for motion estimation pre-pass.
|
|
|
|
@item subq @var{integer} (@emph{encoding,video})
|
|
Set sub pel motion estimation quality.
|
|
|
|
@item dtg_active_format @var{integer}
|
|
|
|
@item me_range @var{integer} (@emph{encoding,video})
|
|
Set limit motion vectors range (1023 for DivX player).
|
|
|
|
@item ibias @var{integer} (@emph{encoding,video})
|
|
Set intra quant bias.
|
|
|
|
@item pbias @var{integer} (@emph{encoding,video})
|
|
Set inter quant bias.
|
|
|
|
@item color_table_id @var{integer}
|
|
|
|
@item global_quality @var{integer} (@emph{encoding,audio,video})
|
|
|
|
@item coder @var{integer} (@emph{encoding,video})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item vlc
|
|
variable length coder / huffman coder
|
|
@item ac
|
|
arithmetic coder
|
|
@item raw
|
|
raw (no encoding)
|
|
@item rle
|
|
run-length coder
|
|
@item deflate
|
|
deflate-based coder
|
|
@end table
|
|
|
|
@item context @var{integer} (@emph{encoding,video})
|
|
Set context model.
|
|
|
|
@item slice_flags @var{integer}
|
|
|
|
@item mbd @var{integer} (@emph{encoding,video})
|
|
Set macroblock decision algorithm (high quality mode).
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item simple
|
|
use mbcmp (default)
|
|
@item bits
|
|
use fewest bits
|
|
@item rd
|
|
use best rate distortion
|
|
@end table
|
|
|
|
@item stream_codec_tag @var{integer}
|
|
|
|
@item sc_threshold @var{integer} (@emph{encoding,video})
|
|
Set scene change threshold.
|
|
|
|
@item lmin @var{integer} (@emph{encoding,video})
|
|
Set min lagrange factor (VBR).
|
|
|
|
@item lmax @var{integer} (@emph{encoding,video})
|
|
Set max lagrange factor (VBR).
|
|
|
|
@item nr @var{integer} (@emph{encoding,video})
|
|
Set noise reduction.
|
|
|
|
@item rc_init_occupancy @var{integer} (@emph{encoding,video})
|
|
Set number of bits which should be loaded into the rc buffer before
|
|
decoding starts.
|
|
|
|
@item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item fast
|
|
Allow non spec compliant speedup tricks.
|
|
@item noout
|
|
Skip bitstream encoding.
|
|
@item ignorecrop
|
|
Ignore cropping information from sps.
|
|
@item local_header
|
|
Place global headers at every keyframe instead of in extradata.
|
|
@item chunks
|
|
Frame data might be split into multiple chunks.
|
|
@item showall
|
|
Show all frames before the first keyframe.
|
|
@item export_mvs
|
|
Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
|
|
for codecs that support it. See also @file{doc/examples/export_mvs.c}.
|
|
@item skip_manual
|
|
Do not skip samples and export skip information as frame side data.
|
|
@item ass_ro_flush_noop
|
|
Do not reset ASS ReadOrder field on flush.
|
|
@end table
|
|
|
|
@item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item mvs
|
|
Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
|
|
for codecs that support it. See also @file{doc/examples/export_mvs.c}.
|
|
@item prft
|
|
Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
|
|
for codecs that support it.
|
|
@item venc_params
|
|
Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS})
|
|
for codecs that support it. At present, those are H.264 and VP9.
|
|
@item film_grain
|
|
Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}).
|
|
Supported at present by AV1 decoders.
|
|
@end table
|
|
|
|
@item error @var{integer} (@emph{encoding,video})
|
|
|
|
@item qns @var{integer} (@emph{encoding,video})
|
|
Deprecated, use mpegvideo private options instead.
|
|
|
|
@item threads @var{integer} (@emph{decoding/encoding,video})
|
|
Set the number of threads to be used, in case the selected codec
|
|
implementation supports multi-threading.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item auto, 0
|
|
automatically select the number of threads to set
|
|
@end table
|
|
|
|
Default value is @samp{auto}.
|
|
|
|
@item me_threshold @var{integer} (@emph{encoding,video})
|
|
Set motion estimation threshold.
|
|
|
|
@item mb_threshold @var{integer} (@emph{encoding,video})
|
|
Set macroblock threshold.
|
|
|
|
@item dc @var{integer} (@emph{encoding,video})
|
|
Set intra_dc_precision.
|
|
|
|
@item nssew @var{integer} (@emph{encoding,video})
|
|
Set nsse weight.
|
|
|
|
@item skip_top @var{integer} (@emph{decoding,video})
|
|
Set number of macroblock rows at the top which are skipped.
|
|
|
|
@item skip_bottom @var{integer} (@emph{decoding,video})
|
|
Set number of macroblock rows at the bottom which are skipped.
|
|
|
|
@item profile @var{integer} (@emph{encoding,audio,video})
|
|
|
|
Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
|
|
profiles are documented in the relevant encoder documentation.
|
|
|
|
@item level @var{integer} (@emph{encoding,audio,video})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item unknown
|
|
|
|
@end table
|
|
|
|
@item lowres @var{integer} (@emph{decoding,audio,video})
|
|
Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
|
|
|
|
@item skip_threshold @var{integer} (@emph{encoding,video})
|
|
Set frame skip threshold.
|
|
|
|
@item skip_factor @var{integer} (@emph{encoding,video})
|
|
Set frame skip factor.
|
|
|
|
@item skip_exp @var{integer} (@emph{encoding,video})
|
|
Set frame skip exponent.
|
|
Negative values behave identical to the corresponding positive ones, except
|
|
that the score is normalized.
|
|
Positive values exist primarily for compatibility reasons and are not so useful.
|
|
|
|
@item skipcmp @var{integer} (@emph{encoding,video})
|
|
Set frame skip compare function.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item sad
|
|
sum of absolute differences, fast (default)
|
|
@item sse
|
|
sum of squared errors
|
|
@item satd
|
|
sum of absolute Hadamard transformed differences
|
|
@item dct
|
|
sum of absolute DCT transformed differences
|
|
@item psnr
|
|
sum of squared quantization errors (avoid, low quality)
|
|
@item bit
|
|
number of bits needed for the block
|
|
@item rd
|
|
rate distortion optimal, slow
|
|
@item zero
|
|
0
|
|
@item vsad
|
|
sum of absolute vertical differences
|
|
@item vsse
|
|
sum of squared vertical differences
|
|
@item nsse
|
|
noise preserving sum of squared differences
|
|
@item w53
|
|
5/3 wavelet, only used in snow
|
|
@item w97
|
|
9/7 wavelet, only used in snow
|
|
@item dctmax
|
|
|
|
@item chroma
|
|
|
|
@end table
|
|
|
|
@item border_mask @var{float} (@emph{encoding,video})
|
|
Increase the quantizer for macroblocks close to borders.
|
|
|
|
@item mblmin @var{integer} (@emph{encoding,video})
|
|
Set min macroblock lagrange factor (VBR).
|
|
|
|
@item mblmax @var{integer} (@emph{encoding,video})
|
|
Set max macroblock lagrange factor (VBR).
|
|
|
|
@item mepc @var{integer} (@emph{encoding,video})
|
|
Set motion estimation bitrate penalty compensation (1.0 = 256).
|
|
|
|
@item skip_loop_filter @var{integer} (@emph{decoding,video})
|
|
@item skip_idct @var{integer} (@emph{decoding,video})
|
|
@item skip_frame @var{integer} (@emph{decoding,video})
|
|
|
|
Make decoder discard processing depending on the frame type selected
|
|
by the option value.
|
|
|
|
@option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
|
|
skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item none
|
|
Discard no frame.
|
|
|
|
@item default
|
|
Discard useless frames like 0-sized frames.
|
|
|
|
@item noref
|
|
Discard all non-reference frames.
|
|
|
|
@item bidir
|
|
Discard all bidirectional frames.
|
|
|
|
@item nokey
|
|
Discard all frames excepts keyframes.
|
|
|
|
@item nointra
|
|
Discard all frames except I frames.
|
|
|
|
@item all
|
|
Discard all frames.
|
|
@end table
|
|
|
|
Default value is @samp{default}.
|
|
|
|
@item bidir_refine @var{integer} (@emph{encoding,video})
|
|
Refine the two motion vectors used in bidirectional macroblocks.
|
|
|
|
@item brd_scale @var{integer} (@emph{encoding,video})
|
|
Downscale frames for dynamic B-frame decision.
|
|
|
|
@item keyint_min @var{integer} (@emph{encoding,video})
|
|
Set minimum interval between IDR-frames.
|
|
|
|
@item refs @var{integer} (@emph{encoding,video})
|
|
Set reference frames to consider for motion compensation.
|
|
|
|
@item chromaoffset @var{integer} (@emph{encoding,video})
|
|
Set chroma qp offset from luma.
|
|
|
|
@item trellis @var{integer} (@emph{encoding,audio,video})
|
|
Set rate-distortion optimal quantization.
|
|
|
|
@item mv0_threshold @var{integer} (@emph{encoding,video})
|
|
@item b_sensitivity @var{integer} (@emph{encoding,video})
|
|
Adjust sensitivity of b_frame_strategy 1.
|
|
|
|
@item compression_level @var{integer} (@emph{encoding,audio,video})
|
|
@item min_prediction_order @var{integer} (@emph{encoding,audio})
|
|
@item max_prediction_order @var{integer} (@emph{encoding,audio})
|
|
@item timecode_frame_start @var{integer} (@emph{encoding,video})
|
|
Set GOP timecode frame start number, in non drop frame format.
|
|
|
|
@item request_channels @var{integer} (@emph{decoding,audio})
|
|
Set desired number of audio channels.
|
|
|
|
@item bits_per_raw_sample @var{integer}
|
|
@item channel_layout @var{integer} (@emph{decoding/encoding,audio})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@end table
|
|
@item request_channel_layout @var{integer} (@emph{decoding,audio})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@end table
|
|
@item rc_max_vbv_use @var{float} (@emph{encoding,video})
|
|
@item rc_min_vbv_use @var{float} (@emph{encoding,video})
|
|
@item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
|
|
|
|
@item color_primaries @var{integer} (@emph{decoding/encoding,video})
|
|
Possible values:
|
|
@table @samp
|
|
@item bt709
|
|
BT.709
|
|
@item bt470m
|
|
BT.470 M
|
|
@item bt470bg
|
|
BT.470 BG
|
|
@item smpte170m
|
|
SMPTE 170 M
|
|
@item smpte240m
|
|
SMPTE 240 M
|
|
@item film
|
|
Film
|
|
@item bt2020
|
|
BT.2020
|
|
@item smpte428
|
|
@item smpte428_1
|
|
SMPTE ST 428-1
|
|
@item smpte431
|
|
SMPTE 431-2
|
|
@item smpte432
|
|
SMPTE 432-1
|
|
@item jedec-p22
|
|
JEDEC P22
|
|
@end table
|
|
|
|
@item color_trc @var{integer} (@emph{decoding/encoding,video})
|
|
Possible values:
|
|
@table @samp
|
|
@item bt709
|
|
BT.709
|
|
@item gamma22
|
|
BT.470 M
|
|
@item gamma28
|
|
BT.470 BG
|
|
@item smpte170m
|
|
SMPTE 170 M
|
|
@item smpte240m
|
|
SMPTE 240 M
|
|
@item linear
|
|
Linear
|
|
@item log
|
|
@item log100
|
|
Log
|
|
@item log_sqrt
|
|
@item log316
|
|
Log square root
|
|
@item iec61966_2_4
|
|
@item iec61966-2-4
|
|
IEC 61966-2-4
|
|
@item bt1361
|
|
@item bt1361e
|
|
BT.1361
|
|
@item iec61966_2_1
|
|
@item iec61966-2-1
|
|
IEC 61966-2-1
|
|
@item bt2020_10
|
|
@item bt2020_10bit
|
|
BT.2020 - 10 bit
|
|
@item bt2020_12
|
|
@item bt2020_12bit
|
|
BT.2020 - 12 bit
|
|
@item smpte2084
|
|
SMPTE ST 2084
|
|
@item smpte428
|
|
@item smpte428_1
|
|
SMPTE ST 428-1
|
|
@item arib-std-b67
|
|
ARIB STD-B67
|
|
@end table
|
|
|
|
@item colorspace @var{integer} (@emph{decoding/encoding,video})
|
|
Possible values:
|
|
@table @samp
|
|
@item rgb
|
|
RGB
|
|
@item bt709
|
|
BT.709
|
|
@item fcc
|
|
FCC
|
|
@item bt470bg
|
|
BT.470 BG
|
|
@item smpte170m
|
|
SMPTE 170 M
|
|
@item smpte240m
|
|
SMPTE 240 M
|
|
@item ycocg
|
|
YCOCG
|
|
@item bt2020nc
|
|
@item bt2020_ncl
|
|
BT.2020 NCL
|
|
@item bt2020c
|
|
@item bt2020_cl
|
|
BT.2020 CL
|
|
@item smpte2085
|
|
SMPTE 2085
|
|
@item chroma-derived-nc
|
|
Chroma-derived NCL
|
|
@item chroma-derived-c
|
|
Chroma-derived CL
|
|
@item ictcp
|
|
ICtCp
|
|
@end table
|
|
|
|
@item color_range @var{integer} (@emph{decoding/encoding,video})
|
|
If used as input parameter, it serves as a hint to the decoder, which
|
|
color_range the input has.
|
|
Possible values:
|
|
@table @samp
|
|
@item tv
|
|
@item mpeg
|
|
MPEG (219*2^(n-8))
|
|
@item pc
|
|
@item jpeg
|
|
JPEG (2^n-1)
|
|
@end table
|
|
|
|
@item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
|
|
Possible values:
|
|
@table @samp
|
|
@item left
|
|
|
|
@item center
|
|
|
|
@item topleft
|
|
|
|
@item top
|
|
|
|
@item bottomleft
|
|
|
|
@item bottom
|
|
|
|
@end table
|
|
|
|
@item log_level_offset @var{integer}
|
|
Set the log level offset.
|
|
|
|
@item slices @var{integer} (@emph{encoding,video})
|
|
Number of slices, used in parallelized encoding.
|
|
|
|
@item thread_type @var{flags} (@emph{decoding/encoding,video})
|
|
Select which multithreading methods to use.
|
|
|
|
Use of @samp{frame} will increase decoding delay by one frame per
|
|
thread, so clients which cannot provide future frames should not use
|
|
it.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item slice
|
|
Decode more than one part of a single frame at once.
|
|
|
|
Multithreading using slices works only when the video was encoded with
|
|
slices.
|
|
|
|
@item frame
|
|
Decode more than one frame at once.
|
|
@end table
|
|
|
|
Default value is @samp{slice+frame}.
|
|
|
|
@item audio_service_type @var{integer} (@emph{encoding,audio})
|
|
Set audio service type.
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item ma
|
|
Main Audio Service
|
|
@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 request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
|
|
Set sample format audio decoders should prefer. Default value is
|
|
@code{none}.
|
|
|
|
@item pkt_timebase @var{rational number}
|
|
|
|
@item sub_charenc @var{encoding} (@emph{decoding,subtitles})
|
|
Set the input subtitles character encoding.
|
|
|
|
@item field_order @var{field_order} (@emph{video})
|
|
Set/override the field order of the video.
|
|
Possible values:
|
|
@table @samp
|
|
@item progressive
|
|
Progressive video
|
|
@item tt
|
|
Interlaced video, top field coded and displayed first
|
|
@item bb
|
|
Interlaced video, bottom field coded and displayed first
|
|
@item tb
|
|
Interlaced video, top coded first, bottom displayed first
|
|
@item bt
|
|
Interlaced video, bottom coded first, top displayed first
|
|
@end table
|
|
|
|
@item skip_alpha @var{bool} (@emph{decoding,video})
|
|
Set to 1 to disable processing alpha (transparency). This works like the
|
|
@samp{gray} flag in the @option{flags} option which skips chroma information
|
|
instead of alpha. Default is 0.
|
|
|
|
@item codec_whitelist @var{list} (@emph{input})
|
|
"," separated list of allowed decoders. By default all are allowed.
|
|
|
|
@item dump_separator @var{string} (@emph{input})
|
|
Separator used to separate the fields printed on the command line about the
|
|
Stream parameters.
|
|
For example, to separate the fields with newlines and indentation:
|
|
@example
|
|
ffprobe -dump_separator "
|
|
" -i ~/videos/matrixbench_mpeg2.mpg
|
|
@end example
|
|
|
|
@item max_pixels @var{integer} (@emph{decoding/encoding,video})
|
|
Maximum number of pixels per image. This value can be used to avoid out of
|
|
memory failures due to large images.
|
|
|
|
@item apply_cropping @var{bool} (@emph{decoding,video})
|
|
Enable cropping if cropping parameters are multiples of the required
|
|
alignment for the left and top parameters. If the alignment is not met the
|
|
cropping will be partially applied to maintain alignment.
|
|
Default is 1 (enabled).
|
|
Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
|
|
CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
|
|
decoders will not apply left/top Cropping.
|
|
|
|
|
|
@end table
|
|
|
|
@c man end CODEC OPTIONS
|
|
|
|
@ifclear config-writeonly
|
|
@include decoders.texi
|
|
@end ifclear
|
|
@ifclear config-readonly
|
|
@include encoders.texi
|
|
@end ifclear
|