Spaces:
Running
Running
FFMPEG-CODECS(1) FFMPEG-CODECS(1) | |
NAME | |
ffmpeg-codecs - FFmpeg codecs | |
DESCRIPTION | |
This document describes the codecs (decoders and encoders) provided by | |
the libavcodec library. | |
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 -option value in the FFmpeg tools, or | |
by setting the value explicitly in the "AVCodecContext" options or | |
using the libavutil/opt.h API for programmatic use. | |
The list of supported options follow: | |
b integer (encoding,audio,video) | |
Set bitrate in bits/s. Default value is 200K. | |
ab integer (encoding,audio) | |
Set audio bitrate (in bits/s). Default value is 128K. | |
bt integer (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. | |
flags flags (decoding/encoding,audio,video,subtitles) | |
Set generic flags. | |
Possible values: | |
mv4 Use four motion vector by macroblock (mpeg4). | |
qpel | |
Use 1/4 pel motion compensation. | |
loop | |
Use loop filter. | |
qscale | |
Use fixed qscale. | |
pass1 | |
Use internal 2pass ratecontrol in first pass mode. | |
pass2 | |
Use internal 2pass ratecontrol in second pass mode. | |
gray | |
Only decode/encode grayscale. | |
psnr | |
Set error[?] variables during encoding. | |
truncated | |
Input bitstream might be randomly truncated. | |
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. | |
ildct | |
Use interlaced DCT. | |
low_delay | |
Force low delay. | |
global_header | |
Place global headers in extradata instead of every keyframe. | |
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. | |
aic Apply H263 advanced intra coding / mpeg4 ac prediction. | |
ilme | |
Apply interlaced motion estimation. | |
cgop | |
Use closed gop. | |
output_corrupt | |
Output even potentially corrupted frames. | |
time_base 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 "1 / frame_rate" and timestamp increments should be | |
identically 1. | |
g integer (encoding,video) | |
Set the group of picture (GOP) size. Default value is 12. | |
ar integer (decoding/encoding,audio) | |
Set audio sampling rate (in Hz). | |
ac integer (decoding/encoding,audio) | |
Set number of audio channels. | |
cutoff integer (encoding,audio) | |
Set cutoff bandwidth. (Supported only by selected encoders, see | |
their respective documentation sections.) | |
frame_size integer (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. | |
frame_number integer | |
Set the frame number. | |
delay integer | |
qcomp float (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. | |
qblur float (encoding,video) | |
Set video quantizer scale blur (VBR). | |
qmin integer (encoding,video) | |
Set min video quantizer scale (VBR). Must be included between -1 | |
and 69, default value is 2. | |
qmax integer (encoding,video) | |
Set max video quantizer scale (VBR). Must be included between -1 | |
and 1024, default value is 31. | |
qdiff integer (encoding,video) | |
Set max difference between the quantizer scale (VBR). | |
bf integer (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. | |
b_qfactor float (encoding,video) | |
Set qp factor between P and B frames. | |
codec_tag integer | |
bug flags (decoding,video) | |
Workaround not auto detected encoder bugs. | |
Possible values: | |
autodetect | |
xvid_ilace | |
Xvid interlacing bug (autodetected if fourcc==XVIX) | |
ump4 | |
(autodetected if fourcc==UMP4) | |
no_padding | |
padding bug (autodetected) | |
amv | |
qpel_chroma | |
std_qpel | |
old standard qpel (autodetected per fourcc/version) | |
qpel_chroma2 | |
direct_blocksize | |
direct-qpel-blocksize bug (autodetected per fourcc/version) | |
edge | |
edge padding bug (autodetected per fourcc/version) | |
hpel_chroma | |
dc_clip | |
ms Workaround various bugs in microsoft broken decoders. | |
trunc | |
trancated frames | |
strict integer (decoding/encoding,audio,video) | |
Specify how strictly to follow the standards. | |
Possible values: | |
very | |
strictly conform to an older more strict version of the spec or | |
reference software | |
strict | |
strictly conform to all the things in the spec no matter what | |
consequences | |
normal | |
unofficial | |
allow unofficial extensions | |
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. | |
b_qoffset float (encoding,video) | |
Set QP offset between P and B frames. | |
err_detect flags (decoding,audio,video) | |
Set error detection flags. | |
Possible values: | |
crccheck | |
verify embedded CRCs | |
bitstream | |
detect bitstream specification deviations | |
buffer | |
detect improper bitstream length | |
explode | |
abort decoding on minor error detection | |
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. | |
careful | |
consider things that violate the spec and have not been seen in | |
the wild as errors | |
compliant | |
consider all spec non compliancies as errors | |
aggressive | |
consider things that a sane encoder should not do as an error | |
has_b_frames integer | |
block_align integer | |
rc_override_count integer | |
maxrate integer (encoding,audio,video) | |
Set max bitrate tolerance (in bits/s). Requires bufsize to be set. | |
minrate integer (encoding,audio,video) | |
Set min bitrate tolerance (in bits/s). Most useful in setting up a | |
CBR encode. It is of little use elsewise. | |
bufsize integer (encoding,audio,video) | |
Set ratecontrol buffer size (in bits). | |
i_qfactor float (encoding,video) | |
Set QP factor between P and I frames. | |
i_qoffset float (encoding,video) | |
Set QP offset between P and I frames. | |
dct integer (encoding,video) | |
Set DCT algorithm. | |
Possible values: | |
auto | |
autoselect a good one (default) | |
fastint | |
fast integer | |
int accurate integer | |
mmx | |
altivec | |
faan | |
floating point AAN DCT | |
lumi_mask float (encoding,video) | |
Compress bright areas stronger than medium ones. | |
tcplx_mask float (encoding,video) | |
Set temporal complexity masking. | |
scplx_mask float (encoding,video) | |
Set spatial complexity masking. | |
p_mask float (encoding,video) | |
Set inter masking. | |
dark_mask float (encoding,video) | |
Compress dark areas stronger than medium ones. | |
idct integer (decoding/encoding,video) | |
Select IDCT implementation. | |
Possible values: | |
auto | |
int | |
simple | |
simplemmx | |
simpleauto | |
Automatically pick a IDCT compatible with the simple one | |
arm | |
altivec | |
sh4 | |
simplearm | |
simplearmv5te | |
simplearmv6 | |
simpleneon | |
xvid | |
faani | |
floating point AAN IDCT | |
slice_count integer | |
ec flags (decoding,video) | |
Set error concealment strategy. | |
Possible values: | |
guess_mvs | |
iterative motion vector (MV) search (slow) | |
deblock | |
use strong deblock filter for damaged MBs | |
favor_inter | |
favor predicting from the previous frame instead of the current | |
bits_per_coded_sample integer | |
aspect rational number (encoding,video) | |
Set sample aspect ratio. | |
sar rational number (encoding,video) | |
Set sample aspect ratio. Alias to aspect. | |
debug flags (decoding/encoding,audio,video,subtitles) | |
Print specific debug info. | |
Possible values: | |
pict | |
picture info | |
rc rate control | |
bitstream | |
mb_type | |
macroblock (MB) type | |
qp per-block quantization parameter (QP) | |
dct_coeff | |
green_metadata | |
display complexity metadata for the upcoming frame, GoP or for | |
a given duration. | |
skip | |
startcode | |
er error recognition | |
mmco | |
memory management control operations (H.264) | |
bugs | |
buffers | |
picture buffer allocations | |
thread_ops | |
threading operations | |
nomc | |
skip motion compensation | |
cmp integer (encoding,video) | |
Set full pel me compare function. | |
Possible values: | |
sad sum of absolute differences, fast (default) | |
sse sum of squared errors | |
satd | |
sum of absolute Hadamard transformed differences | |
dct sum of absolute DCT transformed differences | |
psnr | |
sum of squared quantization errors (avoid, low quality) | |
bit number of bits needed for the block | |
rd rate distortion optimal, slow | |
zero | |
0 | |
vsad | |
sum of absolute vertical differences | |
vsse | |
sum of squared vertical differences | |
nsse | |
noise preserving sum of squared differences | |
w53 5/3 wavelet, only used in snow | |
w97 9/7 wavelet, only used in snow | |
dctmax | |
chroma | |
subcmp integer (encoding,video) | |
Set sub pel me compare function. | |
Possible values: | |
sad sum of absolute differences, fast (default) | |
sse sum of squared errors | |
satd | |
sum of absolute Hadamard transformed differences | |
dct sum of absolute DCT transformed differences | |
psnr | |
sum of squared quantization errors (avoid, low quality) | |
bit number of bits needed for the block | |
rd rate distortion optimal, slow | |
zero | |
0 | |
vsad | |
sum of absolute vertical differences | |
vsse | |
sum of squared vertical differences | |
nsse | |
noise preserving sum of squared differences | |
w53 5/3 wavelet, only used in snow | |
w97 9/7 wavelet, only used in snow | |
dctmax | |
chroma | |
mbcmp integer (encoding,video) | |
Set macroblock compare function. | |
Possible values: | |
sad sum of absolute differences, fast (default) | |
sse sum of squared errors | |
satd | |
sum of absolute Hadamard transformed differences | |
dct sum of absolute DCT transformed differences | |
psnr | |
sum of squared quantization errors (avoid, low quality) | |
bit number of bits needed for the block | |
rd rate distortion optimal, slow | |
zero | |
0 | |
vsad | |
sum of absolute vertical differences | |
vsse | |
sum of squared vertical differences | |
nsse | |
noise preserving sum of squared differences | |
w53 5/3 wavelet, only used in snow | |
w97 9/7 wavelet, only used in snow | |
dctmax | |
chroma | |
ildctcmp integer (encoding,video) | |
Set interlaced dct compare function. | |
Possible values: | |
sad sum of absolute differences, fast (default) | |
sse sum of squared errors | |
satd | |
sum of absolute Hadamard transformed differences | |
dct sum of absolute DCT transformed differences | |
psnr | |
sum of squared quantization errors (avoid, low quality) | |
bit number of bits needed for the block | |
rd rate distortion optimal, slow | |
zero | |
0 | |
vsad | |
sum of absolute vertical differences | |
vsse | |
sum of squared vertical differences | |
nsse | |
noise preserving sum of squared differences | |
w53 5/3 wavelet, only used in snow | |
w97 9/7 wavelet, only used in snow | |
dctmax | |
chroma | |
dia_size integer (encoding,video) | |
Set diamond type & size for motion estimation. | |
(1024, INT_MAX) | |
full motion estimation(slowest) | |
(768, 1024] | |
umh motion estimation | |
(512, 768] | |
hex motion estimation | |
(256, 512] | |
l2s diamond motion estimation | |
[2,256] | |
var diamond motion estimation | |
(-1, 2) | |
small diamond motion estimation | |
-1 funny diamond motion estimation | |
(INT_MIN, -1) | |
sab diamond motion estimation | |
last_pred integer (encoding,video) | |
Set amount of motion predictors from the previous frame. | |
precmp integer (encoding,video) | |
Set pre motion estimation compare function. | |
Possible values: | |
sad sum of absolute differences, fast (default) | |
sse sum of squared errors | |
satd | |
sum of absolute Hadamard transformed differences | |
dct sum of absolute DCT transformed differences | |
psnr | |
sum of squared quantization errors (avoid, low quality) | |
bit number of bits needed for the block | |
rd rate distortion optimal, slow | |
zero | |
0 | |
vsad | |
sum of absolute vertical differences | |
vsse | |
sum of squared vertical differences | |
nsse | |
noise preserving sum of squared differences | |
w53 5/3 wavelet, only used in snow | |
w97 9/7 wavelet, only used in snow | |
dctmax | |
chroma | |
pre_dia_size integer (encoding,video) | |
Set diamond type & size for motion estimation pre-pass. | |
subq integer (encoding,video) | |
Set sub pel motion estimation quality. | |
me_range integer (encoding,video) | |
Set limit motion vectors range (1023 for DivX player). | |
global_quality integer (encoding,audio,video) | |
slice_flags integer | |
mbd integer (encoding,video) | |
Set macroblock decision algorithm (high quality mode). | |
Possible values: | |
simple | |
use mbcmp (default) | |
bits | |
use fewest bits | |
rd use best rate distortion | |
rc_init_occupancy integer (encoding,video) | |
Set number of bits which should be loaded into the rc buffer before | |
decoding starts. | |
flags2 flags (decoding/encoding,audio,video,subtitles) | |
Possible values: | |
fast | |
Allow non spec compliant speedup tricks. | |
noout | |
Skip bitstream encoding. | |
ignorecrop | |
Ignore cropping information from sps. | |
local_header | |
Place global headers at every keyframe instead of in extradata. | |
chunks | |
Frame data might be split into multiple chunks. | |
showall | |
Show all frames before the first keyframe. | |
export_mvs | |
Export motion vectors into frame side-data (see | |
"AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See | |
also doc/examples/export_mvs.c. | |
skip_manual | |
Do not skip samples and export skip information as frame side | |
data. | |
ass_ro_flush_noop | |
Do not reset ASS ReadOrder field on flush. | |
icc_profiles | |
Generate/parse embedded ICC profiles from/to colorimetry tags. | |
export_side_data flags (decoding/encoding,audio,video,subtitles) | |
Possible values: | |
mvs Export motion vectors into frame side-data (see | |
"AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See | |
also doc/examples/export_mvs.c. | |
prft | |
Export encoder Producer Reference Time into packet side-data | |
(see "AV_PKT_DATA_PRFT") for codecs that support it. | |
venc_params | |
Export video encoding parameters through frame side data (see | |
"AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it. | |
At present, those are H.264 and VP9. | |
film_grain | |
Export film grain parameters through frame side data (see | |
"AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by | |
AV1 decoders. | |
threads integer (decoding/encoding,video) | |
Set the number of threads to be used, in case the selected codec | |
implementation supports multi-threading. | |
Possible values: | |
auto, 0 | |
automatically select the number of threads to set | |
Default value is auto. | |
dc integer (encoding,video) | |
Set intra_dc_precision. | |
nssew integer (encoding,video) | |
Set nsse weight. | |
skip_top integer (decoding,video) | |
Set number of macroblock rows at the top which are skipped. | |
skip_bottom integer (decoding,video) | |
Set number of macroblock rows at the bottom which are skipped. | |
profile integer (encoding,audio,video) | |
Set encoder codec profile. Default value is unknown. Encoder | |
specific profiles are documented in the relevant encoder | |
documentation. | |
level integer (encoding,audio,video) | |
Set the encoder level. This level depends on the specific codec, | |
and might correspond to the profile level. It is set by default to | |
unknown. | |
Possible values: | |
unknown | |
lowres integer (decoding,audio,video) | |
Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. | |
mblmin integer (encoding,video) | |
Set min macroblock lagrange factor (VBR). | |
mblmax integer (encoding,video) | |
Set max macroblock lagrange factor (VBR). | |
skip_loop_filter integer (decoding,video) | |
skip_idct integer (decoding,video) | |
skip_frame integer (decoding,video) | |
Make decoder discard processing depending on the frame type | |
selected by the option value. | |
skip_loop_filter skips frame loop filtering, skip_idct skips frame | |
IDCT/dequantization, skip_frame skips decoding. | |
Possible values: | |
none | |
Discard no frame. | |
default | |
Discard useless frames like 0-sized frames. | |
noref | |
Discard all non-reference frames. | |
bidir | |
Discard all bidirectional frames. | |
nokey | |
Discard all frames excepts keyframes. | |
nointra | |
Discard all frames except I frames. | |
all Discard all frames. | |
Default value is default. | |
bidir_refine integer (encoding,video) | |
Refine the two motion vectors used in bidirectional macroblocks. | |
keyint_min integer (encoding,video) | |
Set minimum interval between IDR-frames. | |
refs integer (encoding,video) | |
Set reference frames to consider for motion compensation. | |
trellis integer (encoding,audio,video) | |
Set rate-distortion optimal quantization. | |
mv0_threshold integer (encoding,video) | |
compression_level integer (encoding,audio,video) | |
bits_per_raw_sample integer | |
channel_layout integer (decoding/encoding,audio) | |
See the Channel Layout section in the ffmpeg-utils(1) manual for | |
the required syntax. | |
rc_max_vbv_use float (encoding,video) | |
rc_min_vbv_use float (encoding,video) | |
color_primaries integer (decoding/encoding,video) | |
Possible values: | |
bt709 | |
BT.709 | |
bt470m | |
BT.470 M | |
bt470bg | |
BT.470 BG | |
smpte170m | |
SMPTE 170 M | |
smpte240m | |
SMPTE 240 M | |
film | |
Film | |
bt2020 | |
BT.2020 | |
smpte428 | |
smpte428_1 | |
SMPTE ST 428-1 | |
smpte431 | |
SMPTE 431-2 | |
smpte432 | |
SMPTE 432-1 | |
jedec-p22 | |
JEDEC P22 | |
color_trc integer (decoding/encoding,video) | |
Possible values: | |
bt709 | |
BT.709 | |
gamma22 | |
BT.470 M | |
gamma28 | |
BT.470 BG | |
smpte170m | |
SMPTE 170 M | |
smpte240m | |
SMPTE 240 M | |
linear | |
Linear | |
log | |
log100 | |
Log | |
log_sqrt | |
log316 | |
Log square root | |
iec61966_2_4 | |
iec61966-2-4 | |
IEC 61966-2-4 | |
bt1361 | |
bt1361e | |
BT.1361 | |
iec61966_2_1 | |
iec61966-2-1 | |
IEC 61966-2-1 | |
bt2020_10 | |
bt2020_10bit | |
BT.2020 - 10 bit | |
bt2020_12 | |
bt2020_12bit | |
BT.2020 - 12 bit | |
smpte2084 | |
SMPTE ST 2084 | |
smpte428 | |
smpte428_1 | |
SMPTE ST 428-1 | |
arib-std-b67 | |
ARIB STD-B67 | |
colorspace integer (decoding/encoding,video) | |
Possible values: | |
rgb RGB | |
bt709 | |
BT.709 | |
fcc FCC | |
bt470bg | |
BT.470 BG | |
smpte170m | |
SMPTE 170 M | |
smpte240m | |
SMPTE 240 M | |
ycocg | |
YCOCG | |
bt2020nc | |
bt2020_ncl | |
BT.2020 NCL | |
bt2020c | |
bt2020_cl | |
BT.2020 CL | |
smpte2085 | |
SMPTE 2085 | |
chroma-derived-nc | |
Chroma-derived NCL | |
chroma-derived-c | |
Chroma-derived CL | |
ictcp | |
ICtCp | |
color_range integer (decoding/encoding,video) | |
If used as input parameter, it serves as a hint to the decoder, | |
which color_range the input has. Possible values: | |
tv | |
mpeg | |
limited | |
MPEG (219*2^(n-8)) | |
pc | |
jpeg | |
full | |
JPEG (2^n-1) | |
chroma_sample_location integer (decoding/encoding,video) | |
Possible values: | |
left | |
center | |
topleft | |
top | |
bottomleft | |
bottom | |
log_level_offset integer | |
Set the log level offset. | |
slices integer (encoding,video) | |
Number of slices, used in parallelized encoding. | |
thread_type flags (decoding/encoding,video) | |
Select which multithreading methods to use. | |
Use of frame will increase decoding delay by one frame per thread, | |
so clients which cannot provide future frames should not use it. | |
Possible values: | |
slice | |
Decode more than one part of a single frame at once. | |
Multithreading using slices works only when the video was | |
encoded with slices. | |
frame | |
Decode more than one frame at once. | |
Default value is slice+frame. | |
audio_service_type integer (encoding,audio) | |
Set audio service type. | |
Possible values: | |
ma Main Audio Service | |
ef Effects | |
vi Visually Impaired | |
hi Hearing Impaired | |
di Dialogue | |
co Commentary | |
em Emergency | |
vo Voice Over | |
ka Karaoke | |
request_sample_fmt sample_fmt (decoding,audio) | |
Set sample format audio decoders should prefer. Default value is | |
"none". | |
pkt_timebase rational number | |
sub_charenc encoding (decoding,subtitles) | |
Set the input subtitles character encoding. | |
field_order field_order (video) | |
Set/override the field order of the video. Possible values: | |
progressive | |
Progressive video | |
tt Interlaced video, top field coded and displayed first | |
bb Interlaced video, bottom field coded and displayed first | |
tb Interlaced video, top coded first, bottom displayed first | |
bt Interlaced video, bottom coded first, top displayed first | |
skip_alpha bool (decoding,video) | |
Set to 1 to disable processing alpha (transparency). This works | |
like the gray flag in the flags option which skips chroma | |
information instead of alpha. Default is 0. | |
codec_whitelist list (input) | |
"," separated list of allowed decoders. By default all are allowed. | |
dump_separator string (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: | |
ffprobe -dump_separator " | |
" -i ~/videos/matrixbench_mpeg2.mpg | |
max_pixels integer (decoding/encoding,video) | |
Maximum number of pixels per image. This value can be used to avoid | |
out of memory failures due to large images. | |
apply_cropping bool (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 "AV_CODEC_FLAG_UNALIGNED" is set and the | |
CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command | |
line. Also hardware decoders will not apply left/top Cropping. | |
DECODERS | |
Decoders are configured elements in FFmpeg which allow the decoding of | |
multimedia streams. | |
When you configure your FFmpeg build, all the supported native decoders | |
are enabled by default. Decoders requiring an external library must be | |
enabled manually via the corresponding "--enable-lib" option. You can | |
list all available decoders using the configure option | |
"--list-decoders". | |
You can disable all the decoders with the configure option | |
"--disable-decoders" and selectively enable / disable single decoders | |
with the options "--enable-decoder=DECODER" / | |
"--disable-decoder=DECODER". | |
The option "-decoders" of the ff* tools will display the list of | |
enabled decoders. | |
VIDEO DECODERS | |
A description of some of the currently available video decoders | |
follows. | |
av1 | |
AOMedia Video 1 (AV1) decoder. | |
Options | |
operating_point | |
Select an operating point of a scalable AV1 bitstream (0 - 31). | |
Default is 0. | |
rawvideo | |
Raw video decoder. | |
This decoder decodes rawvideo streams. | |
Options | |
top top_field_first | |
Specify the assumed field type of the input video. | |
-1 the video is assumed to be progressive (default) | |
0 bottom-field-first is assumed | |
1 top-field-first is assumed | |
libdav1d | |
dav1d AV1 decoder. | |
libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec. | |
Requires the presence of the libdav1d headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libdav1d". | |
Options | |
The following options are supported by the libdav1d wrapper. | |
framethreads | |
Set amount of frame threads to use during decoding. The default | |
value is 0 (autodetect). This option is deprecated for libdav1d >= | |
1.0 and will be removed in the future. Use the option | |
"max_frame_delay" and the global option "threads" instead. | |
tilethreads | |
Set amount of tile threads to use during decoding. The default | |
value is 0 (autodetect). This option is deprecated for libdav1d >= | |
1.0 and will be removed in the future. Use the global option | |
"threads" instead. | |
max_frame_delay | |
Set max amount of frames the decoder may buffer internally. The | |
default value is 0 (autodetect). | |
filmgrain | |
Apply film grain to the decoded video if present in the bitstream. | |
Defaults to the internal default of the library. This option is | |
deprecated and will be removed in the future. See the global option | |
"export_side_data" to export Film Grain parameters instead of | |
applying it. | |
oppoint | |
Select an operating point of a scalable AV1 bitstream (0 - 31). | |
Defaults to the internal default of the library. | |
alllayers | |
Output all spatial layers of a scalable AV1 bitstream. The default | |
value is false. | |
libdavs2 | |
AVS2-P2/IEEE1857.4 video decoder wrapper. | |
This decoder allows libavcodec to decode AVS2 streams with davs2 | |
library. | |
libuavs3d | |
AVS3-P2/IEEE1857.10 video decoder. | |
libuavs3d allows libavcodec to decode AVS3 streams. Requires the | |
presence of the libuavs3d headers and library during configuration. | |
You need to explicitly configure the build with "--enable-libuavs3d". | |
Options | |
The following option is supported by the libuavs3d wrapper. | |
frame_threads | |
Set amount of frame threads to use during decoding. The default | |
value is 0 (autodetect). | |
libxevd | |
eXtra-fast Essential Video Decoder (XEVD) MPEG-5 EVC decoder wrapper. | |
This decoder requires the presence of the libxevd headers and library | |
during configuration. You need to explicitly configure the build with | |
--enable-libxevd. | |
The xevd project website is at <https://github.com/mpeg5/xevd>. | |
Options | |
The following options are supported by the libxevd wrapper. The xevd- | |
equivalent options or values are listed in parentheses for easy | |
migration. | |
To get a more accurate and extensive documentation of the libxevd | |
options, invoke the command "xevd_app --help" or consult the libxevd | |
documentation. | |
threads (threads) | |
Force to use a specific number of threads | |
QSV Decoders | |
The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC, | |
JPEG/MJPEG, VP8, VP9, AV1). | |
Common Options | |
The following options are supported by all qsv decoders. | |
async_depth | |
Internal parallelization depth, the higher the value the higher the | |
latency. | |
gpu_copy | |
A GPU-accelerated copy between video and system memory | |
default | |
on | |
off | |
HEVC Options | |
Extra options for hevc_qsv. | |
load_plugin | |
A user plugin to load in an internal session | |
none | |
hevc_sw | |
hevc_hw | |
load_plugins | |
A :-separate list of hexadecimal plugin UIDs to load in an internal | |
session | |
v210 | |
Uncompressed 4:2:2 10-bit decoder. | |
Options | |
custom_stride | |
Set the line size of the v210 data in bytes. The default value is 0 | |
(autodetect). You can use the special -1 value for a strideless | |
v210 as seen in BOXX files. | |
AUDIO DECODERS | |
A description of some of the currently available audio decoders | |
follows. | |
ac3 | |
AC-3 audio decoder. | |
This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as | |
well as the undocumented RealAudio 3 (a.k.a. dnet). | |
AC-3 Decoder Options | |
-drc_scale value | |
Dynamic Range Scale Factor. The factor to apply to dynamic range | |
values from the AC-3 stream. This factor is applied exponentially. | |
The default value is 1. There are 3 notable scale factor ranges: | |
drc_scale == 0 | |
DRC disabled. Produces full range audio. | |
0 < drc_scale <= 1 | |
DRC enabled. Applies a fraction of the stream DRC value. | |
Audio reproduction is between full range and full compression. | |
drc_scale > 1 | |
DRC enabled. Applies drc_scale asymmetrically. Loud sounds are | |
fully compressed. Soft sounds are enhanced. | |
flac | |
FLAC audio decoder. | |
This decoder aims to implement the complete FLAC specification from | |
Xiph. | |
FLAC Decoder options | |
-use_buggy_lpc | |
The lavc FLAC encoder used to produce buggy streams with high lpc | |
values (like the default value). This option makes it possible to | |
decode such streams correctly by using lavc's old buggy lpc logic | |
for decoding. | |
ffwavesynth | |
Internal wave synthesizer. | |
This decoder generates wave patterns according to predefined sequences. | |
Its use is purely internal and the format of the data it accepts is not | |
publicly documented. | |
libcelt | |
libcelt decoder wrapper. | |
libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio | |
codec. Requires the presence of the libcelt headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libcelt". | |
libgsm | |
libgsm decoder wrapper. | |
libgsm allows libavcodec to decode the GSM full rate audio codec. | |
Requires the presence of the libgsm headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libgsm". | |
This decoder supports both the ordinary GSM and the Microsoft variant. | |
libilbc | |
libilbc decoder wrapper. | |
libilbc allows libavcodec to decode the Internet Low Bitrate Codec | |
(iLBC) audio codec. Requires the presence of the libilbc headers and | |
library during configuration. You need to explicitly configure the | |
build with "--enable-libilbc". | |
Options | |
The following option is supported by the libilbc wrapper. | |
enhance | |
Enable the enhancement of the decoded audio when set to 1. The | |
default value is 0 (disabled). | |
libopencore-amrnb | |
libopencore-amrnb decoder wrapper. | |
libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate | |
Narrowband audio codec. Using it requires the presence of the | |
libopencore-amrnb headers and library during configuration. You need to | |
explicitly configure the build with "--enable-libopencore-amrnb". | |
An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB | |
without this library. | |
libopencore-amrwb | |
libopencore-amrwb decoder wrapper. | |
libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate | |
Wideband audio codec. Using it requires the presence of the | |
libopencore-amrwb headers and library during configuration. You need to | |
explicitly configure the build with "--enable-libopencore-amrwb". | |
An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB | |
without this library. | |
libopus | |
libopus decoder wrapper. | |
libopus allows libavcodec to decode the Opus Interactive Audio Codec. | |
Requires the presence of the libopus headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libopus". | |
An FFmpeg native decoder for Opus exists, so users can decode Opus | |
without this library. | |
SUBTITLES DECODERS | |
libaribb24 | |
ARIB STD-B24 caption decoder. | |
Implements profiles A and C of the ARIB STD-B24 standard. | |
libaribb24 Decoder Options | |
-aribb24-base-path path | |
Sets the base path for the libaribb24 library. This is utilized for | |
reading of configuration files (for custom unicode conversions), | |
and for dumping of non-text symbols as images under that location. | |
Unset by default. | |
-aribb24-skip-ruby-text boolean | |
Tells the decoder wrapper to skip text blocks that contain half- | |
height ruby text. | |
Enabled by default. | |
libaribcaption | |
Yet another ARIB STD-B24 caption decoder using external libaribcaption | |
library. | |
Implements profiles A and C of the Japanse ARIB STD-B24 standard, | |
Brazilian ABNT NBR 15606-1, and Philippines version of ISDB-T. | |
Requires the presence of the libaribcaption headers and library | |
(<https://github.com/xqq/libaribcaption>) during configuration. You | |
need to explicitly configure the build with "--enable-libaribcaption". | |
If both libaribb24 and libaribcaption are enabled, libaribcaption | |
decoder precedes. | |
libaribcaption Decoder Options | |
-sub_type subtitle_type | |
Specifies the format of the decoded subtitles. | |
bitmap | |
Graphical image. | |
ass ASS formatted text. | |
text | |
Simple text based output without formatting. | |
The default is ass as same as libaribb24 decoder. Some present | |
players (e.g., mpv) expect ASS format for ARIB caption. | |
-caption_encoding encoding_scheme | |
Specifies the encoding scheme of input subtitle text. | |
auto | |
Automatically detect text encoding (default). | |
jis 8bit-char JIS encoding defined in ARIB STD B24. This encoding | |
used in Japan for ISDB captions. | |
utf8 | |
UTF-8 encoding defined in ARIB STD B24. This encoding is used | |
in Philippines for ISDB-T captions. | |
latin | |
Latin character encoding defined in ABNT NBR 15606-1. This | |
encoding is used in South America for SBTVD / ISDB-Tb captions. | |
-font font_name[,font_name2,...] | |
Specify comma-separated list of font family names to be used for | |
bitmap or ass type subtitle rendering. Only first font name is | |
used for ass type subtitle. | |
If not specified, use internaly defined default font family. | |
-ass_single_rect boolean | |
ARIB STD-B24 specifies that some captions may be displayed at | |
different positions at a time (multi-rectangle subtitle). Since | |
some players (e.g., old mpv) can't handle multiple ASS rectangles | |
in a single AVSubtitle, or multiple ASS rectangles of indeterminate | |
duration with the same start timestamp, this option can change the | |
behavior so that all the texts are displayed in a single ASS | |
rectangle. | |
The default is false. | |
If your player cannot handle AVSubtitles with multiple ASS | |
rectangles properly, set this option to true or define | |
ASS_SINGLE_RECT=1 to change default behavior at compilation. | |
-force_outline_text boolean | |
Specify whether always render outline text for all characters | |
regardless of the indication by charactor style. | |
The default is false. | |
-outline_width number (0.0 - 3.0) | |
Specify width for outline text, in dots (relative). | |
The default is 1.5. | |
-ignore_background boolean | |
Specify whether to ignore background color rendering. | |
The default is false. | |
-ignore_ruby boolean | |
Specify whether to ignore rendering for ruby-like (furigana) | |
characters. | |
The default is false. | |
-replace_drcs boolean | |
Specify whether to render replaced DRCS characters as Unicode | |
characters. | |
The default is true. | |
-replace_msz_ascii boolean | |
Specify whether to replace MSZ (Middle Size; half width) fullwidth | |
alphanumerics with halfwidth alphanumerics. | |
The default is true. | |
-replace_msz_japanese boolean | |
Specify whether to replace some MSZ (Middle Size; half width) | |
fullwidth japanese special characters with halfwidth ones. | |
The default is true. | |
-replace_msz_glyph boolean | |
Specify whether to replace MSZ (Middle Size; half width) characters | |
with halfwidth glyphs if the fonts supports it. This option works | |
under FreeType or DirectWrite renderer with Adobe-Japan1 compliant | |
fonts. e.g., IBM Plex Sans JP, Morisawa BIZ UDGothic, Morisawa BIZ | |
UDMincho, Yu Gothic, Yu Mincho, and Meiryo. | |
The default is true. | |
-canvas_size image_size | |
Specify the resolution of the canvas to render subtitles to; | |
usually, this should be frame size of input video. This only | |
applies when "-subtitle_type" is set to bitmap. | |
The libaribcaption decoder assumes input frame size for bitmap | |
rendering as below: | |
1. PROFILE_A : 1440 x 1080 with SAR (PAR) 4:3 | |
2. PROFILE_C : 320 x 180 with SAR (PAR) 1:1 | |
If actual frame size of input video does not match above | |
assumption, the rendered captions may be distorted. To make the | |
captions undistorted, add "-canvas_size" option to specify actual | |
input video size. | |
Note that the "-canvas_size" option is not required for video with | |
different size but same aspect ratio. In such cases, the caption | |
will be stretched or shrunk to actual video size if "-canvas_size" | |
option is not specified. If "-canvas_size" option is specified | |
with different size, the caption will be stretched or shrunk as | |
specified size with calculated SAR. | |
libaribcaption decoder usage examples | |
Display MPEG-TS file with ARIB subtitle by "ffplay" tool: | |
ffplay -sub_type bitmap MPEG.TS | |
Display MPEG-TS file with input frame size 1920x1080 by "ffplay" tool: | |
ffplay -sub_type bitmap -canvas_size 1920x1080 MPEG.TS | |
Embed ARIB subtitle in transcoded video: | |
ffmpeg -sub_type bitmap -i src.m2t -filter_complex "[0:v][0:s]overlay" -vcodec h264 dest.mp4 | |
dvbsub | |
Options | |
compute_clut | |
-2 Compute clut once if no matching CLUT is in the stream. | |
-1 Compute clut if no matching CLUT is in the stream. | |
0 Never compute CLUT | |
1 Always compute CLUT and override the one provided in the | |
stream. | |
dvb_substream | |
Selects the dvb substream, or all substreams if -1 which is | |
default. | |
dvdsub | |
This codec decodes the bitmap subtitles used in DVDs; the same | |
subtitles can also be found in VobSub file pairs and in some Matroska | |
files. | |
Options | |
palette | |
Specify the global palette used by the bitmaps. When stored in | |
VobSub, the palette is normally specified in the index file; in | |
Matroska, the palette is stored in the codec extra-data in the same | |
format as in VobSub. In DVDs, the palette is stored in the IFO | |
file, and therefore not available when reading from dumped VOB | |
files. | |
The format for this option is a string containing 16 24-bits | |
hexadecimal numbers (without 0x prefix) separated by commas, for | |
example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, | |
0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, | |
7c127b". | |
ifo_palette | |
Specify the IFO file from which the global palette is obtained. | |
(experimental) | |
forced_subs_only | |
Only decode subtitle entries marked as forced. Some titles have | |
forced and non-forced subtitles in the same track. Setting this | |
flag to 1 will only keep the forced subtitles. Default value is 0. | |
libzvbi-teletext | |
Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext | |
subtitles. Requires the presence of the libzvbi headers and library | |
during configuration. You need to explicitly configure the build with | |
"--enable-libzvbi". | |
Options | |
txt_page | |
List of teletext page numbers to decode. Pages that do not match | |
the specified list are dropped. You may use the special "*" string | |
to match all pages, or "subtitle" to match all subtitle pages. | |
Default value is *. | |
txt_default_region | |
Set default character set used for decoding, a value between 0 and | |
87 (see ETS 300 706, Section 15, Table 32). Default value is -1, | |
which does not override the libzvbi default. This option is needed | |
for some legacy level 1.0 transmissions which cannot signal the | |
proper charset. | |
txt_chop_top | |
Discards the top teletext line. Default value is 1. | |
txt_format | |
Specifies the format of the decoded subtitles. | |
bitmap | |
The default format, you should use this for teletext pages, | |
because certain graphics and colors cannot be expressed in | |
simple text or even ASS. | |
text | |
Simple text based output without formatting. | |
ass Formatted ASS output, subtitle pages and teletext pages are | |
returned in different styles, subtitle pages are stripped down | |
to text, but an effort is made to keep the text alignment and | |
the formatting. | |
txt_left | |
X offset of generated bitmaps, default is 0. | |
txt_top | |
Y offset of generated bitmaps, default is 0. | |
txt_chop_spaces | |
Chops leading and trailing spaces and removes empty lines from the | |
generated text. This option is useful for teletext based subtitles | |
where empty spaces may be present at the start or at the end of the | |
lines or empty lines may be present between the subtitle lines | |
because of double-sized teletext characters. Default value is 1. | |
txt_duration | |
Sets the display duration of the decoded teletext pages or | |
subtitles in milliseconds. Default value is -1 which means infinity | |
or until the next subtitle event comes. | |
txt_transparent | |
Force transparent background of the generated teletext bitmaps. | |
Default value is 0 which means an opaque background. | |
txt_opacity | |
Sets the opacity (0-255) of the teletext background. If | |
txt_transparent is not set, it only affects characters between a | |
start box and an end box, typically subtitles. Default value is 0 | |
if txt_transparent is set, 255 otherwise. | |
ENCODERS | |
Encoders are configured elements in FFmpeg which allow the encoding of | |
multimedia streams. | |
When you configure your FFmpeg build, all the supported native encoders | |
are enabled by default. Encoders requiring an external library must be | |
enabled manually via the corresponding "--enable-lib" option. You can | |
list all available encoders using the configure option | |
"--list-encoders". | |
You can disable all the encoders with the configure option | |
"--disable-encoders" and selectively enable / disable single encoders | |
with the options "--enable-encoder=ENCODER" / | |
"--disable-encoder=ENCODER". | |
The option "-encoders" of the ff* tools will display the list of | |
enabled encoders. | |
AUDIO ENCODERS | |
A description of some of the currently available audio encoders | |
follows. | |
aac | |
Advanced Audio Coding (AAC) encoder. | |
This encoder is the default AAC encoder, natively implemented into | |
FFmpeg. | |
Options | |
b Set bit rate in bits/s. Setting this automatically activates | |
constant bit rate (CBR) mode. If this option is unspecified it is | |
set to 128kbps. | |
q Set quality for variable bit rate (VBR) mode. This option is valid | |
only using the ffmpeg command-line tool. For library interface | |
users, use global_quality. | |
cutoff | |
Set cutoff frequency. If unspecified will allow the encoder to | |
dynamically adjust the cutoff to improve clarity on low bitrates. | |
aac_coder | |
Set AAC encoder coding method. Possible values: | |
twoloop | |
Two loop searching (TLS) method. This is the default method. | |
This method first sets quantizers depending on band thresholds | |
and then tries to find an optimal combination by adding or | |
subtracting a specific value from all quantizers and adjusting | |
some individual quantizer a little. Will tune itself based on | |
whether aac_is, aac_ms and aac_pns are enabled. | |
anmr | |
Average noise to mask ratio (ANMR) trellis-based solution. | |
This is an experimental coder which currently produces a lower | |
quality, is more unstable and is slower than the default | |
twoloop coder but has potential. Currently has no support for | |
the aac_is or aac_pns options. Not currently recommended. | |
fast | |
Constant quantizer method. | |
Uses a cheaper version of twoloop algorithm that doesn't try to | |
do as many clever adjustments. Worse with low bitrates (less | |
than 64kbps), but is better and much faster at higher bitrates. | |
aac_ms | |
Sets mid/side coding mode. The default value of "auto" will | |
automatically use M/S with bands which will benefit from such | |
coding. Can be forced for all bands using the value "enable", which | |
is mainly useful for debugging or disabled using "disable". | |
aac_is | |
Sets intensity stereo coding tool usage. By default, it's enabled | |
and will automatically toggle IS for similar pairs of stereo bands | |
if it's beneficial. Can be disabled for debugging by setting the | |
value to "disable". | |
aac_pns | |
Uses perceptual noise substitution to replace low entropy high | |
frequency bands with imperceptible white noise during the decoding | |
process. By default, it's enabled, but can be disabled for | |
debugging purposes by using "disable". | |
aac_tns | |
Enables the use of a multitap FIR filter which spans through the | |
high frequency bands to hide quantization noise during the encoding | |
process and is reverted by the decoder. As well as decreasing | |
unpleasant artifacts in the high range this also reduces the | |
entropy in the high bands and allows for more bits to be used by | |
the mid-low bands. By default it's enabled but can be disabled for | |
debugging by setting the option to "disable". | |
aac_ltp | |
Enables the use of the long term prediction extension which | |
increases coding efficiency in very low bandwidth situations such | |
as encoding of voice or solo piano music by extending constant | |
harmonic peaks in bands throughout frames. This option is implied | |
by profile:a aac_low and is incompatible with aac_pred. Use in | |
conjunction with -ar to decrease the samplerate. | |
aac_pred | |
Enables the use of a more traditional style of prediction where the | |
spectral coefficients transmitted are replaced by the difference of | |
the current coefficients minus the previous "predicted" | |
coefficients. In theory and sometimes in practice this can improve | |
quality for low to mid bitrate audio. This option implies the | |
aac_main profile and is incompatible with aac_ltp. | |
profile | |
Sets the encoding profile, possible values: | |
aac_low | |
The default, AAC "Low-complexity" profile. Is the most | |
compatible and produces decent quality. | |
mpeg2_aac_low | |
Equivalent to "-profile:a aac_low -aac_pns 0". PNS was | |
introduced with the MPEG4 specifications. | |
aac_ltp | |
Long term prediction profile, is enabled by and will enable the | |
aac_ltp option. Introduced in MPEG4. | |
aac_main | |
Main-type prediction profile, is enabled by and will enable the | |
aac_pred option. Introduced in MPEG2. | |
If this option is unspecified it is set to aac_low. | |
ac3 and ac3_fixed | |
AC-3 audio encoders. | |
These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as | |
well as the undocumented RealAudio 3 (a.k.a. dnet). | |
The ac3 encoder uses floating-point math, while the ac3_fixed encoder | |
only uses fixed-point integer math. This does not mean that one is | |
always faster, just that one or the other may be better suited to a | |
particular system. The ac3_fixed encoder is not the default codec for | |
any of the output formats, so it must be specified explicitly using the | |
option "-acodec ac3_fixed" in order to use it. | |
AC-3 Metadata | |
The AC-3 metadata options are used to set parameters that describe the | |
audio, but in most cases do not affect the audio encoding itself. Some | |
of the options do directly affect or influence the decoding and | |
playback of the resulting bitstream, while others are just for | |
informational purposes. A few of the options will add bits to the | |
output stream that could otherwise be used for audio data, and will | |
thus affect the quality of the output. Those will be indicated | |
accordingly with a note in the option list below. | |
These parameters are described in detail in several publicly-available | |
documents. | |
*<<http://www.atsc.org/cms/standards/a_52-2010.pdf>> | |
*<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>> | |
*<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>> | |
*<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>> | |
Metadata Control Options | |
-per_frame_metadata boolean | |
Allow Per-Frame Metadata. Specifies if the encoder should check for | |
changing metadata for each frame. | |
0 The metadata values set at initialization will be used for | |
every frame in the stream. (default) | |
1 Metadata values can be changed before encoding each frame. | |
Downmix Levels | |
-center_mixlev level | |
Center Mix Level. The amount of gain the decoder should apply to | |
the center channel when downmixing to stereo. This field will only | |
be written to the bitstream if a center channel is present. The | |
value is specified as a scale factor. There are 3 valid values: | |
0.707 | |
Apply -3dB gain | |
0.595 | |
Apply -4.5dB gain (default) | |
0.500 | |
Apply -6dB gain | |
-surround_mixlev level | |
Surround Mix Level. The amount of gain the decoder should apply to | |
the surround channel(s) when downmixing to stereo. This field will | |
only be written to the bitstream if one or more surround channels | |
are present. The value is specified as a scale factor. There are 3 | |
valid values: | |
0.707 | |
Apply -3dB gain | |
0.500 | |
Apply -6dB gain (default) | |
0.000 | |
Silence Surround Channel(s) | |
Audio Production Information | |
Audio Production Information is optional information describing the | |
mixing environment. Either none or both of the fields are written to | |
the bitstream. | |
-mixing_level number | |
Mixing Level. Specifies peak sound pressure level (SPL) in the | |
production environment when the mix was mastered. Valid values are | |
80 to 111, or -1 for unknown or not indicated. The default value is | |
-1, but that value cannot be used if the Audio Production | |
Information is written to the bitstream. Therefore, if the | |
"room_type" option is not the default value, the "mixing_level" | |
option must not be -1. | |
-room_type type | |
Room Type. Describes the equalization used during the final mixing | |
session at the studio or on the dubbing stage. A large room is a | |
dubbing stage with the industry standard X-curve equalization; a | |
small room has flat equalization. This field will not be written | |
to the bitstream if both the "mixing_level" option and the | |
"room_type" option have the default values. | |
0 | |
notindicated | |
Not Indicated (default) | |
1 | |
large | |
Large Room | |
2 | |
small | |
Small Room | |
Other Metadata Options | |
-copyright boolean | |
Copyright Indicator. Specifies whether a copyright exists for this | |
audio. | |
0 | |
off No Copyright Exists (default) | |
1 | |
on Copyright Exists | |
-dialnorm value | |
Dialogue Normalization. Indicates how far the average dialogue | |
level of the program is below digital 100% full scale (0 dBFS). | |
This parameter determines a level shift during audio reproduction | |
that sets the average volume of the dialogue to a preset level. The | |
goal is to match volume level between program sources. A value of | |
-31dB will result in no volume level change, relative to the source | |
volume, during audio reproduction. Valid values are whole numbers | |
in the range -31 to -1, with -31 being the default. | |
-dsur_mode mode | |
Dolby Surround Mode. Specifies whether the stereo signal uses Dolby | |
Surround (Pro Logic). This field will only be written to the | |
bitstream if the audio stream is stereo. Using this option does NOT | |
mean the encoder will actually apply Dolby Surround processing. | |
0 | |
notindicated | |
Not Indicated (default) | |
1 | |
off Not Dolby Surround Encoded | |
2 | |
on Dolby Surround Encoded | |
-original boolean | |
Original Bit Stream Indicator. Specifies whether this audio is from | |
the original source and not a copy. | |
0 | |
off Not Original Source | |
1 | |
on Original Source (default) | |
Extended Bitstream Information | |
The extended bitstream options are part of the Alternate Bit Stream | |
Syntax as specified in Annex D of the A/52:2010 standard. It is grouped | |
into 2 parts. If any one parameter in a group is specified, all values | |
in that group will be written to the bitstream. Default values are | |
used for those that are written but have not been specified. If the | |
mixing levels are written, the decoder will use these values instead of | |
the ones specified in the "center_mixlev" and "surround_mixlev" options | |
if it supports the Alternate Bit Stream Syntax. | |
Extended Bitstream Information - Part 1 | |
-dmix_mode mode | |
Preferred Stereo Downmix Mode. Allows the user to select either | |
Lt/Rt (Dolby Surround) or Lo/Ro (normal stereo) as the preferred | |
stereo downmix mode. | |
0 | |
notindicated | |
Not Indicated (default) | |
1 | |
ltrt | |
Lt/Rt Downmix Preferred | |
2 | |
loro | |
Lo/Ro Downmix Preferred | |
-ltrt_cmixlev level | |
Lt/Rt Center Mix Level. The amount of gain the decoder should apply | |
to the center channel when downmixing to stereo in Lt/Rt mode. | |
1.414 | |
Apply +3dB gain | |
1.189 | |
Apply +1.5dB gain | |
1.000 | |
Apply 0dB gain | |
0.841 | |
Apply -1.5dB gain | |
0.707 | |
Apply -3.0dB gain | |
0.595 | |
Apply -4.5dB gain (default) | |
0.500 | |
Apply -6.0dB gain | |
0.000 | |
Silence Center Channel | |
-ltrt_surmixlev level | |
Lt/Rt Surround Mix Level. The amount of gain the decoder should | |
apply to the surround channel(s) when downmixing to stereo in Lt/Rt | |
mode. | |
0.841 | |
Apply -1.5dB gain | |
0.707 | |
Apply -3.0dB gain | |
0.595 | |
Apply -4.5dB gain | |
0.500 | |
Apply -6.0dB gain (default) | |
0.000 | |
Silence Surround Channel(s) | |
-loro_cmixlev level | |
Lo/Ro Center Mix Level. The amount of gain the decoder should apply | |
to the center channel when downmixing to stereo in Lo/Ro mode. | |
1.414 | |
Apply +3dB gain | |
1.189 | |
Apply +1.5dB gain | |
1.000 | |
Apply 0dB gain | |
0.841 | |
Apply -1.5dB gain | |
0.707 | |
Apply -3.0dB gain | |
0.595 | |
Apply -4.5dB gain (default) | |
0.500 | |
Apply -6.0dB gain | |
0.000 | |
Silence Center Channel | |
-loro_surmixlev level | |
Lo/Ro Surround Mix Level. The amount of gain the decoder should | |
apply to the surround channel(s) when downmixing to stereo in Lo/Ro | |
mode. | |
0.841 | |
Apply -1.5dB gain | |
0.707 | |
Apply -3.0dB gain | |
0.595 | |
Apply -4.5dB gain | |
0.500 | |
Apply -6.0dB gain (default) | |
0.000 | |
Silence Surround Channel(s) | |
Extended Bitstream Information - Part 2 | |
-dsurex_mode mode | |
Dolby Surround EX Mode. Indicates whether the stream uses Dolby | |
Surround EX (7.1 matrixed to 5.1). Using this option does NOT mean | |
the encoder will actually apply Dolby Surround EX processing. | |
0 | |
notindicated | |
Not Indicated (default) | |
1 | |
on Dolby Surround EX Off | |
2 | |
off Dolby Surround EX On | |
-dheadphone_mode mode | |
Dolby Headphone Mode. Indicates whether the stream uses Dolby | |
Headphone encoding (multi-channel matrixed to 2.0 for use with | |
headphones). Using this option does NOT mean the encoder will | |
actually apply Dolby Headphone processing. | |
0 | |
notindicated | |
Not Indicated (default) | |
1 | |
on Dolby Headphone Off | |
2 | |
off Dolby Headphone On | |
-ad_conv_type type | |
A/D Converter Type. Indicates whether the audio has passed through | |
HDCD A/D conversion. | |
0 | |
standard | |
Standard A/D Converter (default) | |
1 | |
hdcd | |
HDCD A/D Converter | |
Other AC-3 Encoding Options | |
-stereo_rematrixing boolean | |
Stereo Rematrixing. Enables/Disables use of rematrixing for stereo | |
input. This is an optional AC-3 feature that increases quality by | |
selectively encoding the left/right channels as mid/side. This | |
option is enabled by default, and it is highly recommended that it | |
be left as enabled except for testing purposes. | |
cutoff frequency | |
Set lowpass cutoff frequency. If unspecified, the encoder selects a | |
default determined by various other encoding parameters. | |
Floating-Point-Only AC-3 Encoding Options | |
These options are only valid for the floating-point encoder and do not | |
exist for the fixed-point encoder due to the corresponding features not | |
being implemented in fixed-point. | |
-channel_coupling boolean | |
Enables/Disables use of channel coupling, which is an optional AC-3 | |
feature that increases quality by combining high frequency | |
information from multiple channels into a single channel. The per- | |
channel high frequency information is sent with less accuracy in | |
both the frequency and time domains. This allows more bits to be | |
used for lower frequencies while preserving enough information to | |
reconstruct the high frequencies. This option is enabled by default | |
for the floating-point encoder and should generally be left as | |
enabled except for testing purposes or to increase encoding speed. | |
-1 | |
auto | |
Selected by Encoder (default) | |
0 | |
off Disable Channel Coupling | |
1 | |
on Enable Channel Coupling | |
-cpl_start_band number | |
Coupling Start Band. Sets the channel coupling start band, from 1 | |
to 15. If a value higher than the bandwidth is used, it will be | |
reduced to 1 less than the coupling end band. If auto is used, the | |
start band will be determined by the encoder based on the bit rate, | |
sample rate, and channel layout. This option has no effect if | |
channel coupling is disabled. | |
-1 | |
auto | |
Selected by Encoder (default) | |
flac | |
FLAC (Free Lossless Audio Codec) Encoder | |
Options | |
The following options are supported by FFmpeg's flac encoder. | |
compression_level | |
Sets the compression level, which chooses defaults for many other | |
options if they are not set explicitly. Valid values are from 0 to | |
12, 5 is the default. | |
frame_size | |
Sets the size of the frames in samples per channel. | |
lpc_coeff_precision | |
Sets the LPC coefficient precision, valid values are from 1 to 15, | |
15 is the default. | |
lpc_type | |
Sets the first stage LPC algorithm | |
none | |
LPC is not used | |
fixed | |
fixed LPC coefficients | |
levinson | |
cholesky | |
lpc_passes | |
Number of passes to use for Cholesky factorization during LPC | |
analysis | |
min_partition_order | |
The minimum partition order | |
max_partition_order | |
The maximum partition order | |
prediction_order_method | |
estimation | |
2level | |
4level | |
8level | |
search | |
Bruteforce search | |
log | |
ch_mode | |
Channel mode | |
auto | |
The mode is chosen automatically for each frame | |
indep | |
Channels are independently coded | |
left_side | |
right_side | |
mid_side | |
exact_rice_parameters | |
Chooses if rice parameters are calculated exactly or approximately. | |
if set to 1 then they are chosen exactly, which slows the code down | |
slightly and improves compression slightly. | |
multi_dim_quant | |
Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC | |
algorithm is applied after the first stage to finetune the | |
coefficients. This is quite slow and slightly improves compression. | |
opus | |
Opus encoder. | |
This is a native FFmpeg encoder for the Opus format. Currently, it's in | |
development and only implements the CELT part of the codec. Its quality | |
is usually worse and at best is equal to the libopus encoder. | |
Options | |
b Set bit rate in bits/s. If unspecified it uses the number of | |
channels and the layout to make a good guess. | |
opus_delay | |
Sets the maximum delay in milliseconds. Lower delays than 20ms will | |
very quickly decrease quality. | |
libfdk_aac | |
libfdk-aac AAC (Advanced Audio Coding) encoder wrapper. | |
The libfdk-aac library is based on the Fraunhofer FDK AAC code from the | |
Android project. | |
Requires the presence of the libfdk-aac headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libfdk-aac". The library is also incompatible with GPL, so if | |
you allow the use of GPL, you should configure with "--enable-gpl | |
--enable-nonfree --enable-libfdk-aac". | |
This encoder has support for the AAC-HE profiles. | |
VBR encoding, enabled through the vbr or flags +qscale options, is | |
experimental and only works with some combinations of parameters. | |
Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3 | |
or higher. | |
For more information see the fdk-aac project at | |
<http://sourceforge.net/p/opencore-amr/fdk-aac/>. | |
Options | |
The following options are mapped on the shared FFmpeg codec options. | |
b Set bit rate in bits/s. If the bitrate is not explicitly specified, | |
it is automatically set to a suitable value depending on the | |
selected profile. | |
In case VBR mode is enabled the option is ignored. | |
ar Set audio sampling rate (in Hz). | |
channels | |
Set the number of audio channels. | |
flags +qscale | |
Enable fixed quality, VBR (Variable Bit Rate) mode. Note that VBR | |
is implicitly enabled when the vbr value is positive. | |
cutoff | |
Set cutoff frequency. If not specified (or explicitly set to 0) it | |
will use a value automatically computed by the library. Default | |
value is 0. | |
profile | |
Set audio profile. | |
The following profiles are recognized: | |
aac_low | |
Low Complexity AAC (LC) | |
aac_he | |
High Efficiency AAC (HE-AAC) | |
aac_he_v2 | |
High Efficiency AAC version 2 (HE-AACv2) | |
aac_ld | |
Low Delay AAC (LD) | |
aac_eld | |
Enhanced Low Delay AAC (ELD) | |
If not specified it is set to aac_low. | |
The following are private options of the libfdk_aac encoder. | |
afterburner | |
Enable afterburner feature if set to 1, disabled if set to 0. This | |
improves the quality but also the required processing power. | |
Default value is 1. | |
eld_sbr | |
Enable SBR (Spectral Band Replication) for ELD if set to 1, | |
disabled if set to 0. | |
Default value is 0. | |
eld_v2 | |
Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if | |
set to 1, disabled if set to 0. | |
Note that option is available when fdk-aac version | |
(AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) > | |
(4.0.0). | |
Default value is 0. | |
signaling | |
Set SBR/PS signaling style. | |
It can assume one of the following values: | |
default | |
choose signaling implicitly (explicit hierarchical by default, | |
implicit if global header is disabled) | |
implicit | |
implicit backwards compatible signaling | |
explicit_sbr | |
explicit SBR, implicit PS signaling | |
explicit_hierarchical | |
explicit hierarchical signaling | |
Default value is default. | |
latm | |
Output LATM/LOAS encapsulated data if set to 1, disabled if set to | |
0. | |
Default value is 0. | |
header_period | |
Set StreamMuxConfig and PCE repetition period (in frames) for | |
sending in-band configuration buffers within LATM/LOAS transport | |
layer. | |
Must be a 16-bits non-negative integer. | |
Default value is 0. | |
vbr Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty | |
good) and 5 is highest quality. A value of 0 will disable VBR, and | |
CBR (Constant Bit Rate) is enabled. | |
Currently only the aac_low profile supports VBR encoding. | |
VBR modes 1-5 correspond to roughly the following average bit | |
rates: | |
1 32 kbps/channel | |
2 40 kbps/channel | |
3 48-56 kbps/channel | |
4 64 kbps/channel | |
5 about 80-96 kbps/channel | |
Default value is 0. | |
frame_length | |
Set the audio frame length in samples. Default value is the | |
internal default of the library. Refer to the library's | |
documentation for information about supported values. | |
Examples | |
o Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4) | |
container: | |
ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a | |
o Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the | |
High-Efficiency AAC profile: | |
ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a | |
libmp3lame | |
LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper. | |
Requires the presence of the libmp3lame headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libmp3lame". | |
See libshine for a fixed-point MP3 encoder, although with a lower | |
quality. | |
Options | |
The following options are supported by the libmp3lame wrapper. The | |
lame-equivalent of the options are listed in parentheses. | |
b (-b) | |
Set bitrate expressed in bits/s for CBR or ABR. LAME "bitrate" is | |
expressed in kilobits/s. | |
q (-V) | |
Set constant quality setting for VBR. This option is valid only | |
using the ffmpeg command-line tool. For library interface users, | |
use global_quality. | |
compression_level (-q) | |
Set algorithm quality. Valid arguments are integers in the 0-9 | |
range, with 0 meaning highest quality but slowest, and 9 meaning | |
fastest while producing the worst quality. | |
cutoff (--lowpass) | |
Set lowpass cutoff frequency. If unspecified, the encoder | |
dynamically adjusts the cutoff. | |
reservoir | |
Enable use of bit reservoir when set to 1. Default value is 1. LAME | |
has this enabled by default, but can be overridden by use --nores | |
option. | |
joint_stereo (-m j) | |
Enable the encoder to use (on a frame by frame basis) either L/R | |
stereo or mid/side stereo. Default value is 1. | |
abr (--abr) | |
Enable the encoder to use ABR when set to 1. The lame --abr sets | |
the target bitrate, while this options only tells FFmpeg to use ABR | |
still relies on b to set bitrate. | |
copyright (-c) | |
Set MPEG audio copyright flag when set to 1. The default value is 0 | |
(disabled). | |
original (-o) | |
Set MPEG audio original flag when set to 1. The default value is 1 | |
(enabled). | |
libopencore-amrnb | |
OpenCORE Adaptive Multi-Rate Narrowband encoder. | |
Requires the presence of the libopencore-amrnb headers and library | |
during configuration. You need to explicitly configure the build with | |
"--enable-libopencore-amrnb --enable-version3". | |
This is a mono-only encoder. Officially it only supports 8000Hz sample | |
rate, but you can override it by setting strict to unofficial or lower. | |
Options | |
b Set bitrate in bits per second. Only the following bitrates are | |
supported, otherwise libavcodec will round to the nearest valid | |
bitrate. | |
4750 | |
5150 | |
5900 | |
6700 | |
7400 | |
7950 | |
10200 | |
12200 | |
dtx Allow discontinuous transmission (generate comfort noise) when set | |
to 1. The default value is 0 (disabled). | |
libopus | |
libopus Opus Interactive Audio Codec encoder wrapper. | |
Requires the presence of the libopus headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libopus". | |
Option Mapping | |
Most libopus options are modelled after the opusenc utility from opus- | |
tools. The following is an option mapping chart describing options | |
supported by the libopus wrapper, and their opusenc-equivalent in | |
parentheses. | |
b (bitrate) | |
Set the bit rate in bits/s. FFmpeg's b option is expressed in | |
bits/s, while opusenc's bitrate in kilobits/s. | |
vbr (vbr, hard-cbr, and cvbr) | |
Set VBR mode. The FFmpeg vbr option has the following valid | |
arguments, with the opusenc equivalent options in parentheses: | |
off (hard-cbr) | |
Use constant bit rate encoding. | |
on (vbr) | |
Use variable bit rate encoding (the default). | |
constrained (cvbr) | |
Use constrained variable bit rate encoding. | |
compression_level (comp) | |
Set encoding algorithm complexity. Valid options are integers in | |
the 0-10 range. 0 gives the fastest encodes but lower quality, | |
while 10 gives the highest quality but slowest encoding. The | |
default is 10. | |
frame_duration (framesize) | |
Set maximum frame size, or duration of a frame in milliseconds. The | |
argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. | |
Smaller frame sizes achieve lower latency but less quality at a | |
given bitrate. Sizes greater than 20ms are only interesting at | |
fairly low bitrates. The default is 20ms. | |
packet_loss (expect-loss) | |
Set expected packet loss percentage. The default is 0. | |
fec (n/a) | |
Enable inband forward error correction. packet_loss must be non- | |
zero to take advantage - frequency of FEC 'side-data' is | |
proportional to expected packet loss. Default is disabled. | |
application (N.A.) | |
Set intended application type. Valid options are listed below: | |
voip | |
Favor improved speech intelligibility. | |
audio | |
Favor faithfulness to the input (the default). | |
lowdelay | |
Restrict to only the lowest delay modes by disabling voice- | |
optimized modes. | |
cutoff (N.A.) | |
Set cutoff bandwidth in Hz. The argument must be exactly one of the | |
following: 4000, 6000, 8000, 12000, or 20000, corresponding to | |
narrowband, mediumband, wideband, super wideband, and fullband | |
respectively. The default is 0 (cutoff disabled). Note that libopus | |
forces a wideband cutoff for bitrates < 15 kbps, unless CELT-only | |
(application set to lowdelay) mode is used. | |
mapping_family (mapping_family) | |
Set channel mapping family to be used by the encoder. The default | |
value of -1 uses mapping family 0 for mono and stereo inputs, and | |
mapping family 1 otherwise. The default also disables the surround | |
masking and LFE bandwidth optimzations in libopus, and requires | |
that the input contains 8 channels or fewer. | |
Other values include 0 for mono and stereo, 1 for surround sound | |
with masking and LFE bandwidth optimizations, and 255 for | |
independent streams with an unspecified channel layout. | |
apply_phase_inv (N.A.) (requires libopus >= 1.2) | |
If set to 0, disables the use of phase inversion for intensity | |
stereo, improving the quality of mono downmixes, but slightly | |
reducing normal stereo quality. The default is 1 (phase inversion | |
enabled). | |
libshine | |
Shine Fixed-Point MP3 encoder wrapper. | |
Shine is a fixed-point MP3 encoder. It has a far better performance on | |
platforms without an FPU, e.g. armel CPUs, and some phones and tablets. | |
However, as it is more targeted on performance than quality, it is not | |
on par with LAME and other production-grade encoders quality-wise. | |
Also, according to the project's homepage, this encoder may not be free | |
of bugs as the code was written a long time ago and the project was | |
dead for at least 5 years. | |
This encoder only supports stereo and mono input. This is also CBR- | |
only. | |
The original project (last updated in early 2007) is at | |
<http://sourceforge.net/projects/libshine-fxp/>. We only support the | |
updated fork by the Savonet/Liquidsoap project at | |
<https://github.com/savonet/shine>. | |
Requires the presence of the libshine headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libshine". | |
See also libmp3lame. | |
Options | |
The following options are supported by the libshine wrapper. The | |
shineenc-equivalent of the options are listed in parentheses. | |
b (-b) | |
Set bitrate expressed in bits/s for CBR. shineenc -b option is | |
expressed in kilobits/s. | |
libtwolame | |
TwoLAME MP2 encoder wrapper. | |
Requires the presence of the libtwolame headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libtwolame". | |
Options | |
The following options are supported by the libtwolame wrapper. The | |
twolame-equivalent options follow the FFmpeg ones and are in | |
parentheses. | |
b (-b) | |
Set bitrate expressed in bits/s for CBR. twolame b option is | |
expressed in kilobits/s. Default value is 128k. | |
q (-V) | |
Set quality for experimental VBR support. Maximum value range is | |
from -50 to 50, useful range is from -10 to 10. The higher the | |
value, the better the quality. This option is valid only using the | |
ffmpeg command-line tool. For library interface users, use | |
global_quality. | |
mode (--mode) | |
Set the mode of the resulting audio. Possible values: | |
auto | |
Choose mode automatically based on the input. This is the | |
default. | |
stereo | |
Stereo | |
joint_stereo | |
Joint stereo | |
dual_channel | |
Dual channel | |
mono | |
Mono | |
psymodel (--psyc-mode) | |
Set psychoacoustic model to use in encoding. The argument must be | |
an integer between -1 and 4, inclusive. The higher the value, the | |
better the quality. The default value is 3. | |
energy_levels (--energy) | |
Enable energy levels extensions when set to 1. The default value is | |
0 (disabled). | |
error_protection (--protect) | |
Enable CRC error protection when set to 1. The default value is 0 | |
(disabled). | |
copyright (--copyright) | |
Set MPEG audio copyright flag when set to 1. The default value is 0 | |
(disabled). | |
original (--original) | |
Set MPEG audio original flag when set to 1. The default value is 0 | |
(disabled). | |
libvo-amrwbenc | |
VisualOn Adaptive Multi-Rate Wideband encoder. | |
Requires the presence of the libvo-amrwbenc headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libvo-amrwbenc --enable-version3". | |
This is a mono-only encoder. Officially it only supports 16000Hz sample | |
rate, but you can override it by setting strict to unofficial or lower. | |
Options | |
b Set bitrate in bits/s. Only the following bitrates are supported, | |
otherwise libavcodec will round to the nearest valid bitrate. | |
6600 | |
8850 | |
12650 | |
14250 | |
15850 | |
18250 | |
19850 | |
23050 | |
23850 | |
dtx Allow discontinuous transmission (generate comfort noise) when set | |
to 1. The default value is 0 (disabled). | |
libvorbis | |
libvorbis encoder wrapper. | |
Requires the presence of the libvorbisenc headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libvorbis". | |
Options | |
The following options are supported by the libvorbis wrapper. The | |
oggenc-equivalent of the options are listed in parentheses. | |
To get a more accurate and extensive documentation of the libvorbis | |
options, consult the libvorbisenc's and oggenc's documentations. See | |
<http://xiph.org/vorbis/>, <http://wiki.xiph.org/Vorbis-tools>, and | |
oggenc(1). | |
b (-b) | |
Set bitrate expressed in bits/s for ABR. oggenc -b is expressed in | |
kilobits/s. | |
q (-q) | |
Set constant quality setting for VBR. The value should be a float | |
number in the range of -1.0 to 10.0. The higher the value, the | |
better the quality. The default value is 3.0. | |
This option is valid only using the ffmpeg command-line tool. For | |
library interface users, use global_quality. | |
cutoff (--advanced-encode-option lowpass_frequency=N) | |
Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc's | |
related option is expressed in kHz. The default value is 0 (cutoff | |
disabled). | |
minrate (-m) | |
Set minimum bitrate expressed in bits/s. oggenc -m is expressed in | |
kilobits/s. | |
maxrate (-M) | |
Set maximum bitrate expressed in bits/s. oggenc -M is expressed in | |
kilobits/s. This only has effect on ABR mode. | |
iblock (--advanced-encode-option impulse_noisetune=N) | |
Set noise floor bias for impulse blocks. The value is a float | |
number from -15.0 to 0.0. A negative bias instructs the encoder to | |
pay special attention to the crispness of transients in the encoded | |
audio. The tradeoff for better transient response is a higher | |
bitrate. | |
mjpeg | |
Motion JPEG encoder. | |
Options | |
huffman | |
Set the huffman encoding strategy. Possible values: | |
default | |
Use the default huffman tables. This is the default strategy. | |
optimal | |
Compute and use optimal huffman tables. | |
wavpack | |
WavPack lossless audio encoder. | |
Options | |
The equivalent options for wavpack command line utility are listed in | |
parentheses. | |
Shared options | |
The following shared options are effective for this encoder. Only | |
special notes about this particular encoder will be documented here. | |
For the general meaning of the options, see the Codec Options chapter. | |
frame_size (--blocksize) | |
For this encoder, the range for this option is between 128 and | |
131072. Default is automatically decided based on sample rate and | |
number of channel. | |
For the complete formula of calculating default, see | |
libavcodec/wavpackenc.c. | |
compression_level (-f, -h, -hh, and -x) | |
Private options | |
joint_stereo (-j) | |
Set whether to enable joint stereo. Valid values are: | |
on (1) | |
Force mid/side audio encoding. | |
off (0) | |
Force left/right audio encoding. | |
auto | |
Let the encoder decide automatically. | |
optimize_mono | |
Set whether to enable optimization for mono. This option is only | |
effective for non-mono streams. Available values: | |
on enabled | |
off disabled | |
VIDEO ENCODERS | |
A description of some of the currently available video encoders | |
follows. | |
a64_multi, a64_multi5 | |
A64 / Commodore 64 multicolor charset encoder. "a64_multi5" is extended | |
with 5th color (colram). | |
Cinepak | |
Cinepak aka CVID encoder. Compatible with Windows 3.1 and vintage | |
MacOS. | |
Options | |
g integer | |
Keyframe interval. A keyframe is inserted at least every "-g" | |
frames, sometimes sooner. | |
q:v integer | |
Quality factor. Lower is better. Higher gives lower bitrate. The | |
following table lists bitrates when encoding akiyo_cif.y4m for | |
various values of "-q:v" with "-g 100": | |
"-q:v 1" 1918 kb/s | |
"-q:v 2" 1735 kb/s | |
"-q:v 4" 1500 kb/s | |
"-q:v 10" 1041 kb/s | |
"-q:v 20" 826 kb/s | |
"-q:v 40" 553 kb/s | |
"-q:v 100" 394 kb/s | |
"-q:v 200" 312 kb/s | |
"-q:v 400" 266 kb/s | |
"-q:v 1000" 237 kb/s | |
max_extra_cb_iterations integer | |
Max extra codebook recalculation passes, more is better and slower. | |
skip_empty_cb boolean | |
Avoid wasting bytes, ignore vintage MacOS decoder. | |
max_strips integer | |
min_strips integer | |
The minimum and maximum number of strips to use. Wider range | |
sometimes improves quality. More strips is generally better | |
quality but costs more bits. Fewer strips tend to yield more | |
keyframes. Vintage compatible is 1..3. | |
strip_number_adaptivity integer | |
How much number of strips is allowed to change between frames. | |
Higher is better but slower. | |
GIF | |
GIF image/animation encoder. | |
Options | |
gifflags integer | |
Sets the flags used for GIF encoding. | |
offsetting | |
Enables picture offsetting. | |
Default is enabled. | |
transdiff | |
Enables transparency detection between frames. | |
Default is enabled. | |
gifimage integer | |
Enables encoding one full GIF image per frame, rather than an | |
animated GIF. | |
Default value is 0. | |
global_palette integer | |
Writes a palette to the global GIF header where feasible. | |
If disabled, every frame will always have a palette written, even | |
if there is a global palette supplied. | |
Default value is 1. | |
Hap | |
Vidvox Hap video encoder. | |
Options | |
format integer | |
Specifies the Hap format to encode. | |
hap | |
hap_alpha | |
hap_q | |
Default value is hap. | |
chunks integer | |
Specifies the number of chunks to split frames into, between 1 and | |
64. This permits multithreaded decoding of large frames, | |
potentially at the cost of data-rate. The encoder may modify this | |
value to divide frames evenly. | |
Default value is 1. | |
compressor integer | |
Specifies the second-stage compressor to use. If set to none, | |
chunks will be limited to 1, as chunked uncompressed frames offer | |
no benefit. | |
none | |
snappy | |
Default value is snappy. | |
jpeg2000 | |
The native jpeg 2000 encoder is lossy by default, the "-q:v" option can | |
be used to set the encoding quality. Lossless encoding can be selected | |
with "-pred 1". | |
Options | |
format integer | |
Can be set to either "j2k" or "jp2" (the default) that makes it | |
possible to store non-rgb pix_fmts. | |
tile_width integer | |
Sets tile width. Range is 1 to 1073741824. Default is 256. | |
tile_height integer | |
Sets tile height. Range is 1 to 1073741824. Default is 256. | |
pred integer | |
Allows setting the discrete wavelet transform (DWT) type | |
dwt97int (Lossy) | |
dwt53 (Lossless) | |
Default is "dwt97int" | |
sop boolean | |
Enable this to add SOP marker at the start of each packet. Disabled | |
by default. | |
eph boolean | |
Enable this to add EPH marker at the end of each packet header. | |
Disabled by default. | |
prog integer | |
Sets the progression order to be used by the encoder. Possible | |
values are: | |
lrcp | |
rlcp | |
rpcl | |
pcrl | |
cprl | |
Set to "lrcp" by default. | |
layer_rates string | |
By default, when this option is not used, compression is done using | |
the quality metric. This option allows for compression using | |
compression ratio. The compression ratio for each level could be | |
specified. The compression ratio of a layer "l" species the what | |
ratio of total file size is contained in the first "l" layers. | |
Example usage: | |
ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k | |
This would compress the image to contain 3 layers, where the data | |
contained in the first layer would be compressed by 1000 times, | |
compressed by 100 in the first two layers, and shall contain all | |
data while using all 3 layers. | |
librav1e | |
rav1e AV1 encoder wrapper. | |
Requires the presence of the rav1e headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-librav1e". | |
Options | |
qmax | |
Sets the maximum quantizer to use when using bitrate mode. | |
qmin | |
Sets the minimum quantizer to use when using bitrate mode. | |
qp Uses quantizer mode to encode at the given quantizer (0-255). | |
speed | |
Selects the speed preset (0-10) to encode with. | |
tiles | |
Selects how many tiles to encode with. | |
tile-rows | |
Selects how many rows of tiles to encode with. | |
tile-columns | |
Selects how many columns of tiles to encode with. | |
rav1e-params | |
Set rav1e options using a list of key=value pairs separated by ":". | |
See rav1e --help for a list of options. | |
For example to specify librav1e encoding options with | |
-rav1e-params: | |
ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4 | |
libaom-av1 | |
libaom AV1 encoder wrapper. | |
Requires the presence of the libaom headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libaom". | |
Options | |
The wrapper supports the following standard libavcodec options: | |
b Set bitrate target in bits/second. By default this will use | |
variable-bitrate mode. If maxrate and minrate are also set to the | |
same value then it will use constant-bitrate mode, otherwise if crf | |
is set as well then it will use constrained-quality mode. | |
g keyint_min | |
Set key frame placement. The GOP size sets the maximum distance | |
between key frames; if zero the output stream will be intra-only. | |
The minimum distance is ignored unless it is the same as the GOP | |
size, in which case key frames will always appear at a fixed | |
interval. Not set by default, so without this option the library | |
has completely free choice about where to place key frames. | |
qmin qmax | |
Set minimum/maximum quantisation values. Valid range is from 0 to | |
63 (warning: this does not match the quantiser values actually used | |
by AV1 - divide by four to map real quantiser values to this | |
range). Defaults to min/max (no constraint). | |
minrate maxrate bufsize rc_init_occupancy | |
Set rate control buffering parameters. Not used if not set - | |
defaults to unconstrained variable bitrate. | |
threads | |
Set the number of threads to use while encoding. This may require | |
the tiles or row-mt options to also be set to actually use the | |
specified number of threads fully. Defaults to the number of | |
hardware threads supported by the host machine. | |
profile | |
Set the encoding profile. Defaults to using the profile which | |
matches the bit depth and chroma subsampling of the input. | |
The wrapper also has some specific options: | |
cpu-used | |
Set the quality/encoding speed tradeoff. Valid range is from 0 to | |
8, higher numbers indicating greater speed and lower quality. The | |
default value is 1, which will be slow and high quality. | |
auto-alt-ref | |
Enable use of alternate reference frames. Defaults to the internal | |
default of the library. | |
arnr-max-frames (frames) | |
Set altref noise reduction max frame count. Default is -1. | |
arnr-strength (strength) | |
Set altref noise reduction filter strength. Range is -1 to 6. | |
Default is -1. | |
aq-mode (aq-mode) | |
Set adaptive quantization mode. Possible values: | |
none (0) | |
Disabled. | |
variance (1) | |
Variance-based. | |
complexity (2) | |
Complexity-based. | |
cyclic (3) | |
Cyclic refresh. | |
tune (tune) | |
Set the distortion metric the encoder is tuned with. Default is | |
"psnr". | |
psnr (0) | |
ssim (1) | |
lag-in-frames | |
Set the maximum number of frames which the encoder may keep in | |
flight at any one time for lookahead purposes. Defaults to the | |
internal default of the library. | |
error-resilience | |
Enable error resilience features: | |
default | |
Improve resilience against losses of whole frames. | |
Not enabled by default. | |
crf Set the quality/size tradeoff for constant-quality (no bitrate | |
target) and constrained-quality (with maximum bitrate target) | |
modes. Valid range is 0 to 63, higher numbers indicating lower | |
quality and smaller output size. Only used if set; by default only | |
the bitrate target is used. | |
static-thresh | |
Set a change threshold on blocks below which they will be skipped | |
by the encoder. Defined in arbitrary units as a nonnegative | |
integer, defaulting to zero (no blocks are skipped). | |
drop-threshold | |
Set a threshold for dropping frames when close to rate control | |
bounds. Defined as a percentage of the target buffer - when the | |
rate control buffer falls below this percentage, frames will be | |
dropped until it has refilled above the threshold. Defaults to | |
zero (no frames are dropped). | |
denoise-noise-level (level) | |
Amount of noise to be removed for grain synthesis. Grain synthesis | |
is disabled if this option is not set or set to 0. | |
denoise-block-size (pixels) | |
Block size used for denoising for grain synthesis. If not set, AV1 | |
codec uses the default value of 32. | |
undershoot-pct (pct) | |
Set datarate undershoot (min) percentage of the target bitrate. | |
Range is -1 to 100. Default is -1. | |
overshoot-pct (pct) | |
Set datarate overshoot (max) percentage of the target bitrate. | |
Range is -1 to 1000. Default is -1. | |
minsection-pct (pct) | |
Minimum percentage variation of the GOP bitrate from the target | |
bitrate. If minsection-pct is not set, the libaomenc wrapper | |
computes it as follows: "(minrate * 100 / bitrate)". Range is -1 | |
to 100. Default is -1 (unset). | |
maxsection-pct (pct) | |
Maximum percentage variation of the GOP bitrate from the target | |
bitrate. If maxsection-pct is not set, the libaomenc wrapper | |
computes it as follows: "(maxrate * 100 / bitrate)". Range is -1 | |
to 5000. Default is -1 (unset). | |
frame-parallel (boolean) | |
Enable frame parallel decodability features. Default is true. | |
tiles | |
Set the number of tiles to encode the input video with, as columns | |
x rows. Larger numbers allow greater parallelism in both encoding | |
and decoding, but may decrease coding efficiency. Defaults to the | |
minimum number of tiles required by the size of the input video | |
(this is 1x1 (that is, a single tile) for sizes up to and including | |
4K). | |
tile-columns tile-rows | |
Set the number of tiles as log2 of the number of tile rows and | |
columns. Provided for compatibility with libvpx/VP9. | |
row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2) | |
Enable row based multi-threading. Disabled by default. | |
enable-cdef (boolean) | |
Enable Constrained Directional Enhancement Filter. The libaom-av1 | |
encoder enables CDEF by default. | |
enable-restoration (boolean) | |
Enable Loop Restoration Filter. Default is true for libaom-av1. | |
enable-global-motion (boolean) | |
Enable the use of global motion for block prediction. Default is | |
true. | |
enable-intrabc (boolean) | |
Enable block copy mode for intra block prediction. This mode is | |
useful for screen content. Default is true. | |
enable-rect-partitions (boolean) (Requires libaom >= v2.0.0) | |
Enable rectangular partitions. Default is true. | |
enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0) | |
Enable 1:4/4:1 partitions. Default is true. | |
enable-ab-partitions (boolean) (Requires libaom >= v2.0.0) | |
Enable AB shape partitions. Default is true. | |
enable-angle-delta (boolean) (Requires libaom >= v2.0.0) | |
Enable angle delta intra prediction. Default is true. | |
enable-cfl-intra (boolean) (Requires libaom >= v2.0.0) | |
Enable chroma predicted from luma intra prediction. Default is | |
true. | |
enable-filter-intra (boolean) (Requires libaom >= v2.0.0) | |
Enable filter intra predictor. Default is true. | |
enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0) | |
Enable intra edge filter. Default is true. | |
enable-smooth-intra (boolean) (Requires libaom >= v2.0.0) | |
Enable smooth intra prediction mode. Default is true. | |
enable-paeth-intra (boolean) (Requires libaom >= v2.0.0) | |
Enable paeth predictor in intra prediction. Default is true. | |
enable-palette (boolean) (Requires libaom >= v2.0.0) | |
Enable palette prediction mode. Default is true. | |
enable-flip-idtx (boolean) (Requires libaom >= v2.0.0) | |
Enable extended transform type, including FLIPADST_DCT, | |
DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST, | |
IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. Default | |
is true. | |
enable-tx64 (boolean) (Requires libaom >= v2.0.0) | |
Enable 64-pt transform. Default is true. | |
reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0) | |
Use reduced set of transform types. Default is false. | |
use-intra-dct-only (boolean) (Requires libaom >= v2.0.0) | |
Use DCT only for INTRA modes. Default is false. | |
use-inter-dct-only (boolean) (Requires libaom >= v2.0.0) | |
Use DCT only for INTER modes. Default is false. | |
use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0) | |
Use Default-transform only for INTRA modes. Default is false. | |
enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0) | |
Enable temporal mv prediction. Default is true. | |
enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0) | |
Use reduced set of single and compound references. Default is | |
false. | |
enable-obmc (boolean) (Requires libaom >= v2.0.0) | |
Enable obmc. Default is true. | |
enable-dual-filter (boolean) (Requires libaom >= v2.0.0) | |
Enable dual filter. Default is true. | |
enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0) | |
Enable difference-weighted compound. Default is true. | |
enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0) | |
Enable distance-weighted compound. Default is true. | |
enable-onesided-comp (boolean) (Requires libaom >= v2.0.0) | |
Enable one sided compound. Default is true. | |
enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0) | |
Enable interinter wedge compound. Default is true. | |
enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0) | |
Enable interintra wedge compound. Default is true. | |
enable-masked-comp (boolean) (Requires libaom >= v2.0.0) | |
Enable masked compound. Default is true. | |
enable-interintra-comp (boolean) (Requires libaom >= v2.0.0) | |
Enable interintra compound. Default is true. | |
enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0) | |
Enable smooth interintra mode. Default is true. | |
aom-params | |
Set libaom options using a list of key=value pairs separated by | |
":". For a list of supported options, see aomenc --help under the | |
section "AV1 Specific Options". | |
For example to specify libaom encoding options with -aom-params: | |
ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4 | |
libsvtav1 | |
SVT-AV1 encoder wrapper. | |
Requires the presence of the SVT-AV1 headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libsvtav1". | |
Options | |
profile | |
Set the encoding profile. | |
main | |
high | |
professional | |
level | |
Set the operating point level. For example: '4.0' | |
hielevel | |
Set the Hierarchical prediction levels. | |
3level | |
4level | |
This is the default. | |
tier | |
Set the operating point tier. | |
main | |
This is the default. | |
high | |
qmax | |
Set the maximum quantizer to use when using a bitrate mode. | |
qmin | |
Set the minimum quantizer to use when using a bitrate mode. | |
crf Constant rate factor value used in crf rate control mode (0-63). | |
qp Set the quantizer used in cqp rate control mode (0-63). | |
sc_detection | |
Enable scene change detection. | |
la_depth | |
Set number of frames to look ahead (0-120). | |
preset | |
Set the quality-speed tradeoff, in the range 0 to 13. Higher | |
values are faster but lower quality. | |
tile_rows | |
Set log2 of the number of rows of tiles to use (0-6). | |
tile_columns | |
Set log2 of the number of columns of tiles to use (0-4). | |
svtav1-params | |
Set SVT-AV1 options using a list of key=value pairs separated by | |
":". See the SVT-AV1 encoder user guide for a list of accepted | |
parameters. | |
libjxl | |
libjxl JPEG XL encoder wrapper. | |
Requires the presence of the libjxl headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libjxl". | |
Options | |
The libjxl wrapper supports the following options: | |
distance | |
Set the target Butteraugli distance. This is a quality setting: | |
lower distance yields higher quality, with distance=1.0 roughly | |
comparable to libjpeg Quality 90 for photographic content. Setting | |
distance=0.0 yields true lossless encoding. Valid values range | |
between 0.0 and 15.0, and sane values rarely exceed 5.0. Setting | |
distance=0.1 usually attains transparency for most input. The | |
default is 1.0. | |
effort | |
Set the encoding effort used. Higher effort values produce more | |
consistent quality and usually produces a better quality/bpp curve, | |
at the cost of more CPU time required. Valid values range from 1 to | |
9, and the default is 7. | |
modular | |
Force the encoder to use Modular mode instead of choosing | |
automatically. The default is to use VarDCT for lossy encoding and | |
Modular for lossless. VarDCT is generally superior to Modular for | |
lossy encoding but does not support lossless encoding. | |
libkvazaar | |
Kvazaar H.265/HEVC encoder. | |
Requires the presence of the libkvazaar headers and library during | |
configuration. You need to explicitly configure the build with | |
--enable-libkvazaar. | |
Options | |
b Set target video bitrate in bit/s and enable rate control. | |
kvazaar-params | |
Set kvazaar parameters as a list of name=value pairs separated by | |
commas (,). See kvazaar documentation for a list of options. | |
libopenh264 | |
Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper. | |
This encoder requires the presence of the libopenh264 headers and | |
library during configuration. You need to explicitly configure the | |
build with "--enable-libopenh264". The library is detected using pkg- | |
config. | |
For more information about the library see <http://www.openh264.org>. | |
Options | |
The following FFmpeg global options affect the configurations of the | |
libopenh264 encoder. | |
b Set the bitrate (as a number of bits per second). | |
g Set the GOP size. | |
maxrate | |
Set the max bitrate (as a number of bits per second). | |
flags +global_header | |
Set global header in the bitstream. | |
slices | |
Set the number of slices, used in parallelized encoding. Default | |
value is 0. This is only used when slice_mode is set to fixed. | |
loopfilter | |
Enable loop filter, if set to 1 (automatically enabled). To disable | |
set a value of 0. | |
profile | |
Set profile restrictions. If set to the value of main enable CABAC | |
(set the "SEncParamExt.iEntropyCodingModeFlag" flag to 1). | |
max_nal_size | |
Set maximum NAL size in bytes. | |
allow_skip_frames | |
Allow skipping frames to hit the target bitrate if set to 1. | |
libtheora | |
libtheora Theora encoder wrapper. | |
Requires the presence of the libtheora headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libtheora". | |
For more information about the libtheora project see | |
<http://www.theora.org/>. | |
Options | |
The following global options are mapped to internal libtheora options | |
which affect the quality and the bitrate of the encoded stream. | |
b Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode. | |
In case VBR (Variable Bit Rate) mode is enabled this option is | |
ignored. | |
flags | |
Used to enable constant quality mode (VBR) encoding through the | |
qscale flag, and to enable the "pass1" and "pass2" modes. | |
g Set the GOP size. | |
global_quality | |
Set the global quality as an integer in lambda units. | |
Only relevant when VBR mode is enabled with "flags +qscale". The | |
value is converted to QP units by dividing it by "FF_QP2LAMBDA", | |
clipped in the [0 - 10] range, and then multiplied by 6.3 to get a | |
value in the native libtheora range [0-63]. A higher value | |
corresponds to a higher quality. | |
q Enable VBR mode when set to a non-negative value, and set constant | |
quality value as a double floating point value in QP units. | |
The value is clipped in the [0-10] range, and then multiplied by | |
6.3 to get a value in the native libtheora range [0-63]. | |
This option is valid only using the ffmpeg command-line tool. For | |
library interface users, use global_quality. | |
Examples | |
o Set maximum constant quality (VBR) encoding with ffmpeg: | |
ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg | |
o Use ffmpeg to convert a CBR 1000 kbps Theora video stream: | |
ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg | |
libvpx | |
VP8/VP9 format supported through libvpx. | |
Requires the presence of the libvpx headers and library during | |
configuration. You need to explicitly configure the build with | |
"--enable-libvpx". | |
Options | |
The following options are supported by the libvpx wrapper. The | |
vpxenc-equivalent options or values are listed in parentheses for easy | |
migration. | |
To reduce the duplication of documentation, only the private options | |
and some others requiring special attention are documented here. For | |
the documentation of the undocumented generic options, see the Codec | |
Options chapter. | |
To get more documentation of the libvpx options, invoke the command | |
ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 or vpxenc | |
--help. Further information is available in the libvpx API | |
documentation. | |
b (target-bitrate) | |
Set bitrate in bits/s. Note that FFmpeg's b option is expressed in | |
bits/s, while vpxenc's target-bitrate is in kilobits/s. | |
g (kf-max-dist) | |
keyint_min (kf-min-dist) | |
qmin (min-q) | |
Minimum (Best Quality) Quantizer. | |
qmax (max-q) | |
Maximum (Worst Quality) Quantizer. Can be changed per-frame. | |
bufsize (buf-sz, buf-optimal-sz) | |
Set ratecontrol buffer size (in bits). Note vpxenc's options are | |
specified in milliseconds, the libvpx wrapper converts this value | |
as follows: "buf-sz = bufsize * 1000 / bitrate", "buf-optimal-sz = | |
bufsize * 1000 / bitrate * 5 / 6". | |
rc_init_occupancy (buf-initial-sz) | |
Set number of bits which should be loaded into the rc buffer before | |
decoding starts. Note vpxenc's option is specified in milliseconds, | |
the libvpx wrapper converts this value as follows: | |
"rc_init_occupancy * 1000 / bitrate". | |
undershoot-pct | |
Set datarate undershoot (min) percentage of the target bitrate. | |
overshoot-pct | |
Set datarate overshoot (max) percentage of the target bitrate. | |
skip_threshold (drop-frame) | |
qcomp (bias-pct) | |
maxrate (maxsection-pct) | |
Set GOP max bitrate in bits/s. Note vpxenc's option is specified as | |
a percentage of the target bitrate, the libvpx wrapper converts | |
this value as follows: "(maxrate * 100 / bitrate)". | |
minrate (minsection-pct) | |
Set GOP min bitrate in bits/s. Note vpxenc's option is specified as | |
a percentage of the target bitrate, the libvpx wrapper converts | |
this value as follows: "(minrate * 100 / bitrate)". | |
minrate, maxrate, b end-usage=cbr | |
"(minrate == maxrate == bitrate)". | |
crf (end-usage=cq, cq-level) | |
tune (tune) | |
psnr (psnr) | |
ssim (ssim) | |
quality, deadline (deadline) | |
best | |
Use best quality deadline. Poorly named and quite slow, this | |
option should be avoided as it may give worse quality output | |
than good. | |
good | |
Use good quality deadline. This is a good trade-off between | |
speed and quality when used with the cpu-used option. | |
realtime | |
Use realtime quality deadline. | |
speed, cpu-used (cpu-used) | |
Set quality/speed ratio modifier. Higher values speed up the encode | |
at the cost of quality. | |
nr (noise-sensitivity) | |
static-thresh | |
Set a change threshold on blocks below which they will be skipped | |
by the encoder. | |
slices (token-parts) | |
Note that FFmpeg's slices option gives the total number of | |
partitions, while vpxenc's token-parts is given as | |
"log2(partitions)". | |
max-intra-rate | |
Set maximum I-frame bitrate as a percentage of the target bitrate. | |
A value of 0 means unlimited. | |
force_key_frames | |
"VPX_EFLAG_FORCE_KF" | |
Alternate reference frame related | |
auto-alt-ref | |
Enable use of alternate reference frames (2-pass only). Values | |
greater than 1 enable multi-layer alternate reference frames | |
(VP9 only). | |
arnr-maxframes | |
Set altref noise reduction max frame count. | |
arnr-type | |
Set altref noise reduction filter type: backward, forward, | |
centered. | |
arnr-strength | |
Set altref noise reduction filter strength. | |
rc-lookahead, lag-in-frames (lag-in-frames) | |
Set number of frames to look ahead for frametype and | |
ratecontrol. | |
min-gf-interval | |
Set minimum golden/alternate reference frame interval (VP9 | |
only). | |
error-resilient | |
Enable error resiliency features. | |
sharpness integer | |
Increase sharpness at the expense of lower PSNR. The valid range | |
is [0, 7]. | |
ts-parameters | |
Sets the temporal scalability configuration using a :-separated | |
list of key=value pairs. For example, to specify temporal | |
scalability parameters with "ffmpeg": | |
ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\ | |
ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\ | |
ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT | |
Below is a brief explanation of each of the parameters, please | |
refer to "struct vpx_codec_enc_cfg" in "vpx/vpx_encoder.h" for more | |
details. | |
ts_number_layers | |
Number of temporal coding layers. | |
ts_target_bitrate | |
Target bitrate for each temporal layer (in kbps). (bitrate | |
should be inclusive of the lower temporal layer). | |
ts_rate_decimator | |
Frame rate decimation factor for each temporal layer. | |
ts_periodicity | |
Length of the sequence defining frame temporal layer | |
membership. | |
ts_layer_id | |
Template defining the membership of frames to temporal layers. | |
ts_layering_mode | |
(optional) Selecting the temporal structure from a set of pre- | |
defined temporal layering modes. Currently supports the | |
following options. | |
0 No temporal layering flags are provided internally, relies | |
on flags being passed in using "metadata" field in | |
"AVFrame" with following keys. | |
vp8-flags | |
Sets the flags passed into the encoder to indicate the | |
referencing scheme for the current frame. Refer to | |
function "vpx_codec_encode" in "vpx/vpx_encoder.h" for | |
more details. | |
temporal_id | |
Explicitly sets the temporal id of the current frame to | |
encode. | |
2 Two temporal layers. 0-1... | |
3 Three temporal layers. 0-2-1-2...; with single reference | |
frame. | |
4 Same as option "3", except there is a dependency between | |
the two temporal layer 2 frames within the temporal period. | |
VP8-specific options | |
screen-content-mode | |
Screen content mode, one of: 0 (off), 1 (screen), 2 (screen | |
with more aggressive rate control). | |
VP9-specific options | |
lossless | |
Enable lossless mode. | |
tile-columns | |
Set number of tile columns to use. Note this is given as | |
"log2(tile_columns)". For example, 8 tile columns would be | |
requested by setting the tile-columns option to 3. | |
tile-rows | |
Set number of tile rows to use. Note this is given as | |
"log2(tile_rows)". For example, 4 tile rows would be requested | |
by setting the tile-rows option to 2. | |
frame-parallel | |
Enable frame parallel decodability features. | |
aq-mode | |
Set adaptive quantization mode (0: off (default), 1: variance | |
2: complexity, 3: cyclic refresh, 4: equator360). | |
colorspace color-space | |
Set input color space. The VP9 bitstream supports signaling the | |
following colorspaces: | |
rgb sRGB | |
bt709 bt709 | |
unspecified unknown | |
bt470bg bt601 | |
smpte170m smpte170 | |
smpte240m smpte240 | |
bt2020_ncl bt2020 | |
row-mt boolean | |
Enable row based multi-threading. | |
tune-content | |
Set content type: default (0), screen (1), film (2). | |
corpus-complexity | |
Corpus VBR mode is a variant of standard VBR where the | |
complexity distribution midpoint is passed in rather than | |
calculated for a specific clip or chunk. | |
The valid range is [0, 10000]. 0 (default) uses standard VBR. | |
enable-tpl boolean | |
Enable temporal dependency model. | |
ref-frame-config | |
Using per-frame metadata, set members of the structure | |
"vpx_svc_ref_frame_config_t" in "vpx/vp8cx.h" to fine-control | |
referencing schemes and frame buffer management. Use a | |
:-separated list of key=value pairs. For example, | |
av_dict_set(&av_frame->metadata, "ref-frame-config", \ | |
"rfc_update_buffer_slot=7:rfc_lst_fb_idx=0:rfc_gld_fb_idx=1:rfc_alt_fb_idx=2:rfc_reference_last=0:rfc_reference_golden=0:rfc_reference_alt_ref=0"); | |
rfc_update_buffer_slot | |
Indicates the buffer slot number to update | |
rfc_update_last | |
Indicates whether to update the LAST frame | |
rfc_update_golden | |
Indicates whether to update GOLDEN frame | |
rfc_update_alt_ref | |
Indicates whether to update ALT_REF frame | |
rfc_lst_fb_idx | |
LAST frame buffer index | |
rfc_gld_fb_idx | |
GOLDEN frame buffer index | |
rfc_alt_fb_idx | |
ALT_REF frame buffer index | |
rfc_reference_last | |
Indicates whether to reference LAST frame | |
rfc_reference_golden | |
Indicates whether to reference GOLDEN frame | |
rfc_reference_alt_ref | |
Indicates whether to reference ALT_REF frame | |
rfc_reference_duration | |
Indicates frame duration | |
For more information about libvpx see: <http://www.webmproject.org/> | |
libwebp | |
libwebp WebP Image encoder wrapper | |
libwebp is Google's official encoder for WebP images. It can encode in | |
either lossy or lossless mode. Lossy images are essentially a wrapper | |
around a VP8 frame. Lossless images are a separate codec developed by | |
Google. | |
Pixel Format | |
Currently, libwebp only supports YUV420 for lossy and RGB for lossless | |
due to limitations of the format and libwebp. Alpha is supported for | |
either mode. Because of API limitations, if RGB is passed in when | |
encoding lossy or YUV is passed in for encoding lossless, the pixel | |
format will automatically be converted using functions from libwebp. | |
This is not ideal and is done only for convenience. | |
Options | |
-lossless boolean | |
Enables/Disables use of lossless mode. Default is 0. | |
-compression_level integer | |
For lossy, this is a quality/speed tradeoff. Higher values give | |
better quality for a given size at the cost of increased encoding | |
time. For lossless, this is a size/speed tradeoff. Higher values | |
give smaller size at the cost of increased encoding time. More | |
specifically, it controls the number of extra algorithms and | |
compression tools used, and varies the combination of these tools. | |
This maps to the method option in libwebp. The valid range is 0 to | |
6. Default is 4. | |
-quality float | |
For lossy encoding, this controls image quality. For lossless | |
encoding, this controls the effort and time spent in compression. | |
Range is 0 to 100. Default is 75. | |
-preset type | |
Configuration preset. This does some automatic settings based on | |
the general type of the image. | |
none | |
Do not use a preset. | |
default | |
Use the encoder default. | |
picture | |
Digital picture, like portrait, inner shot | |
photo | |
Outdoor photograph, with natural lighting | |
drawing | |
Hand or line drawing, with high-contrast details | |
icon | |
Small-sized colorful images | |
text | |
Text-like | |
libx264, libx264rgb | |
x264 H.264/MPEG-4 AVC encoder wrapper. | |
This encoder requires the presence of the libx264 headers and library | |
during configuration. You need to explicitly configure the build with | |
"--enable-libx264". | |
libx264 supports an impressive number of features, including 8x8 and | |
4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC | |
entropy coding, interlacing (MBAFF), lossless mode, psy optimizations | |
for detail retention (adaptive quantization, psy-RD, psy-trellis). | |
Many libx264 encoder options are mapped to FFmpeg global codec options, | |
while unique encoder options are provided through private options. | |
Additionally the x264opts and x264-params private options allows one to | |
pass a list of key=value tuples as accepted by the libx264 | |
"x264_param_parse" function. | |
The x264 project website is at | |
<http://www.videolan.org/developers/x264.html>. | |
The libx264rgb encoder is the same as libx264, except it accepts packed | |
RGB pixel formats as input instead of YUV. | |
Supported Pixel Formats | |
x264 supports 8- to 10-bit color spaces. The exact bit depth is | |
controlled at x264's configure time. | |
Options | |
The following options are supported by the libx264 wrapper. The | |
x264-equivalent options or values are listed in parentheses for easy | |
migration. | |
To reduce the duplication of documentation, only the private options | |
and some others requiring special attention are documented here. For | |
the documentation of the undocumented generic options, see the Codec | |
Options chapter. | |
To get a more accurate and extensive documentation of the libx264 | |
options, invoke the command x264 --fullhelp or consult the libx264 | |
documentation. | |
In the list below, note that the x264 option name is shown in | |
parentheses after the libavcodec corresponding name, in case there is a | |
direct mapping. | |
b (bitrate) | |
Set bitrate in bits/s. Note that FFmpeg's b option is expressed in | |
bits/s, while x264's bitrate is in kilobits/s. | |
bf (bframes) | |
Number of B-frames between I and P-frames | |
g (keyint) | |
Maximum GOP size | |
qmin (qpmin) | |
Minimum quantizer scale | |
qmax (qpmax) | |
Maximum quantizer scale | |
qdiff (qpstep) | |
Maximum difference between quantizer scales | |
qblur (qblur) | |
Quantizer curve blur | |
qcomp (qcomp) | |
Quantizer curve compression factor | |
refs (ref) | |
Number of reference frames each P-frame can use. The range is 0-16. | |
level (level) | |
Set the "x264_param_t.i_level_idc" value in case the value is | |
positive, it is ignored otherwise. | |
This value can be set using the "AVCodecContext" API (e.g. by | |
setting the "AVCodecContext" value directly), and is specified as | |
an integer mapped on a corresponding level (e.g. the value 31 maps | |
to H.264 level IDC "3.1", as defined in the "x264_levels" table). | |
It is ignored when set to a non positive value. | |
Alternatively it can be set as a private option, overriding the | |
value set in "AVCodecContext", and in this case must be specified | |
as the level IDC identifier (e.g. "3.1"), as defined by H.264 Annex | |
A. | |
sc_threshold (scenecut) | |
Sets the threshold for the scene change detection. | |
trellis (trellis) | |
Performs Trellis quantization to increase efficiency. Enabled by | |
default. | |
nr (nr) | |
Noise reduction | |
me_range (merange) | |
Maximum range of the motion search in pixels. | |
me_method (me) | |
Set motion estimation method. Possible values in the decreasing | |
order of speed: | |
dia (dia) | |
epzs (dia) | |
Diamond search with radius 1 (fastest). epzs is an alias for | |
dia. | |
hex (hex) | |
Hexagonal search with radius 2. | |
umh (umh) | |
Uneven multi-hexagon search. | |
esa (esa) | |
Exhaustive search. | |
tesa (tesa) | |
Hadamard exhaustive search (slowest). | |
forced-idr | |
Normally, when forcing a I-frame type, the encoder can select any | |
type of I-frame. This option forces it to choose an IDR-frame. | |
subq (subme) | |
Sub-pixel motion estimation method. | |
b_strategy (b-adapt) | |
Adaptive B-frame placement decision algorithm. Use only on first- | |
pass. | |
keyint_min (min-keyint) | |
Minimum GOP size. | |
coder | |
Set entropy encoder. Possible values: | |
ac Enable CABAC. | |
vlc Enable CAVLC and disable CABAC. It generates the same effect as | |
x264's --no-cabac option. | |
cmp Set full pixel motion estimation comparison algorithm. Possible | |
values: | |
chroma | |
Enable chroma in motion estimation. | |
sad Ignore chroma in motion estimation. It generates the same | |
effect as x264's --no-chroma-me option. | |
threads (threads) | |
Number of encoding threads. | |
thread_type | |
Set multithreading technique. Possible values: | |
slice | |
Slice-based multithreading. It generates the same effect as | |
x264's --sliced-threads option. | |
frame | |
Frame-based multithreading. | |
flags | |
Set encoding flags. It can be used to disable closed GOP and enable | |
open GOP by setting it to "-cgop". The result is similar to the | |
behavior of x264's --open-gop option. | |
rc_init_occupancy (vbv-init) | |
Initial VBV buffer occupancy | |
preset (preset) | |
Set the encoding preset. | |
tune (tune) | |
Set tuning of the encoding params. | |
profile (profile) | |
Set profile restrictions. | |
fastfirstpass | |
Enable fast settings when encoding first pass, when set to 1. When | |
set to 0, it has the same effect of x264's --slow-firstpass option. | |
crf (crf) | |
Set the quality for constant quality mode. | |
crf_max (crf-max) | |
In CRF mode, prevents VBV from lowering quality beyond this point. | |
qp (qp) | |
Set constant quantization rate control method parameter. | |
aq-mode (aq-mode) | |
Set AQ method. Possible values: | |
none (0) | |
Disabled. | |
variance (1) | |
Variance AQ (complexity mask). | |
autovariance (2) | |
Auto-variance AQ (experimental). | |
aq-strength (aq-strength) | |
Set AQ strength, reduce blocking and blurring in flat and textured | |
areas. | |
psy Use psychovisual optimizations when set to 1. When set to 0, it has | |
the same effect as x264's --no-psy option. | |
psy-rd (psy-rd) | |
Set strength of psychovisual optimization, in psy-rd:psy-trellis | |
format. | |
rc-lookahead (rc-lookahead) | |
Set number of frames to look ahead for frametype and ratecontrol. | |
weightb | |
Enable weighted prediction for B-frames when set to 1. When set to | |
0, it has the same effect as x264's --no-weightb option. | |
weightp (weightp) | |
Set weighted prediction method for P-frames. Possible values: | |
none (0) | |
Disabled | |
simple (1) | |
Enable only weighted refs | |
smart (2) | |
Enable both weighted refs and duplicates | |
ssim (ssim) | |
Enable calculation and printing SSIM stats after the encoding. | |
intra-refresh (intra-refresh) | |
Enable the use of Periodic Intra Refresh instead of IDR frames when | |
set to 1. | |
avcintra-class (class) | |
Configure the encoder to generate AVC-Intra. Valid values are 50, | |
100 and 200 | |
bluray-compat (bluray-compat) | |
Configure the encoder to be compatible with the bluray standard. | |
It is a shorthand for setting "bluray-compat=1 force-cfr=1". | |
b-bias (b-bias) | |
Set the influence on how often B-frames are used. | |
b-pyramid (b-pyramid) | |
Set method for keeping of some B-frames as references. Possible | |
values: | |
none (none) | |
Disabled. | |
strict (strict) | |
Strictly hierarchical pyramid. | |
normal (normal) | |
Non-strict (not Blu-ray compatible). | |
mixed-refs | |
Enable the use of one reference per partition, as opposed to one | |
reference per macroblock when set to 1. When set to 0, it has the | |
same effect as x264's --no-mixed-refs option. | |
8x8dct | |
Enable adaptive spatial transform (high profile 8x8 transform) when | |
set to 1. When set to 0, it has the same effect as x264's | |
--no-8x8dct option. | |
fast-pskip | |
Enable early SKIP detection on P-frames when set to 1. When set to | |
0, it has the same effect as x264's --no-fast-pskip option. | |
aud (aud) | |
Enable use of access unit delimiters when set to 1. | |
mbtree | |
Enable use macroblock tree ratecontrol when set to 1. When set to | |
0, it has the same effect as x264's --no-mbtree option. | |
deblock (deblock) | |
Set loop filter parameters, in alpha:beta form. | |
cplxblur (cplxblur) | |
Set fluctuations reduction in QP (before curve compression). | |
partitions (partitions) | |
Set partitions to consider as a comma-separated list of values. | |
Possible values in the list: | |
p8x8 | |
8x8 P-frame partition. | |
p4x4 | |
4x4 P-frame partition. | |
b8x8 | |
4x4 B-frame partition. | |
i8x8 | |
8x8 I-frame partition. | |
i4x4 | |
4x4 I-frame partition. (Enabling p4x4 requires p8x8 to be | |
enabled. Enabling i8x8 requires adaptive spatial transform | |
(8x8dct option) to be enabled.) | |
none (none) | |
Do not consider any partitions. | |
all (all) | |
Consider every partition. | |
direct-pred (direct) | |
Set direct MV prediction mode. Possible values: | |
none (none) | |
Disable MV prediction. | |
spatial (spatial) | |
Enable spatial predicting. | |
temporal (temporal) | |
Enable temporal predicting. | |
auto (auto) | |
Automatically decided. | |
slice-max-size (slice-max-size) | |
Set the limit of the size of each slice in bytes. If not specified | |
but RTP payload size (ps) is specified, that is used. | |
stats (stats) | |
Set the file name for multi-pass stats. | |
nal-hrd (nal-hrd) | |
Set signal HRD information (requires vbv-bufsize to be set). | |
Possible values: | |
none (none) | |
Disable HRD information signaling. | |
vbr (vbr) | |
Variable bit rate. | |
cbr (cbr) | |
Constant bit rate (not allowed in MP4 container). | |
x264opts opts | |
x264-params opts | |
Override the x264 configuration using a :-separated list of | |
key=value options. | |
The argument for both options is a list of key=value couples | |
separated by ":". With x264opts the value can be omitted, and the | |
value 1 is assumed in that case. | |
For filter and psy-rd options values that use ":" as a separator | |
themselves, use "," instead. They accept it as well since long ago | |
but this is kept undocumented for some reason. | |
For example, the options might be provided as: | |
level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 | |
For example to specify libx264 encoding options with ffmpeg: | |
ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv | |
To get the complete list of the libx264 options, invoke the command | |
x264 --fullhelp or consult the libx264 documentation. | |
a53cc boolean | |
Import closed captions (which must be ATSC compatible format) into | |
output. Only the mpeg2 and h264 decoders provide these. Default is | |
1 (on). | |
udu_sei boolean | |
Import user data unregistered SEI if available into output. Default | |
is 0 (off). | |
mb_info boolean | |
Set mb_info data through AVFrameSideData, only useful when used | |
from the API. Default is 0 (off). | |
Encoding ffpresets for common usages are provided so they can be used | |
with the general presets system (e.g. passing the pre option). | |
libx265 | |
x265 H.265/HEVC encoder wrapper. | |
This encoder requires the presence of the libx265 headers and library | |
during configuration. You need to explicitly configure the build with | |
--enable-libx265. | |
Options | |
b Sets target video bitrate. | |
bf | |
g Set the GOP size. | |
keyint_min | |
Minimum GOP size. | |
refs | |
Number of reference frames each P-frame can use. The range is from | |
1-16. | |
preset | |
Set the x265 preset. | |
tune | |
Set the x265 tune parameter. | |
profile | |
Set profile restrictions. | |
crf Set the quality for constant quality mode. | |
qp Set constant quantization rate control method parameter. | |
qmin | |
Minimum quantizer scale. | |
qmax | |
Maximum quantizer scale. | |
qdiff | |
Maximum difference between quantizer scales. | |
qblur | |
Quantizer curve blur | |
qcomp | |
Quantizer curve compression factor | |
i_qfactor | |
b_qfactor | |
forced-idr | |
Normally, when forcing a I-frame type, the encoder can select any | |
type of I-frame. This option forces it to choose an IDR-frame. | |
udu_sei boolean | |
Import user data unregistered SEI if available into output. Default | |
is 0 (off). | |
x265-params | |
Set x265 options using a list of key=value couples separated by | |
":". See x265 --help for a list of options. | |
For example to specify libx265 encoding options with -x265-params: | |
ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4 | |
libxavs2 | |
xavs2 AVS2-P2/IEEE1857.4 encoder wrapper. | |
This encoder requires the presence of the libxavs2 headers and library | |
during configuration. You need to explicitly configure the build with | |
--enable-libxavs2. | |
The following standard libavcodec options are used: | |
o b / bit_rate | |
o g / gop_size | |
o bf / max_b_frames | |
The encoder also has its own specific options: | |
Options | |
lcu_row_threads | |
Set the number of parallel threads for rows from 1 to 8 (default | |
5). | |
initial_qp | |
Set the xavs2 quantization parameter from 1 to 63 (default 34). | |
This is used to set the initial qp for the first frame. | |
qp Set the xavs2 quantization parameter from 1 to 63 (default 34). | |
This is used to set the qp value under constant-QP mode. | |
max_qp | |
Set the max qp for rate control from 1 to 63 (default 55). | |
min_qp | |
Set the min qp for rate control from 1 to 63 (default 20). | |
speed_level | |
Set the Speed level from 0 to 9 (default 0). Higher is better but | |
slower. | |
log_level | |
Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1: | |
warning, 2: info, 3: debug. | |
xavs2-params | |
Set xavs2 options using a list of key=value couples separated by | |
":". | |
For example to specify libxavs2 encoding options with | |
-xavs2-params: | |
ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2 | |
libxeve | |
eXtra-fast Essential Video Encoder (XEVE) MPEG-5 EVC encoder wrapper. | |
The xeve-equivalent options or values are listed in parentheses for | |
easy migration. | |
This encoder requires the presence of the libxeve headers and library | |
during configuration. You need to explicitly configure the build with | |
--enable-libxeve. | |
Many libxeve encoder options are mapped to FFmpeg global codec | |
options, while unique encoder options are provided through private | |
options. Additionally the xeve-params private options allows one | |
to pass a list of key=value tuples as accepted by the libxeve | |
"parse_xeve_params" function. | |
The xeve project website is at <https://github.com/mpeg5/xeve>. | |
Options | |
The following options are supported by the libxeve wrapper. The xeve- | |
equivalent options or values are listed in parentheses for easy | |
migration. | |
To reduce the duplication of documentation, only the private | |
options and some others requiring special attention are documented | |
here. For the documentation of the undocumented generic options, | |
see the Codec Options chapter. | |
To get a more accurate and extensive documentation of the libxeve | |
options, invoke the command "xeve_app --help" or consult the | |
libxeve documentation. | |
b (bitrate) | |
Set target video bitrate in bits/s. Note that FFmpeg's b option is | |
expressed in bits/s, while xeve's bitrate is in kilobits/s. | |
bf (bframes) | |
Set the maximum number of B frames (1,3,7,15). | |
g (keyint) | |
Set the GOP size (I-picture period). | |
preset (preset) | |
Set the xeve preset. Set the encoder preset value to determine | |
encoding speed [fast, medium, slow, placebo] | |
tune (tune) | |
Set the encoder tune parameter [psnr, zerolatency] | |
profile (profile) | |
Set the encoder profile [0: baseline; 1: main] | |
crf (crf) | |
Set the quality for constant quality mode. Constant rate factor | |
<10..49> [default: 32] | |
qp (qp) | |
Set constant quantization rate control method parameter. | |
Quantization parameter qp <0..51> [default: 32] | |
threads (threads) | |
Force to use a specific number of threads | |
libxvid | |
Xvid MPEG-4 Part 2 encoder wrapper. | |
This encoder requires the presence of the libxvidcore headers and | |
library during configuration. You need to explicitly configure the | |
build with "--enable-libxvid --enable-gpl". | |
The native "mpeg4" encoder supports the MPEG-4 Part 2 format, so users | |
can encode to this format without this library. | |
Options | |
The following options are supported by the libxvid wrapper. Some of the | |
following options are listed but are not documented, and correspond to | |
shared codec options. See the Codec Options chapter for their | |
documentation. The other shared options which are not listed have no | |
effect for the libxvid encoder. | |
b | |
g | |
qmin | |
qmax | |
mpeg_quant | |
threads | |
bf | |
b_qfactor | |
b_qoffset | |
flags | |
Set specific encoding flags. Possible values: | |
mv4 Use four motion vector by macroblock. | |
aic Enable high quality AC prediction. | |
gray | |
Only encode grayscale. | |
qpel | |
Enable quarter-pixel motion compensation. | |
cgop | |
Enable closed GOP. | |
global_header | |
Place global headers in extradata instead of every keyframe. | |
gmc Enable the use of global motion compensation (GMC). Default is 0 | |
(disabled). | |
me_quality | |
Set motion estimation quality level. Possible values in decreasing | |
order of speed and increasing order of quality: | |
0 Use no motion estimation (default). | |
1, 2 | |
Enable advanced diamond zonal search for 16x16 blocks and half- | |
pixel refinement for 16x16 blocks. | |
3, 4 | |
Enable all of the things described above, plus advanced diamond | |
zonal search for 8x8 blocks and half-pixel refinement for 8x8 | |
blocks, also enable motion estimation on chroma planes for P | |
and B-frames. | |
5, 6 | |
Enable all of the things described above, plus extended 16x16 | |
and 8x8 blocks search. | |
mbd Set macroblock decision algorithm. Possible values in the | |
increasing order of quality: | |
simple | |
Use macroblock comparing function algorithm (default). | |
bits | |
Enable rate distortion-based half pixel and quarter pixel | |
refinement for 16x16 blocks. | |
rd Enable all of the things described above, plus rate distortion- | |
based half pixel and quarter pixel refinement for 8x8 blocks, | |
and rate distortion-based search using square pattern. | |
lumi_aq | |
Enable lumi masking adaptive quantization when set to 1. Default is | |
0 (disabled). | |
variance_aq | |
Enable variance adaptive quantization when set to 1. Default is 0 | |
(disabled). | |
When combined with lumi_aq, the resulting quality will not be | |
better than any of the two specified individually. In other words, | |
the resulting quality will be the worse one of the two effects. | |
trellis | |
Set rate-distortion optimal quantization. | |
ssim | |
Set structural similarity (SSIM) displaying method. Possible | |
values: | |
off Disable displaying of SSIM information. | |
avg Output average SSIM at the end of encoding to stdout. The | |
format of showing the average SSIM is: | |
Average SSIM: %f | |
For users who are not familiar with C, %f means a float number, | |
or a decimal (e.g. 0.939232). | |
frame | |
Output both per-frame SSIM data during encoding and average | |
SSIM at the end of encoding to stdout. The format of per-frame | |
information is: | |
SSIM: avg: %1.3f min: %1.3f max: %1.3f | |
For users who are not familiar with C, %1.3f means a float | |
number rounded to 3 digits after the dot (e.g. 0.932). | |
ssim_acc | |
Set SSIM accuracy. Valid options are integers within the range of | |
0-4, while 0 gives the most accurate result and 4 computes the | |
fastest. | |
MediaFoundation | |
This provides wrappers to encoders (both audio and video) in the | |
MediaFoundation framework. It can access both SW and HW encoders. | |
Video encoders can take input in either of nv12 or yuv420p form (some | |
encoders support both, some support only either - in practice, nv12 is | |
the safer choice, especially among HW encoders). | |
Microsoft RLE | |
Microsoft RLE aka MSRLE encoder. Only 8-bit palette mode supported. | |
Compatible with Windows 3.1 and Windows 95. | |
Options | |
g integer | |
Keyframe interval. A keyframe is inserted at least every "-g" | |
frames, sometimes sooner. | |
mpeg2 | |
MPEG-2 video encoder. | |
Options | |
profile | |
Select the mpeg2 profile to encode: | |
422 | |
high | |
ss Spatially Scalable | |
snr SNR Scalable | |
main | |
simple | |
level | |
Select the mpeg2 level to encode: | |
high | |
high1440 | |
main | |
low | |
seq_disp_ext integer | |
Specifies if the encoder should write a sequence_display_extension | |
to the output. | |
-1 | |
auto | |
Decide automatically to write it or not (this is the default) | |
by checking if the data to be written is different from the | |
default or unspecified values. | |
0 | |
never | |
Never write it. | |
1 | |
always | |
Always write it. | |
video_format integer | |
Specifies the video_format written into the sequence display | |
extension indicating the source of the video pictures. The default | |
is unspecified, can be component, pal, ntsc, secam or mac. For | |
maximum compatibility, use component. | |
a53cc boolean | |
Import closed captions (which must be ATSC compatible format) into | |
output. Default is 1 (on). | |
png | |
PNG image encoder. | |
Private options | |
dpi integer | |
Set physical density of pixels, in dots per inch, unset by default | |
dpm integer | |
Set physical density of pixels, in dots per meter, unset by default | |
ProRes | |
Apple ProRes encoder. | |
FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder. | |
The used encoder can be chosen with the "-vcodec" option. | |
Private Options for prores-ks | |
profile integer | |
Select the ProRes profile to encode | |
proxy | |
lt | |
standard | |
hq | |
4444 | |
4444xq | |
quant_mat integer | |
Select quantization matrix. | |
auto | |
default | |
proxy | |
lt | |
standard | |
hq | |
If set to auto, the matrix matching the profile will be picked. If | |
not set, the matrix providing the highest quality, default, will be | |
picked. | |
bits_per_mb integer | |
How many bits to allot for coding one macroblock. Different | |
profiles use between 200 and 2400 bits per macroblock, the maximum | |
is 8000. | |
mbs_per_slice integer | |
Number of macroblocks in each slice (1-8); the default value (8) | |
should be good in almost all situations. | |
vendor string | |
Override the 4-byte vendor ID. A custom vendor ID like apl0 would | |
claim the stream was produced by the Apple encoder. | |
alpha_bits integer | |
Specify number of bits for alpha component. Possible values are 0, | |
8 and 16. Use 0 to disable alpha plane coding. | |
Speed considerations | |
In the default mode of operation the encoder has to honor frame | |
constraints (i.e. not produce frames with size bigger than requested) | |
while still making output picture as good as possible. A frame | |
containing a lot of small details is harder to compress and the encoder | |
would spend more time searching for appropriate quantizers for each | |
slice. | |
Setting a higher bits_per_mb limit will improve the speed. | |
For the fastest encoding speed set the qscale parameter (4 is the | |
recommended value) and do not set a size constraint. | |
QSV Encoders | |
The family of Intel QuickSync Video encoders (MPEG-2, H.264, HEVC, | |
JPEG/MJPEG, VP9, AV1) | |
Ratecontrol Method | |
The ratecontrol method is selected as follows: | |
o When global_quality is specified, a quality-based mode is used. | |
Specifically this means either | |
- CQP - constant quantizer scale, when the qscale codec flag is | |
also set (the -qscale ffmpeg option). | |
- LA_ICQ - intelligent constant quality with lookahead, when the | |
look_ahead option is also set. | |
- ICQ -- intelligent constant quality otherwise. For the ICQ | |
modes, global quality range is 1 to 51, with 1 being the best | |
quality. | |
o Otherwise when the desired average bitrate is specified with the b | |
option, a bitrate-based mode is used. | |
- LA - VBR with lookahead, when the look_ahead option is | |
specified. | |
- VCM - video conferencing mode, when the vcm option is set. | |
- CBR - constant bitrate, when maxrate is specified and equal to | |
the average bitrate. | |
- VBR - variable bitrate, when maxrate is specified, but is | |
higher than the average bitrate. | |
- AVBR - average VBR mode, when maxrate is not specified, both | |
avbr_accuracy and avbr_convergence are set to non-zero. This | |
mode is available for H264 and HEVC on Windows. | |
o Otherwise the default ratecontrol method CQP is used. | |
Note that depending on your system, a different mode than the one you | |
specified may be selected by the encoder. Set the verbosity level to | |
verbose or higher to see the actual settings used by the QSV runtime. | |
Global Options -> MSDK Options | |
Additional libavcodec global options are mapped to MSDK options as | |
follows: | |
o g/gop_size -> GopPicSize | |
o bf/max_b_frames+1 -> GopRefDist | |
o rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB | |
o slices -> NumSlice | |
o refs -> NumRefFrame | |
o b_strategy/b_frame_strategy -> BRefType | |
o cgop/CLOSED_GOP codec flag -> GopOptFlag | |
o For the CQP mode, the i_qfactor/i_qoffset and b_qfactor/b_qoffset | |
set the difference between QPP and QPI, and QPP and QPB | |
respectively. | |
o Setting the coder option to the value vlc will make the H.264 | |
encoder use CAVLC instead of CABAC. | |
Common Options | |
Following options are used by all qsv encoders. | |
async_depth | |
Specifies how many asynchronous operations an application performs | |
before the application explicitly synchronizes the result. If zero, | |
the value is not specified. | |
preset | |
This option itemizes a range of choices from veryfast (best speed) | |
to veryslow (best quality). | |
veryfast | |
faster | |
fast | |
medium | |
slow | |
slower | |
veryslow | |
forced_idr | |
Forcing I frames as IDR frames. | |
low_power | |
For encoders set this flag to ON to reduce power consumption and | |
GPU usage. | |
Runtime Options | |
Following options can be used durning qsv encoding. | |
global_quality | |
i_quant_factor | |
i_quant_offset | |
b_quant_factor | |
b_quant_offset | |
Supported in h264_qsv and hevc_qsv. Change these value to reset | |
qsv codec's qp configuration. | |
max_frame_size | |
Supported in h264_qsv and hevc_qsv. Change this value to reset qsv | |
codec's MaxFrameSize configuration. | |
gop_size | |
Change this value to reset qsv codec's gop configuration. | |
int_ref_type | |
int_ref_cycle_size | |
int_ref_qp_delta | |
int_ref_cycle_dist | |
Supported in h264_qsv and hevc_qsv. Change these value to reset | |
qsv codec's Intra Refresh configuration. | |
qmax | |
qmin | |
max_qp_i | |
min_qp_i | |
max_qp_p | |
min_qp_p | |
max_qp_b | |
min_qp_b | |
Supported in h264_qsv. Change these value to reset qsv codec's | |
max/min qp configuration. | |
low_delay_brc | |
Supported in h264_qsv, hevc_qsv and av1_qsv. Change this value to | |
reset qsv codec's low_delay_brc configuration. | |
framerate | |
Change this value to reset qsv codec's framerate configuration. | |
bit_rate | |
rc_buffer_size | |
rc_initial_buffer_occupancy | |
rc_max_rate | |
Change these value to reset qsv codec's bitrate control | |
configuration. | |
pic_timing_sei | |
Supported in h264_qsv and hevc_qsv. Change this value to reset qsv | |
codec's pic_timing_sei configuration. | |
H264 options | |
These options are used by h264_qsv | |
extbrc | |
Extended bitrate control. | |
recovery_point_sei | |
Set this flag to insert the recovery point SEI message at the | |
beginning of every intra refresh cycle. | |
rdo Enable rate distortion optimization. | |
max_frame_size | |
Maximum encoded frame size in bytes. | |
max_frame_size_i | |
Maximum encoded frame size for I frames in bytes. If this value is | |
set as larger than zero, then for I frames the value set by | |
max_frame_size is ignored. | |
max_frame_size_p | |
Maximum encoded frame size for P frames in bytes. If this value is | |
set as larger than zero, then for P frames the value set by | |
max_frame_size is ignored. | |
max_slice_size | |
Maximum encoded slice size in bytes. | |
bitrate_limit | |
Toggle bitrate limitations. Modifies bitrate to be in the range | |
imposed by the QSV encoder. Setting this flag off may lead to | |
violation of HRD conformance. Mind that specifying bitrate below | |
the QSV encoder range might significantly affect quality. If on | |
this option takes effect in non CQP modes: if bitrate is not in the | |
range imposed by the QSV encoder, it will be changed to be in the | |
range. | |
mbbrc | |
Setting this flag enables macroblock level bitrate control that | |
generally improves subjective visual quality. Enabling this flag | |
may have negative impact on performance and objective visual | |
quality metric. | |
low_delay_brc | |
Setting this flag turns on or off LowDelayBRC feautre in qsv | |
plugin, which provides more accurate bitrate control to minimize | |
the variance of bitstream size frame by frame. Value: -1-default | |
0-off 1-on | |
adaptive_i | |
This flag controls insertion of I frames by the QSV encoder. Turn | |
ON this flag to allow changing of frame type from P and B to I. | |
adaptive_b | |
This flag controls changing of frame type from B to P. | |
p_strategy | |
Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to | |
0). | |
b_strategy | |
This option controls usage of B frames as reference. | |
dblk_idc | |
This option disable deblocking. It has value in range 0~2. | |
cavlc | |
If set, CAVLC is used; if unset, CABAC is used for encoding. | |
vcm Video conferencing mode, please see ratecontrol method. | |
idr_interval | |
Distance (in I-frames) between IDR frames. | |
pic_timing_sei | |
Insert picture timing SEI with pic_struct_syntax element. | |
single_sei_nal_unit | |
Put all the SEI messages into one NALU. | |
max_dec_frame_buffering | |
Maximum number of frames buffered in the DPB. | |
look_ahead | |
Use VBR algorithm with look ahead. | |
look_ahead_depth | |
Depth of look ahead in number frames. | |
look_ahead_downsampling | |
Downscaling factor for the frames saved for the lookahead analysis. | |
unknown | |
auto | |
off | |
2x | |
4x | |
int_ref_type | |
Specifies intra refresh type. The major goal of intra refresh is | |
improvement of error resilience without significant impact on | |
encoded bitstream size caused by I frames. The SDK encoder achieves | |
this by encoding part of each frame in refresh cycle using intra | |
MBs. none means no refresh. vertical means vertical refresh, by | |
column of MBs. horizontal means horizontal refresh, by rows of MBs. | |
slice means horizontal refresh by slices without overlapping. In | |
case of slice, in_ref_cycle_size is ignored. To enable intra | |
refresh, B frame should be set to 0. | |
int_ref_cycle_size | |
Specifies number of pictures within refresh cycle starting from 2. | |
0 and 1 are invalid values. | |
int_ref_qp_delta | |
Specifies QP difference for inserted intra MBs. This is signed | |
value in [-51, 51] range if target encoding bit-depth for luma | |
samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75, | |
75] for 12 bit-depth respectively. | |
int_ref_cycle_dist | |
Distance between the beginnings of the intra-refresh cycles in | |
frames. | |
profile | |
unknown | |
baseline | |
main | |
high | |
a53cc | |
Use A53 Closed Captions (if available). | |
aud Insert the Access Unit Delimiter NAL. | |
mfmode | |
Multi-Frame Mode. | |
off | |
auto | |
repeat_pps | |
Repeat pps for every frame. | |
max_qp_i | |
Maximum video quantizer scale for I frame. | |
min_qp_i | |
Minimum video quantizer scale for I frame. | |
max_qp_p | |
Maximum video quantizer scale for P frame. | |
min_qp_p | |
Minimum video quantizer scale for P frame. | |
max_qp_b | |
Maximum video quantizer scale for B frame. | |
min_qp_b | |
Minimum video quantizer scale for B frame. | |
scenario | |
Provides a hint to encoder about the scenario for the encoding | |
session. | |
unknown | |
displayremoting | |
videoconference | |
archive | |
livestreaming | |
cameracapture | |
videosurveillance | |
gamestreaming | |
remotegaming | |
avbr_accuracy | |
Accuracy of the AVBR ratecontrol (unit of tenth of percent). | |
avbr_convergence | |
Convergence of the AVBR ratecontrol (unit of 100 frames) | |
The parameters avbr_accuracy and avbr_convergence are for the | |
average variable bitrate control (AVBR) algorithm. The algorithm | |
focuses on overall encoding quality while meeting the specified | |
bitrate, target_bitrate, within the accuracy range avbr_accuracy, | |
after a avbr_Convergence period. This method does not follow HRD | |
and the instant bitrate is not capped or padded. | |
skip_frame | |
Use per-frame metadata "qsv_skip_frame" to skip frame when | |
encoding. This option defines the usage of this metadata. | |
no_skip | |
Frame skipping is disabled. | |
insert_dummy | |
Encoder inserts into bitstream frame where all macroblocks are | |
encoded as skipped. | |
insert_nothing | |
Similar to insert_dummy, but encoder inserts nothing into | |
bitstream. The skipped frames are still used in brc. For | |
example, gop still include skipped frames, and the frames after | |
skipped frames will be larger in size. | |
brc_only | |
skip_frame metadata indicates the number of missed frames | |
before the current frame. | |
HEVC Options | |
These options are used by hevc_qsv | |
extbrc | |
Extended bitrate control. | |
recovery_point_sei | |
Set this flag to insert the recovery point SEI message at the | |
beginning of every intra refresh cycle. | |
rdo Enable rate distortion optimization. | |
max_frame_size | |
Maximum encoded frame size in bytes. | |
max_frame_size_i | |
Maximum encoded frame size for I frames in bytes. If this value is | |
set as larger than zero, then for I frames the value set by | |
max_frame_size is ignored. | |
max_frame_size_p | |
Maximum encoded frame size for P frames in bytes. If this value is | |
set as larger than zero, then for P frames the value set by | |
max_frame_size is ignored. | |
max_slice_size | |
Maximum encoded slice size in bytes. | |
mbbrc | |
Setting this flag enables macroblock level bitrate control that | |
generally improves subjective visual quality. Enabling this flag | |
may have negative impact on performance and objective visual | |
quality metric. | |
low_delay_brc | |
Setting this flag turns on or off LowDelayBRC feautre in qsv | |
plugin, which provides more accurate bitrate control to minimize | |
the variance of bitstream size frame by frame. Value: -1-default | |
0-off 1-on | |
adaptive_i | |
This flag controls insertion of I frames by the QSV encoder. Turn | |
ON this flag to allow changing of frame type from P and B to I. | |
adaptive_b | |
This flag controls changing of frame type from B to P. | |
p_strategy | |
Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to | |
0). | |
b_strategy | |
This option controls usage of B frames as reference. | |
dblk_idc | |
This option disable deblocking. It has value in range 0~2. | |
idr_interval | |
Distance (in I-frames) between IDR frames. | |
begin_only | |
Output an IDR-frame only at the beginning of the stream. | |
load_plugin | |
A user plugin to load in an internal session. | |
none | |
hevc_sw | |
hevc_hw | |
load_plugins | |
A :-separate list of hexadecimal plugin UIDs to load in an internal | |
session. | |
look_ahead_depth | |
Depth of look ahead in number frames, available when extbrc option | |
is enabled. | |
profile | |
Set the encoding profile (scc requires libmfx >= 1.32). | |
unknown | |
main | |
main10 | |
mainsp | |
rext | |
scc | |
tier | |
Set the encoding tier (only level >= 4 can support high tier). | |
This option only takes effect when the level option is specified. | |
main | |
high | |
gpb 1: GPB (generalized P/B frame) | |
0: regular P frame. | |
tile_cols | |
Number of columns for tiled encoding. | |
tile_rows | |
Number of rows for tiled encoding. | |
aud Insert the Access Unit Delimiter NAL. | |
pic_timing_sei | |
Insert picture timing SEI with pic_struct_syntax element. | |
transform_skip | |
Turn this option ON to enable transformskip. It is supported on | |
platform equal or newer than ICL. | |
int_ref_type | |
Specifies intra refresh type. The major goal of intra refresh is | |
improvement of error resilience without significant impact on | |
encoded bitstream size caused by I frames. The SDK encoder achieves | |
this by encoding part of each frame in refresh cycle using intra | |
MBs. none means no refresh. vertical means vertical refresh, by | |
column of MBs. horizontal means horizontal refresh, by rows of MBs. | |
slice means horizontal refresh by slices without overlapping. In | |
case of slice, in_ref_cycle_size is ignored. To enable intra | |
refresh, B frame should be set to 0. | |
int_ref_cycle_size | |
Specifies number of pictures within refresh cycle starting from 2. | |
0 and 1 are invalid values. | |
int_ref_qp_delta | |
Specifies QP difference for inserted intra MBs. This is signed | |
value in [-51, 51] range if target encoding bit-depth for luma | |
samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75, | |
75] for 12 bit-depth respectively. | |
int_ref_cycle_dist | |
Distance between the beginnings of the intra-refresh cycles in | |
frames. | |
max_qp_i | |
Maximum video quantizer scale for I frame. | |
min_qp_i | |
Minimum video quantizer scale for I frame. | |
max_qp_p | |
Maximum video quantizer scale for P frame. | |
min_qp_p | |
Minimum video quantizer scale for P frame. | |
max_qp_b | |
Maximum video quantizer scale for B frame. | |
min_qp_b | |
Minimum video quantizer scale for B frame. | |
scenario | |
Provides a hint to encoder about the scenario for the encoding | |
session. | |
unknown | |
displayremoting | |
videoconference | |
archive | |
livestreaming | |
cameracapture | |
videosurveillance | |
gamestreaming | |
remotegaming | |
avbr_accuracy | |
Accuracy of the AVBR ratecontrol (unit of tenth of percent). | |
avbr_convergence | |
Convergence of the AVBR ratecontrol (unit of 100 frames) | |
The parameters avbr_accuracy and avbr_convergence are for the | |
average variable bitrate control (AVBR) algorithm. The algorithm | |
focuses on overall encoding quality while meeting the specified | |
bitrate, target_bitrate, within the accuracy range avbr_accuracy, | |
after a avbr_Convergence period. This method does not follow HRD | |
and the instant bitrate is not capped or padded. | |
skip_frame | |
Use per-frame metadata "qsv_skip_frame" to skip frame when | |
encoding. This option defines the usage of this metadata. | |
no_skip | |
Frame skipping is disabled. | |
insert_dummy | |
Encoder inserts into bitstream frame where all macroblocks are | |
encoded as skipped. | |
insert_nothing | |
Similar to insert_dummy, but encoder inserts nothing into | |
bitstream. The skipped frames are still used in brc. For | |
example, gop still include skipped frames, and the frames after | |
skipped frames will be larger in size. | |
brc_only | |
skip_frame metadata indicates the number of missed frames | |
before the current frame. | |
MPEG2 Options | |
These options are used by mpeg2_qsv | |
profile | |
unknown | |
simple | |
main | |
high | |
VP9 Options | |
These options are used by vp9_qsv | |
profile | |
unknown | |
profile0 | |
profile1 | |
profile2 | |
profile3 | |
tile_cols | |
Number of columns for tiled encoding (requires libmfx >= 1.29). | |
tile_rows | |
Number of rows for tiled encoding (requires libmfx >= 1.29). | |
AV1 Options | |
These options are used by av1_qsv (requires libvpl). | |
profile | |
unknown | |
main | |
tile_cols | |
Number of columns for tiled encoding. | |
tile_rows | |
Number of rows for tiled encoding. | |
adaptive_i | |
This flag controls insertion of I frames by the QSV encoder. Turn | |
ON this flag to allow changing of frame type from P and B to I. | |
adaptive_b | |
This flag controls changing of frame type from B to P. | |
b_strategy | |
This option controls usage of B frames as reference. | |
extbrc | |
Extended bitrate control. | |
look_ahead_depth | |
Depth of look ahead in number frames, available when extbrc option | |
is enabled. | |
low_delay_brc | |
Setting this flag turns on or off LowDelayBRC feautre in qsv | |
plugin, which provides more accurate bitrate control to minimize | |
the variance of bitstream size frame by frame. Value: -1-default | |
0-off 1-on | |
max_frame_size | |
Set the allowed max size in bytes for each frame. If the frame size | |
exceeds the limitation, encoder will adjust the QP value to control | |
the frame size. Invalid in CQP rate control mode. | |
snow | |
Options | |
iterative_dia_size | |
dia size for the iterative motion estimation | |
VAAPI encoders | |
Wrappers for hardware encoders accessible via VAAPI. | |
These encoders only accept input in VAAPI hardware surfaces. If you | |
have input in software frames, use the hwupload filter to upload them | |
to the GPU. | |
The following standard libavcodec options are used: | |
o g / gop_size | |
o bf / max_b_frames | |
o profile | |
If not set, this will be determined automatically from the format | |
of the input frames and the profiles supported by the driver. | |
o level | |
o b / bit_rate | |
o maxrate / rc_max_rate | |
o bufsize / rc_buffer_size | |
o rc_init_occupancy / rc_initial_buffer_occupancy | |
o compression_level | |
Speed / quality tradeoff: higher values are faster / worse quality. | |
o q / global_quality | |
Size / quality tradeoff: higher values are smaller / worse quality. | |
o qmin | |
o qmax | |
o i_qfactor / i_quant_factor | |
o i_qoffset / i_quant_offset | |
o b_qfactor / b_quant_factor | |
o b_qoffset / b_quant_offset | |
o slices | |
All encoders support the following options: | |
low_power | |
Some drivers/platforms offer a second encoder for some codecs | |
intended to use less power than the default encoder; setting this | |
option will attempt to use that encoder. Note that it may support | |
a reduced feature set, so some other options may not be available | |
in this mode. | |
idr_interval | |
Set the number of normal intra frames between full-refresh (IDR) | |
frames in open-GOP mode. The intra frames are still IRAPs, but | |
will not include global headers and may have non-decodable leading | |
pictures. | |
b_depth | |
Set the B-frame reference depth. When set to one (the default), | |
all B-frames will refer only to P- or I-frames. When set to | |
greater values multiple layers of B-frames will be present, frames | |
in each layer only referring to frames in higher layers. | |
async_depth | |
Maximum processing parallelism. Increase this to improve single | |
channel performance. This option doesn't work if driver doesn't | |
implement vaSyncBuffer function. Please make sure there are enough | |
hw_frames allocated if a large number of async_depth is used. | |
max_frame_size | |
Set the allowed max size in bytes for each frame. If the frame size | |
exceeds the limitation, encoder will adjust the QP value to control | |
the frame size. Invalid in CQP rate control mode. | |
rc_mode | |
Set the rate control mode to use. A given driver may only support | |
a subset of modes. | |
Possible modes: | |
auto | |
Choose the mode automatically based on driver support and the | |
other options. This is the default. | |
CQP Constant-quality. | |
CBR Constant-bitrate. | |
VBR Variable-bitrate. | |
ICQ Intelligent constant-quality. | |
QVBR | |
Quality-defined variable-bitrate. | |
AVBR | |
Average variable bitrate. | |
blbrc | |
Enable block level rate control, which assigns different bitrate | |
block by block. Invalid for CQP mode. | |
Each encoder also has its own specific options: | |
av1_vaapi | |
profile sets the value of seq_profile. tier sets the value of | |
seq_tier. level sets the value of seq_level_idx. | |
tiles | |
Set the number of tiles to encode the input video with, as | |
columns x rows. (default is auto, which means use minimal tile | |
column/row number). | |
tile_groups | |
Set tile groups number. All the tiles will be distributed as | |
evenly as possible to each tile group. (default is 1). | |
h264_vaapi | |
profile sets the value of profile_idc and the | |
constraint_set*_flags. level sets the value of level_idc. | |
coder | |
Set entropy encoder (default is cabac). Possible values: | |
ac | |
cabac | |
Use CABAC. | |
vlc | |
cavlc | |
Use CAVLC. | |
aud Include access unit delimiters in the stream (not included by | |
default). | |
sei Set SEI message types to include. Some combination of the | |
following values: | |
identifier | |
Include a user_data_unregistered message containing | |
information about the encoder. | |
timing | |
Include picture timing parameters (buffering_period and | |
pic_timing messages). | |
recovery_point | |
Include recovery points where appropriate (recovery_point | |
messages). | |
hevc_vaapi | |
profile and level set the values of general_profile_idc and | |
general_level_idc respectively. | |
aud Include access unit delimiters in the stream (not included by | |
default). | |
tier | |
Set general_tier_flag. This may affect the level chosen for | |
the stream if it is not explicitly specified. | |
sei Set SEI message types to include. Some combination of the | |
following values: | |
hdr Include HDR metadata if the input frames have it | |
(mastering_display_colour_volume and content_light_level | |
messages). | |
tiles | |
Set the number of tiles to encode the input video with, as | |
columns x rows. Larger numbers allow greater parallelism in | |
both encoding and decoding, but may decrease coding efficiency. | |
mjpeg_vaapi | |
Only baseline DCT encoding is supported. The encoder always uses | |
the standard quantisation and huffman tables - global_quality | |
scales the standard quantisation table (range 1-100). | |
For YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported. | |
RGB is also supported, and will create an RGB JPEG. | |
jfif | |
Include JFIF header in each frame (not included by default). | |
huffman | |
Include standard huffman tables (on by default). Turning this | |
off will save a few hundred bytes in each output frame, but may | |
lose compatibility with some JPEG decoders which don't fully | |
handle MJPEG. | |
mpeg2_vaapi | |
profile and level set the value of profile_and_level_indication. | |
vp8_vaapi | |
B-frames are not supported. | |
global_quality sets the q_idx used for non-key frames (range | |
0-127). | |
loop_filter_level | |
loop_filter_sharpness | |
Manually set the loop filter parameters. | |
vp9_vaapi | |
global_quality sets the q_idx used for P-frames (range 0-255). | |
loop_filter_level | |
loop_filter_sharpness | |
Manually set the loop filter parameters. | |
B-frames are supported, but the output stream is always in encode | |
order rather than display order. If B-frames are enabled, it may | |
be necessary to use the vp9_raw_reorder bitstream filter to modify | |
the output stream to display frames in the correct order. | |
Only normal frames are produced - the vp9_superframe bitstream | |
filter may be required to produce a stream usable with all | |
decoders. | |
vbn | |
Vizrt Binary Image encoder. | |
This format is used by the broadcast vendor Vizrt for quick texture | |
streaming. Advanced features of the format such as LZW compression of | |
texture data or generation of mipmaps are not supported. | |
Options | |
format string | |
Sets the texture compression used by the VBN file. Can be dxt1, | |
dxt5 or raw. Default is dxt5. | |
vc2 | |
SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed | |
at professional broadcasting but since it supports yuv420, yuv422 and | |
yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it | |
suitable for other tasks which require low overhead and low compression | |
(like screen recording). | |
Options | |
b Sets target video bitrate. Usually that's around 1:6 of the | |
uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10 | |
that's around 400Mbps). Higher values (close to the uncompressed | |
bitrate) turn on lossless compression mode. | |
field_order | |
Enables field coding when set (e.g. to tt - top field first) for | |
interlaced inputs. Should increase compression with interlaced | |
content as it splits the fields and encodes each separately. | |
wavelet_depth | |
Sets the total amount of wavelet transforms to apply, between 1 and | |
5 (default). Lower values reduce compression and quality. Less | |
capable decoders may not be able to handle values of wavelet_depth | |
over 3. | |
wavelet_type | |
Sets the transform type. Currently only 5_3 (LeGall) and 9_7 | |
(Deslauriers-Dubuc) are implemented, with 9_7 being the one with | |
better compression and thus is the default. | |
slice_width | |
slice_height | |
Sets the slice size for each slice. Larger values result in better | |
compression. For compatibility with other more limited decoders | |
use slice_width of 32 and slice_height of 8. | |
tolerance | |
Sets the undershoot tolerance of the rate control system in | |
percent. This is to prevent an expensive search from being run. | |
qm Sets the quantization matrix preset to use by default or when | |
wavelet_depth is set to 5 | |
- default Uses the default quantization matrix from the | |
specifications, extended with values for the fifth level. This | |
provides a good balance between keeping detail and omitting | |
artifacts. | |
- flat Use a completely zeroed out quantization matrix. This | |
increases PSNR but might reduce perception. Use in bogus | |
benchmarks. | |
- color Reduces detail but attempts to preserve color at | |
extremely low bitrates. | |
SUBTITLES ENCODERS | |
dvdsub | |
This codec encodes the bitmap subtitle format that is used in DVDs. | |
Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and | |
they can also be used in Matroska files. | |
Options | |
palette | |
Specify the global palette used by the bitmaps. | |
The format for this option is a string containing 16 24-bits | |
hexadecimal numbers (without 0x prefix) separated by commas, for | |
example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, | |
0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, | |
7c127b". | |
even_rows_fix | |
When set to 1, enable a work-around that makes the number of pixel | |
rows even in all subtitles. This fixes a problem with some players | |
that cut off the bottom row if the number is odd. The work-around | |
just adds a fully transparent row if needed. The overhead is low, | |
typically one byte per subtitle on average. | |
By default, this work-around is disabled. | |
SEE ALSO | |
ffmpeg(1), ffplay(1), ffprobe(1), libavcodec(3) | |
AUTHORS | |
The FFmpeg developers. | |
For details about the authorship, see the Git history of the project | |
(https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in | |
the FFmpeg source directory, or browsing the online repository at | |
<https://git.ffmpeg.org/ffmpeg>. | |
Maintainers for the specific components are listed in the file | |
MAINTAINERS in the source code tree. | |
FFMPEG-CODECS(1) | |