Reading option tables
Each encoder and image-format page ends with a Full option reference: every option of one named release, with its default and what it does. The practical guidance is at the top of each page; the tables are for looking up a specific flag. This page explains how to read them.
Where the tables are
Section titled “Where the tables are”| Area | Pages |
|---|---|
| AV1 encoders | SVT-AV1 and its forks (HDR, PSY, PSYEX, Essential, 5fish), aomenc and its forks (AV1-lavish, aom-psy101), rav1e, AVM (AV2) |
| Other video | x264, x265, vpxenc, VVenC |
| Hardware | NVENC, QSV, AMF, VAAPI, Vulkan, MediaCodec (FFmpeg wrapper options) |
| Audio | Opus (opusenc, libopus), AAC (FFmpeg aac, libfdk_aac, fdkaac), qaac, exhale |
| Images | AVIF, HEIC, JPEG XL, WebP, JPEG, JPEG 2000, PNG, GIF, QOI |
| Pipeline tools | FFmpeg, Av1an, MKVToolNix, MP4Box, dav1d, dovi_tool, hdr10plus_tool — the options that matter, not full inventories |
Commercial SDKs such as Eve-AV1 and Aurora1 publish no option reference.
A table covers one interface at one release. aomenc, SvtAv1EncApp, FFmpeg’s libsvtav1 wrapper
and a GPU driver accept different flags with different defaults, and a fork can change both, so check
the version named above the table against the one you run.
What the Default column means
Section titled “What the Default column means”The Default column says what happens when you omit the option.
| Default shown | Meaning |
|---|---|
| A value | The interface uses this value unless you override it. |
| Automatic / sentinel | A value is chosen later from the input, preset or hardware. -1, 0 and auto mean different things in different tools. |
| Preset- or tune-dependent | The preset or tune sets it; the row gives the value for the default preset where it matters. |
| Input- or mode-dependent | Picture size, channel count, sample rate or rate-control mode changes it. |
| Unset | Nothing is passed, so the library’s own behaviour applies. Not the same as zero. |
| Required | You must supply it. |
A displayed range can include sentinel values, so read the description before using an endpoint: 0
often means “automatic” rather than “minimum”. An option with an optional value can behave differently
when written bare — Gifsicle’s omitted --lossy is 0, a bare --lossy means 20. Quality scales are
private to each encoder: CRF 30 in x264, SVT-AV1 and libvpx are three unrelated settings, and “quality
90” in two image encoders are not comparable.
FFmpeg options that apply to every encoder
Section titled “FFmpeg options that apply to every encoder”ffmpeg -h encoder=<name> lists only an encoder wrapper’s private options. These generic options
apply to every encoder and are not repeated in the per-encoder tables:
| Option | What it sets |
|---|---|
-b:v, -b:a | Target bitrate in bits/s (5M, 160k). |
-maxrate, -minrate, -bufsize | Rate-control limits in bits/s and the VBV buffer in bits, for encoders and modes that honour them. |
-g, -bf, -refs | Maximum GOP length in frames, consecutive B-frames and reference frames. |
-q:v, -global_quality, -crf, -cq, -qp | Quality controls. Which one an encoder uses, and its scale, is encoder-specific. |
-preset, -tune, -profile:v, -level:v | Encoder-specific names. A profile or level constrains compatibility; it is not a quality setting. |
-pix_fmt, -ar, -ac | Pixel format, audio sample rate in Hz and channel count. Setting them converts if the input differs. |
-threads | Requested threads; encoders may cap or ignore it. |
Use stream specifiers (-b:v:0, -c:a:1) when an option could match several streams. Library
pass-through strings such as -svtav1-params, -x264-params and -x265-params use the library’s own
key=value:key=value syntax, not the standalone command-line spelling.