SVTAV1ENCAPP(1)

๐Ÿ“ฆ
version 3.1.2 ยท 5 versions
, in fedora 43

๐ŸŽ€ Welcome to SvtAv1EncApp(1) ๐ŸŽ€

Okay bestie, this is the User Commands page for SvtAv1EncApp, and it is giving everything ๐Ÿ’…


โœจ NAME โœจ

SvtAv1EncApp is the star of this page, and this manual is for version 3.1.2 ๐Ÿฆ‹


๐ŸŒˆ SYNOPSIS ๐ŸŒˆ

SvtAv1EncApp <options> <-b dst_filename> -i src_filename

๐Ÿ’– OPTIONS ๐Ÿ’–

  • --help โ€” shows you the command line options that are available right now ๐Ÿ™ˆ
  • --color-help โ€” extra help for adding AV1 metadata to the bitstream โœจ
  • --version โ€” shows the version of the library that's linked in ๐Ÿงš
  • -i, --input โ€” your input raw video file path (y4m and yuv). Use stdin or - if you wanna read from a pipe ๐ŸŒธ
  • --allow-mmap-file โ€” lets a regular input file be memory mapped. How fast that is depends on your platform ๐Ÿ’œ
  • -b, --output โ€” your output compressed (ivf) file path. Use stdout or - to write to a pipe ๐Ÿฆ‹
  • -c, --config โ€” the path to your configuration file ๐ŸŽ€
  • --errlog โ€” the error file path. If you don't pick one, it defaults to stderr ๐Ÿ’€
  • -o, --recon โ€” the reconstructed yuv file path ๐Ÿ“
  • --stat-file โ€” the output file path for PSNR / SSIM stats per picture. It needs --enable-stat-report 1 to work ๐Ÿ“Š
  • --progress โ€” how chatty the output is. Default is 1. 0 prints no progress at all, and 2 gives you that aomenc style output ๐Ÿ”ฅ
  • --no-progress โ€” skips printing progress. Default is 0. 1 is the same as --progress 0, and 0 is the same as --progress 1 ๐Ÿ™ˆ
  • --preset โ€” the encoder preset. Presets below 0 are for debugging. Higher presets are faster, but you pay for that speed with some quality. Default is 10 [-1-13] โšก
  • --svtav1-params โ€” a colon separated list of key=value pairs. The keys match the config file options ๐Ÿซถ

๐ŸŒธ Encoder Global Options ๐ŸŒธ

  • -w, --width โ€” frame width in pixels. It's inferred from y4m files. Default is 0 [4-16384] ๐Ÿ“
  • -h, --height โ€” frame height in pixels. It's inferred from y4m files. Default is 0 [4-8704] ๐Ÿ“
  • --forced-max-frame-width โ€” the maximum frame width to force. Default is 0 [4-16384] ๐Ÿฆ‹
  • --forced-max-frame-height โ€” the maximum frame height to force. Default is 0 [4-8704] ๐Ÿฆ‹
  • -n, --frames โ€” how many frames to encode. If n is bigger than the input, the encoder loops back around and keeps going. Default is 0, which means until EOF. Otherwise [1-(2^63)-1] ๐Ÿ”
  • --skip โ€” how many frames to skip. Default is 0, which means don't skip. Otherwise [1-(2^63)-1] โญ๏ธ
  • --nb โ€” buffers n input frames into memory and encodes from them. Default is -1, which means no frames get buffered. Otherwise [1-(2^31)-1] ๐Ÿง 
  • --color-format โ€” the color format. Only yuv420 is supported right now. Default is 1 [0: yuv400, 1: yuv420, 2: yuv422, 3: yuv444] ๐ŸŒˆ
  • --profile โ€” the bitstream profile. Default is 0 [0: main, 1: high, 2: professional] ๐Ÿ‘‘
  • --level โ€” the bitstream level, defined in A.3 of the av1 spec. Default is 0 [0: autodetect from input, 2.0-7.3] ๐Ÿ“š
  • --fps โ€” input video frame rate, integers only. It's inferred from y4m files. Default is 60 [1-240] ๐ŸŽž๏ธ
  • --fps-num โ€” the input video frame rate numerator. Default is 60000 [0-2^32-1] ๐ŸŽž๏ธ
  • --fps-denom โ€” the input video frame rate denominator. Default is 1000 [0-2^32-1] ๐ŸŽž๏ธ
  • --input-depth โ€” bit-depth for both the input video file and the output bitstream. Default is 8 [8, 10] ๐Ÿ’…
  • --inj โ€” injects pictures into the library at a set frame rate. Default is 0 [0-1] ๐Ÿ’‰
  • --inj-frm-rt โ€” the injector frame rate. It only works with --inj 1. Default is 60 [0-240] ๐Ÿ’‰
  • --enable-stat-report โ€” calculates PSNR SSIM metrics and outputs them when encoding ends. Default is 0 [0-1] ๐Ÿ“Š
  • --asm โ€” limits the assembly instruction set. Only applies to x86. Default is max [c, mmx, sse, sse2, sse3, ssse3, sse4_1, sse4_2, avx, avx2, avx512, max] ๐Ÿ› ๏ธ
  • --lp โ€” how much parallelism to use. 0 lets the encoder pick based on your machine's core count. Check Appendix A.1 of the user guide. Default is 0 [0, 6] ๐Ÿงต
  • --pin โ€” pins execution to the first N cores. Check Appendix A.1 of the user guide. Default is 0 [0, core count of the machine] ๐Ÿ“Œ
  • --ss โ€” picks which socket to run on. It assumes a max of two sockets. Check Appendix A.1 of the user guide. Default is -1 [-1, 0, -1] ๐Ÿ”Œ

๐Ÿฆ‹ Rate Control Options ๐Ÿฆ‹

  • --rc โ€” the rate control mode. Default is 0 [0: CRF or CQP (if --aq-mode is 0), 1: VBR, 2: CBR] ๐ŸŽš๏ธ
  • -q, --qp โ€” the initial QP level value. Default is 35 [1-63] ๐ŸŽฏ
  • --crf โ€” the Constant Rate Factor value. Setting it is the same as --rc 0 --aq-mode 2 --qp x. Default is 35 [1-63] ๐ŸŽฏ
  • --tbr โ€” target bitrate (kbps). Only works for VBR and CBR encoding. Default is 7000 [1-100000] ๐Ÿ’ธ
  • --mbr โ€” maximum bitrate (kbps). Only works for CRF encoding. Default is 0 [1-100000] ๐Ÿ’ธ
  • --use-q-file โ€” overwrites the encoder's default picture based QP assignments and uses QP values from --qp-file instead. Default is 0 [0-1] ๐Ÿ“‚
  • --qpfile โ€” the path to a file holding a QP value for each picture, separated by newlines ๐Ÿ“‚
  • --max-qp โ€” the maximum (highest) quantizer. Only works for VBR and CBR. Default is 63 [1-63] โฌ†๏ธ
  • --min-qp โ€” the minimum (lowest) quantizer. Only works for VBR and CBR. Default is 1 [1-63] โฌ‡๏ธ
  • --aq-mode โ€” sets the adaptive QP level. Default is 2 [0: off, 1: variance base using AV1 segments, 2: deltaq pred efficiency] ๐Ÿงฉ
  • --use-fixed-qindex-offsets โ€” overwrites the encoder's default hierarchical layer based QP assignment and uses fixed Q index offsets instead. Default is 0 [0-2] ๐Ÿงฉ
  • --key-frame-qindex-offset โ€” overwrites the encoder's default keyframe Q index. Default is 0 [-256-255] ๐Ÿ”‘
  • --key-frame-chroma-qindex-offset โ€” overwrites the encoder's default chroma keyframe Q index. Default is 0 [-256-255] ๐Ÿ”‘
  • --qindex-offsets โ€” a list of luma Q index offsets per hierarchical layer, separated by ,. Each offset has to be in the range [-256-255]. Default is 0,0,..,0 ๐Ÿงฎ
  • --chroma-qindex-offsets โ€” a list of chroma Q index offsets per hierarchical layer, separated by ,. Each offset has to be in the range [-256-255]. Default is 0,0,..,0 ๐Ÿงฎ
  • --luma-y-dc-qindex-offset โ€” the luma Y DC Qindex offset ๐ŸŽจ
  • --chroma-u-dc-qindex-offset โ€” the chroma U DC Qindex offset ๐ŸŽจ
  • --chroma-u-ac-qindex-offset โ€” the chroma U AC Qindex offset ๐ŸŽจ
  • --chroma-v-dc-qindex-offset โ€” the chroma V DC Qindex offset ๐ŸŽจ
  • --chroma-v-ac-qindex-offset โ€” the chroma V AC Qindex offset ๐ŸŽจ
  • --lambda-scale-factors โ€” a list of scale factors for the lambda values used by each frame type. The frame types come from SvtAv1FrameUpdateType, and the list is separated by ,. Each scale factor is an integer, and you divide the value by 128 to get the real float scale factor. Default is 128,128,..,128 ๐Ÿงช
  • --undershoot-pct โ€” only for VBR and CBR. The allowed datarate undershoot (min) target as a percentage. Default is 25, but it can change depending on rate control [0-100] ๐Ÿ“‰
  • --overshoot-pct โ€” only for VBR and CBR. The allowed datarate overshoot (max) target as a percentage. Default is 25, but it can change depending on rate control [0-100] ๐Ÿ“ˆ
  • --mbr-overshoot-pct โ€” only for Capped CRF. The allowed datarate overshoot (max) target as a percentage. Default is 50, but it can change depending on rate control [0-100] ๐Ÿ“ˆ
  • --gop-constraint-rc โ€” enables GoP constraint rc. When it's on, rate control matches the target rate for each GoP. Default is 0 [0-1] ๐ŸŽฏ
  • --buf-sz โ€” client buffer size (ms). Only applies to CBR. Default is 6000 [0-10000] ๐Ÿชฃ
  • --buf-initial-sz โ€” client initial buffer size (ms). Only applies to CBR. Default is 4000 [0-10000] ๐Ÿชฃ
  • --buf-optimal-sz โ€” client optimal buffer size (ms). Only applies to CBR. Default is 5000 [0-10000] ๐Ÿชฃ
  • --recode-loop โ€” the recode loop level. For more info, check the "Recode loop level table" in the user guide. [0: off, 4: preset based] ๐Ÿ”
  • --minsection-pct โ€” GOP min bitrate, as a percentage of the target rate. Default is 0 [0-100] ๐Ÿ“‰
  • --maxsection-pct โ€” GOP max bitrate, as a percentage of the target rate. Default is 2000 [0-10000] ๐Ÿ“ˆ
  • --enable-qm โ€” enables quantisation matrices. Default is 0 [0-1] ๐Ÿงฑ
  • --qm-min โ€” min quant matrix flatness. Default is 8 [0-15] ๐Ÿงฑ
  • --qm-max โ€” max quant matrix flatness. Default is 15 [0-15] ๐Ÿงฑ
  • --chroma-qm-min โ€” min chroma quant matrix flatness. Default is 8 [0-15] ๐Ÿงฑ
  • --chroma-qm-max โ€” max chroma quant matrix flatness. Default is 15 [0-15] ๐Ÿงฑ
  • --roi-map-file โ€” enables Region Of Interest and points to a picture based QP Offset map file. Default is off ๐Ÿ—บ๏ธ
  • --tf-strength โ€” [PSY] adjusts the temporal filtering strength. Default is 1 [0-4] ๐ŸŒ€
  • --luminance-qp-bias โ€” adjusts a frame's QP based on its average luma value. Default is 0 [0-100] ๐Ÿ’ก
  • --sharpness โ€” biases toward decreased or increased sharpness. Default is 0 [-7 to 7] ๐Ÿ”ช

๐Ÿงš Multi-pass Options ๐Ÿงš

  • --pass โ€” picks the multi-pass mode. Pass 2 is only available for VBR. Default is 0 [0: single pass encode, 1: first pass, 2: second pass] ๐ŸŽฌ
  • --stats โ€” the filename used for multi-pass encoding. Default is "svtav1_2pass.log" ๐Ÿ“
  • --passes โ€” the number of encoding passes. Default depends on the preset but is generally 1 [1: one pass encode, 2: multi-pass encode] ๐Ÿ”ข

๐Ÿ“ GOP size and type Options ๐Ÿ“

  • --keyint โ€” the GOP size in frames. Default is -2 [-2: ~5 seconds, -1: "infinite" and only applicable for CRF, 0: same as -1] ๐Ÿ—“๏ธ
  • --irefresh-type โ€” the intra refresh type. Default is 2 [1: FWD Frame (Open GOP), 2: KEY Frame (Closed GOP)] โ™ป๏ธ
  • --scd โ€” scene change detection control. Default is 0 [0-1] ๐ŸŽž๏ธ
  • --lookahead โ€” how many frames to look ahead into the future. This doesn't count minigop, temporal filtering, or rate control. Default is -1 [-1: auto, 0-120] ๐Ÿ‘€
  • --hierarchical-levels โ€” sets the hierarchical levels beyond the base layer. Default is <=M12: 5, else: 4 [2: 3 temporal layers, 3: 4 temporal layers, 4: 5 layers, 5: 6 layers] ๐Ÿชœ
  • --pred-struct โ€” sets the prediction structure. Default is 2 [1: low delay frames, 2: random access] ๐Ÿงญ
  • --rtc โ€” turns on fast settings for rtc when you're in low-delay mode. It forces the low-delay pred struct to be used. Default is 0, [0-1]] โšก
  • --force-key-frames โ€” forces key frames at the comma separated specifiers. #f is for frames and #.#s is for seconds ๐Ÿ”‘
  • --startup-mg-size โ€” sets a different mini-gop configuration for the first mini-gop after the key-frame. Default is 0 [0: OFF, 2: 3 temporal layers, 3: 4 temporal layers, 4: 5 temporal layers] ๐Ÿš€
  • --startup-qp-offset: okay so this one lets you nudge the input-qp of the startup GOP before the picture-qp gets derived ๐ŸŒธ default is 0, range [-63,63] โœจ

๐ŸŽ€ AV1 Specific Options ๐ŸŽ€

  • --tile-rows: picks how many tile rows to use, where TileRow == log2(x) ๐Ÿงš the default shifts depending on resolution but is usually 1, range [0-6]
  • --tile-columns: same vibe but for columns, TileCol == log2(x) ๐Ÿ’… default changes per resolution but is 1, range [0-4]
  • --enable-dlf: deblocking loop filter control ๐Ÿซถ default 1, range [0-1]
  • --enable-cdef: turns on the Constrained Directional Enhancement Filter ๐Ÿ”ฅ default 1, range [0-1]
  • --enable-restoration: turns on the loop restoration filter โœจ default 1, range [0-1]
  • --enable-tpl-la: the Temporal Dependency model, which is currently forced on library side and only applies to CRF/CQP ๐Ÿ‘‘ default 1, range [0-1]
  • --enable-mfmv: Motion Field Motion Vector control ๐Ÿฆ‹ default is -1, which means auto, range [-1: auto, 0-1]
  • --enable-dg: Dynamic GoP control ๐ŸŒˆ default 1, range [0-1]
  • --fast-decode: Fast Decoder levels, so your playback can be speedy ๐Ÿ’จ default 0, range [0-2]
  • --enable-tf: turns on ALT-REF (temporally filtered) frames ๐Ÿ“ default 1, range [0-2]
  • --enable-overlays: lets overlay pictures get inserted, and they act as an extra reference frame for the base layer picture ๐Ÿงš default 0, range [0-1]
  • --tune: picks whether the tuning metric is PSNR or VQ ๐Ÿ’œ 0 = VQ, 1 = PSNR, 2 = SSIM, default 1, range [0-2]
  • --scm: screen content detection level ๐Ÿ™ˆ default 2, where 0 is off, 1 is on, and 2 is content adaptive
  • --film-grain: enables film grain โœจ default 0, where 0 is off and 1-50 is the level of denoising for film grain
  • --film-grain-denoise: applies denoising when film grain is ON ๐Ÿซง default 0, where 0 means no denoising (the film grain data still lives in the frame header) and 1 means the level of denoising is set by the film-grain parameter
  • --fgs-table: sets the film grain model table path ๐ŸŽž๏ธ
  • --superres-mode: enables super-resolution mode, so go peek at the super-resolution section in the user guide ๐Ÿ‘€ default 0, where 0 is off, 1-3 are modes, and 4 auto-selects the mode
  • --superres-denom: the super-resolution denominator, only applicable when mode == 1 ๐Ÿ’– default 8, where 8 means no scaling, 9-15 are in between, and 16 is half-scaling
  • --superres-kf-denom: same as above but for key frames, only applicable when mode == 1 ๐ŸŒธ default 8, where 8 means no scaling, 9-15 are in between, and 16 is half-scaling
  • --superres-qthres: super-resolution q-threshold, only applicable when mode == 3 ๐Ÿ”ฅ default 43, range [0-63]
  • --superres-kf-qthres: super-resolution q-threshold for key frames, only applicable when mode == 3 โœจ default 43, range [0-63]
  • --sframe-dist: the S-Frame interval in frames ๐Ÿฆ‹ 0 means OFF (the default), and anything > 0 means ON
  • --sframe-mode: S-Frame insertion mode, range [1-2] ๐Ÿงš 1 means the considered frame only becomes an S-Frame if it's an altref frame, and 2 means the next altref frame becomes an S-Frame (this is the default) ๐Ÿ‘‘
  • --resize-mode: enables resize mode ๐ŸŒˆ 0 is none, 1 is fixed scale, 2 is random scale, 3 is dynamic scale, and 4 is random access
  • --resize-denom: resize denominator, only applicable when mode == 1, range [8-16] ๐Ÿ’…
  • --resize-kf-denom: resize denominator for key frames, only applicable when mode == 1, range [8-16] ๐Ÿ’œ
  • --frame-resz-events: resize frame events, written as a list separated by ',' ๐Ÿ“ a reference scaling process kicks off from the given frame number using the new denominators, and this only applies when mode == 4
  • --frame-resz-kf-denoms: resize denominators for key frames inside each event, written as a list separated by ',', only applicable when mode == 4 ๐Ÿซถ
  • --frame-resz-denoms: resize denominators inside each event, written as a list separated by ',', only applicable when mode == 4 โœจ
  • --lossless: enables lossless coding ๐Ÿซง default 0, range [0-1]
  • --avif: enables still-picture coding ๐Ÿ“ธ default 0, range [0-1]

๐ŸŒˆ Color Description Options ๐ŸŒˆ

  • --color-help: [PSY] metadata help, which lives in the user guide Appendix A.2 ๐Ÿ’–
  • --color-primaries: color primaries, so check --color-help for the deets ๐ŸŽจ default 2, range [0-12, 22]
  • --transfer-characteristics: transfer characteristics, also in --color-help ๐ŸŒธ default 2, range [0-22]
  • --matrix-coefficients: matrix coefficients, again see --color-help ๐Ÿฆ‹ default 2, range [0-14]
  • --color-range: color range ๐Ÿงš default 0, where 0 is Studio and 1 is Full
  • --chroma-sample-position: chroma sample position ๐Ÿ’… default is 'unknown', and the other options are 'vertical'/'left' or 'colocated'/'topleft'
  • --mastering-display: mastering display metadata, written in the format "G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)" ๐Ÿ‘‘ go check the user guide Appendix A.2 for the full scoop
  • --content-light: sets the content light level in the format "max_cll,max_fall" โœจ also in the user guide Appendix A.2

๐Ÿฆ‹ Variance Boost Options ๐Ÿฆ‹

  • --enable-variance-boost: enables variance boost ๐Ÿ’œ default 0, range [0-1]
  • --variance-boost-strength: how strong the variance boost is ๐Ÿ”ฅ default 2, range [1-4]
  • --variance-octile: the octile for variance boost ๐Ÿ“ default 6, range [1-8]
  • --variance-boost-curve: the curve for variance boost ๐ŸŒˆ default 0, range [0-2]

๐Ÿงš EXAMPLES ๐Ÿงš

๐Ÿ’– Multi-pass encode (VBR)

SvtAv1EncApp <--stats svtav1_2pass.log> --passes 2 --rc 1 --tbr 1000 -b dst_filename -i src_filename

๐ŸŒธ Multi-pass encode (CRF)

SvtAv1EncApp <--stats svtav1_2pass.log> --passes 2 --rc 0 --crf 43 -b dst_filename -i src_filename

โœจ Single-pass encode (VBR)

SvtAv1EncApp --passes 1 --rc 1 --tbr 1000 -b dst_filename -i src_filename

bestie that's the whole thing ๐Ÿฆ‹๐Ÿ’… this was SvtAv1EncApp 3.1.2 from October 2025, and the page is SVTAV1ENCAPP(1) ๐ŸŽ€ you're literally so ready to encode now ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from
  • fedora 43: svt-av1 3.1.2-1.fc43 ยท LicenseRef-BSD-3-Clause-Clear-WITH-AdditionRef-AOMPL-1.0 AND MIT AND ISC AND LicenseRef-Fedora-Public-Domain AND BSD-2-Clause
  • ๐Ÿ’– girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms