KVAZAAR(1)
π KVAZAAR(1) π
π User Commands π
okay bestie, welcome to the group chat for kvazaar β the open source HEVC encoder that's genuinely iconic.
π NAME π
kvazaar β open source HEVC encoder
π¦ SYNOPSIS π¦
kvazaar -i <input> --input-res <width>x<height> -o <output>
β¨ DESCRIPTION β¨
okay so here's the whole menu. Required stuff first, because you literally cannot run this without them.
πΈ Required πΈ
-i,--input <filename>β Input file. the source, the material, the main character.--input-res <res>β Input resolution [auto]auto: Detect from file name.<int>x<int>: width times height
-o,--output <filename>β Output file. where the encoded magic goes.
π Presets π
--preset <preset>β Set options to a preset [medium]ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
π Input π
-n,--frames <integer>β Number of frames to code [all]--seek <integer>β First frame to code [0]--input-fps <num>[/<denom>]β Frame rate of the input video [25]--source-scan-type <string>β Source scan type [progressive]progressive: Progressive scantff: Top field firstbff: Bottom field first
--input-format <string>β P420 or P400 [P420]--input-bitdepth <int>β 8-16 [8]--loop-inputβ Re-read input file forever. it's giving infinite loop realness.--input-file-format <string>β Input file format [auto]auto: Check the file ending for formaty4m(skips frame headers)yuv
β¨ Options β¨
--helpβ Print this help message and exit.--versionβ Print version information and exit.--(no-)audβ Use access unit delimiters. [disabled]--debug <filename>β Output internal reconstruction.--(no-)cpuidβ Enable runtime CPU optimizations. [enabled]--hash <string>β Decoded picture hash [checksum]none: 0 byteschecksum: 18 bytesmd5: 56 bytes
--(no-)psnrβ Calculate PSNR for frames. [enabled]--(no-)infoβ Add encoder info SEI. [enabled]--(no-)enable-loggingβ Enable logging for regular encoder performance, error messages are always disblayed. [enabled] (yes, "disblayed" is exactly what it says, bestie π)--crypto <string>β Selective encryption. Crypto support must be enabled at compile-time. Can beonoroffor a list of features separated with a+. [off]on: Enable all encryption features.off: Disable selective encryption.mvs: Motion vector magnitudes.mv_signs: Motion vector signs.trans_coeffs: Coefficient magnitudes.trans_coeff_signs: Coefficient signs.intra_pred_modes: Intra prediction modes.
--key <string>β Encryption key [16,213,27,56,255,127,242,112,97,126,197,204,25,59,38,30]--stats-file-prefixβ A prefix used for stats files that include bits, lambda, distortion, and qp for each ctu. These are meant for debugging and are not written unless the prefix is defined.
π¦ Video structure π¦
-q,--qp <integer>β Quantization parameter [22]-p,--period <integer>β Period of intra pictures [64]0: Only first picture is intra.1: All pictures are intra.N: Every Nth picture is intra.
--vps-period <integer>β How often the video parameter set is re-sent [0]0: Only send VPS with the first frame.N: Send VPS with every Nth intra frame.
-r,--ref <integer>β Number of reference frames, in range 1..15 [4]--gop <string>β GOP structure [16]0: Disabled8: B-frame pyramid of length 816: B-frame pyramid of length 16lp-<string>: Low-delay P/B-frame GOP (e.g.lp-g8d4t2, see README)
--intra-qp-offset <int>β QP offset for intra frames [-51..51] [auto]N: Set QP offset to N.auto: Select offset automatically based on GOP length.
--(no-)open-gopβ Use open GOP configuration. [enabled]--cqmfile <filename>β Read custom quantization matrices from a file.--scaling-list <string>β Set scaling list mode. [off]off: Disable scaling lists.custom: use custom list (with--cqmfile).default: Use default lists.
--bitrate <integer>β Target bitrate [0]0: Disable rate control.N: Target N bits per second.
--rc-algorithm <string>β Select used rc-algorithm. [lambda]lambda: rate control from: DOI: 10.1109/TIP.2014.2336550oba: DOI: 10.1109/TCSVT.2016.2589878
--(no-)intra-bitsβ Use Hadamard cost based allocation for intra frames. Default on for gop 8 and off for lp-gop--(no-)clip-neighbourβ On oba based rate control whether to clip lambda values to same frame's ctus or previous'. Default on for RA GOPS and disabled for LP.--(no-)losslessβ Use lossless coding. [disabled]--mv-constraint <string>β Constrain movement vectors. [none]none: No constraintframetile: Constrain within the tile.frametilemargin: Constrain even more.
--roi <filename>β Use a delta QP map for region of interest. Reads an array of delta QP values from a file. Text and binary files are supported and detected from the file extension (.txt/.bin). If a known extension is not found, the file is treated as a text file. The file can include one or many ROI frames each in the following format: width and height of the QP delta map followed by width * height delta QP values in raster order. In binary format, width and height are 32-bit integers whereas the delta QP values are signed 8-bit values. The map can be of any size and will be scaled to the video size. The file reading will loop if end of the file is reached. Seeroi.txtin the examples folder.--set-qp-in-cuβ Set QP at CU level keeping pic_init_qp_minus26. in PPS and slice_qp_delta in slize header zero.--(no-)erp-aqpβ Use adaptive QP for 360 degree video with equirectangular projection. [disabled]--level <number>β Use the given HEVC level in the output and give an error if level limits are exceeded. [6.2]1,2,2.1,3,3.1,4,4.1,5,5.1,5.2,6,6.1,6.2
--force-level <number>β Same as--levelbut warnings instead of errors.--high-tierβ Used with--level. Use high tier bitrate limits instead of the main tier limits during encoding. High tier requires level 4 or higher.--(no-)vaq <integer>β Enable variance adaptive quantization with given strength, in range 1..20. Recommended: 5. [disabled]
π₯ Compression tools π₯
--(no-)deblock <beta:tc>β Deblocking filter. [0:0]beta: Between -6 and 6tc: Between -6 and 6
--sao <string>β Sample Adaptive Offset [full]off: SAO disabledband: Band offset onlyedge: Edge offset onlyfull: Full SAO
--(no-)rdoqβ Rate-distortion optimized quantization [enabled]--(no-)rdoq-skipβ Skip RDOQ for 4x4 blocks. [disabled]--(no-)signhideβ Sign hiding [disabled]--(no-)smpβ Symmetric motion partition [disabled]--(no-)ampβ Asymmetric motion partition [disabled]--rd <integer>β Mode search complexity [0]0: Skip intra if inter is good enough.1: Rough intra mode search with SATD.2: Refine mode search with SSE.3: More SSE candidates for inter and chroma mode search for 4x4 intra.4: Even more SSE candidates for both.5: Try all intra modes.
--(no-)mv-rdoβ Rate-distortion optimized motion vector costs [disabled]--(no-)zero-coeff-rdoβ If a CU is set inter, check if forcing zero residual improves the RD cost. [enabled]--(no-)full-intra-searchβ Try all intra modes during rough search. [disabled]--(no-)intra-chroma-searchβ Test non-derived intra chroma modes. [disabled]--(no-)transform-skipβ Try transform skip [disabled]--me <string>β Integer motion estimation algorithm [hexbs]hexbs: Hexagon Based Searchtz: Test Zone Searchfull: Full Searchfull8,full16,full32,full64dia: Diamond Search
--me-steps <integer>β Motion estimation search step limit. Only affectshexbsanddia. [-1]--subme <integer>β Fractional pixel motion estimation level [4]0: Integer motion estimation only1: + 1/2-pixel horizontal and vertical2: + 1/2-pixel diagonal3: + 1/4-pixel horizontal and vertical4: + 1/4-pixel diagonal
--(no-)fast-bipredβ Only perform fast bipred search. [enabled]--pu-depth-inter <int>-<int>β Inter prediction units sizes [0-3]0,1,2,3: from 64x64 to 8x8- Accepts a list of values separated by
,for setting separate depths per GOP layer (values can be omitted to use the first value for the respective layer).
--pu-depth-intra <int>-<int>β Intra prediction units sizes [1-4]0,1,2,3,4: from 64x64 to 4x4- Accepts a list of values separated by
,for setting separate depths per GOP layer (values can be omitted to use the first value for the respective layer).
--ml-pu-depth-intraβ Predict the pu-depth-intra using machine learning trees, overrides the--pu-depth-intraparameter. [disabled]--(no-)combine-intra-cusβ Whether the encoder tries to code a cu on lower depth even when search is not performed on said depth. Should only be disabled if cus absolutely must not be larger than limited by the search. [enabled]--force-interβ Force the encoder to use inter always. This is mostly for debugging and is not guaranteed to produce sensible bitstream or work at all. [disabled]--tr-depth-intra <int>β Transform split depth for intra blocks [0]--(no-)bipredβ Bi-prediction [enabled]
--cu-split-termination <string>β when do we let the CU split search just give up and go home? default iszero, and honestly she's got range:off: Don't terminate early. (we stay in the search until the bitter end π)zero: Terminate when residual is zero.
--me-early-termination <string>β motion estimation termination, defaulton:off: Don't terminate early.on: Terminate early.sensitive: Terminate even earlier. yes bestie she's that impatient β¨
--fast-residual-cost <int>β skip the CABAC cost for residual coefficients when QP is below the limit. default0.--fast-coeff-table <string>β read custom weights for residual coefficients from a file instead of using defaults. default isdefault(so iconic of her).--fast-rd-samplingβ enable learning data sampling for fast coefficient table generation.--fastrd-accuracy-checkβ evaluate the accuracy of fast coefficient prediction.--fastrd-outdirβ directory to which to output sampled data or accuracy data, into<fastrd-outdir>/0.txtto50.txt, one file for each QP that blocks were estimated on. it's giving very organized π--(no-)intra-rdo-etβ check intra modes in the rdo stage only until a zero coefficient CU is found. [disabled]--(no-)early-skipβ try to find skip cu from merge candidates. Perform no further search if skip is found. Forrd=0..1: Try the first candidate. Forrd=2..Try the best candidate based on luma satd cost. [enabled]--max-merge <integer>β maximum number of merge candidates,1..5[5]--(no-)implicit-rdpcmβ implicit residual DPCM. Currently only supported with lossless coding. [disabled]--(no-)tmvpβ temporal motion vector prediction [enabled]
π₯ Parallel processing π₯
--threads <integer>β number of threads to use [auto]:0: Process everything with main thread.N: Use N threads for encoding.auto: Select automatically.
--owf <integer>β frame-level parallelism [auto]:N: Process N+1 frames at a time.auto: Select automatically.
--(no-)wppβ wavefront parallel processing. [enabled] Enabling tiles automatically disables WPP. To enable WPP with tiles, re-enable it after enabling tiles. Enabling wpp with tiles is, however, an experimental feature since it is not supported in any HEVC profile.
ok so that WPP-with-tiles situation is experimental β it's not supported in any HEVC profile, so proceed with caution bestie, no cap π«Ά
--tiles <int>x<int>β split picture into width x height uniform tiles.--tiles-width-split <string>|u<int><string>: A comma-separated list of tile column pixel coordinates.u<int>: Number of tile columns of uniform width.
--tiles-height-split <string>|u<int><string>: A comma-separated list of tile row column pixel coordinates.u<int>: Number of tile rows of uniform height.
--slices <string>β control how slices are used:tiles: Put tiles in independent slices.wpp: Put rows in dependent slices.tiles+wpp: Do both. (she's doing the most and we love that π)
--partial-coding <x-offset>!<y-offset>!<slice-width>!<slice-height>β encode partial frame. Parts must be merged to form a valid bitstream. X and Y are CTU offsets. Slice width and height must be divisible by CTU in pixels unless it is the last CTU row/column. This parameter is used by kvaShare.
π Video Usability Information π
--sar <width:height>β specify sample aspect ratio.--overscan <string>β specify crop overscan setting [undef]:undef,show,crop
--videoformat <string>β specify video format [undef]:undef,component,pal,ntsc,secam,mac
--range <string>β specify color range [tv]:tv,pc
--colorprim <string>β specify color primaries [undef]:undef,bt709,bt470m,bt470bg,smpte170m,smpte240m,film,bt2020
--transfer <string>β specify transfer characteristics [undef]:undef,bt709,bt470m,bt470bg,smpte170m,smpte240m,linear,log100,log316,iec61966-2-4,bt1361e,iec61966-2-1,bt2020-10,bt2020-12
--colormatrix <string>β specify color matrix setting [undef]:undef,bt709,fcc,bt470bg,smpte170m,smpte240m,GBR,YCgCo,bt2020nc,bt2020c
--chromaloc <integer>β specify chroma sample location (0to5) [0]
and that's the whole page, bestie!! you just read every single option, value and default, and honestly? slay π this was all from kvazaar v2.3.2, dated September 2025, and it lives at KVAZAAR(1) in the manual pages π go forth and encode, you absolute icon πβ¨
π¦ where this page comes from
- arch rolling: kvazaar 2.3.2-2 Β· BSD-3-Clause
- nixpkgs unstable: kvazaar 2.3.2
- ubuntu resolute: kvazaar 2.3.2-1
- ubuntu stonking: kvazaar 2.3.2-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms