mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
b0352b1997
The reasoning behind this addition is that various third party applications are interested in getting some motion information out of a video "for free" when it is available. It was considered to export other information as well (such as the intra information about the block, or the quantization) but the structure might have ended up into a half full-generic, half full of codec specific cruft. If more information is necessary, it should either be added in the "flags" field of the AVMotionVector structure, or in another side-data. This commit also includes an example exporting them in a CSV stream.
1125 lines
27 KiB
Plaintext
1125 lines
27 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 unsensical 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 gmc
|
|
Use gmc.
|
|
@item mv0
|
|
Always try a mb with mv=<0,0>.
|
|
@item input_preserved
|
|
|
|
@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
|
|
|
|
@item naq
|
|
Normalize adaptive quantization.
|
|
@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
|
|
Use only bitexact stuff (except (I)DCT).
|
|
@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.
|
|
@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 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.
|
|
|
|
@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 a 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 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 mv
|
|
motion vector
|
|
@item dct_coeff
|
|
|
|
@item skip
|
|
|
|
@item startcode
|
|
|
|
@item pts
|
|
|
|
@item er
|
|
error recognition
|
|
@item mmco
|
|
memory management control operations (H.264)
|
|
@item bugs
|
|
|
|
@item vis_qp
|
|
visualize quantization parameter (QP), lower QP are tinted greener
|
|
@item vis_mb_type
|
|
visualize block types
|
|
@item buffers
|
|
picture buffer allocations
|
|
@item thread_ops
|
|
threading operations
|
|
@end table
|
|
|
|
@item vismv @var{integer} (@emph{decoding,video})
|
|
Visualize motion vectors (MVs).
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item pf
|
|
forward predicted MVs of P-frames
|
|
@item bf
|
|
forward predicted MVs of B-frames
|
|
@item bb
|
|
backward predicted MVs of B-frames
|
|
@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.
|
|
|
|
@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 xvmc_acceleration @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})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item fast
|
|
Allow non spec compliant speedup tricks.
|
|
@item sgop
|
|
Deprecated, use mpegvideo private options instead.
|
|
@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 skiprd
|
|
Deprecated, use mpegvideo private options instead.
|
|
@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}.
|
|
@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})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item auto
|
|
detect a good number of threads
|
|
@end table
|
|
|
|
@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})
|
|
|
|
Possible values:
|
|
@table @samp
|
|
@item unknown
|
|
|
|
@item aac_main
|
|
|
|
@item aac_low
|
|
|
|
@item aac_ssr
|
|
|
|
@item aac_ltp
|
|
|
|
@item aac_he
|
|
|
|
@item aac_he_v2
|
|
|
|
@item aac_ld
|
|
|
|
@item aac_eld
|
|
|
|
@item mpeg2_aac_low
|
|
|
|
@item mpeg2_aac_he
|
|
|
|
@item dts
|
|
|
|
@item dts_es
|
|
|
|
@item dts_96_24
|
|
|
|
@item dts_hd_hra
|
|
|
|
@item dts_hd_ma
|
|
|
|
@end table
|
|
|
|
@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 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 sc_factor @var{integer} (@emph{encoding,video})
|
|
Set value multiplied by qscale for each frame and added to
|
|
scene_change_score.
|
|
|
|
@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})
|
|
@item color_trc @var{integer} (@emph{decoding/encoding,video})
|
|
@item colorspace @var{integer} (@emph{decoding/encoding,video})
|
|
@item color_range @var{integer} (@emph{decoding/encoding,video})
|
|
@item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
|
|
|
|
@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{integer} (@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.
|
|
@end table
|
|
|
|
@c man end CODEC OPTIONS
|
|
|
|
@ifclear config-writeonly
|
|
@include decoders.texi
|
|
@end ifclear
|
|
@ifclear config-readonly
|
|
@include encoders.texi
|
|
@end ifclear
|