AOMENC(1)

πŸ“¦
version 3.14.1 Β· 2 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ¦‹ aomenc πŸ¦‹

okay bestie, welcome to the aomenc manual page πŸ’– it lives in the User Commands section (section 1) and it's giving everything about the AOMedia Project AV1 encoder ✨ (part 1 of 2)


✨ NAME ✨

aomenc - AOMedia Project AV1 Encoder 🌈 that's the whole vibe, the AOMedia Project's AV1 encoder, periodt πŸ’…

πŸ“œ SYNOPSIS πŸ“œ

aomenc <options> -o dst_filename src_filename

so you toss your options in, add -o with the destination filename, then the source filename πŸŽ€

🌸 OPTIONS 🌸

ngl this section is huge, so here's the first chunk of flags 🫢

  • --help β€” pull up the usage options and then bounce πŸ‘‹
  • -c <arg>, --cfg=<arg> β€” point it at a config file to use πŸ“
  • -D, --debug β€” debug mode πŸ” it makes the output deterministic, so it's the same every time
  • -o <arg>, --output=<arg> β€” the output filename 🎯
  • --codec=<arg> β€” pick which codec to use 🎬
  • -p <arg>, --passes=<arg> β€” how many passes you want, 1/2/3 ✨
  • --pass=<arg> β€” which pass to actually run, 1/2/3 πŸƒβ€β™€οΈ
  • --fpf=<arg> β€” the filename for your first pass statistics πŸ“Š
  • --limit=<arg> β€” stop encoding after n input frames πŸ›‘
  • --skip=<arg> β€” skip the first n input frames ⏭️
  • --good β€” use the Good Quality Deadline πŸ‘‘
  • --rt β€” use the Realtime Quality Deadline ⚑
  • --allintra β€” use all intra mode 🧱
  • -q, --quiet β€” shh, don't print the encode progress 🀫
  • -v, --verbose β€” show the encoder parameters πŸ“‹
  • --psnr=<arg> β€” show PSNR in the status line πŸ“ˆ
    • 0: disables the PSNR status line display
    • 1: PSNR is calculated using the input bit-depth (this one's the default) πŸ’œ
    • 2: PSNR is calculated using the stream bit-depth
    • if you don't specify an argument, it just takes the default option 🫢
  • --webm β€” output WebM 🎞️ this is the default when WebM IO is enabled
  • --ivf β€” output IVF πŸ“Ό
  • --obu β€” output OBU 🧩
  • --q-hist=<arg> β€” show a quantizer histogram with n-buckets πŸ“Š
  • --rate-hist=<arg> β€” show a rate histogram with n-buckets πŸ“‰
  • --disable-warnings β€” turn off the warnings about potentially incorrect encode settings πŸ™ˆ
  • -y, --disable-warning-prompt β€” display the warnings, but don't stop and ask you to continue πŸ’–
  • --test-decode=<arg> β€” test for an encode/decode mismatch πŸ§ͺ
    • possible values: off, fatal, warn
  • --enable-obmc=<arg> β€” flips OBMC on or off πŸ¦‹ 0 is false and 1 is true (default), so you get to pick your vibe.
  • --enable-overlay=<arg> β€” turns on coding overlay frames πŸŽ€ 0 means false and 1 means true (default).
  • --enable-palette=<arg> β€” lets you switch palette prediction mode on or off 🌸 0 is false and 1 is true (default).
  • --enable-intrabc=<arg> β€” controls intra block copy prediction mode ✨ 0 is false and 1 is true (default).
  • --enable-angle-delta=<arg> β€” toggles intra angle delta πŸ’œ 0 is false and 1 is true (default).
  • --disable-trellis-quant=<arg> β€” trellis optimisation of quantised coefficients, which you can turn off if you want πŸ”₯ 0 is false, 1 is true, 2 is true for rd search, and 3 is true for estimate yrd search. The default is 3, so be careful, it's giving "already handled" πŸ’…
  • --enable-qm=<arg> β€” enables quantisation matrices 🌈 0 is false (default), 1 is true.
  • --qm-min=<arg> β€” the minimum quant matrix flatness, from 0..15. The default is 8 πŸ“
  • --qm-max=<arg> β€” the maximum quant matrix flatness, from 0..15. The default is 15 πŸ“
  • --reduced-tx-type-set=<arg> β€” uses a reduced set of transform types 🧚
  • --use-intra-dct-only=<arg> β€” only uses DCT for INTRA modes 🌸
  • --use-inter-dct-only=<arg> β€” only uses DCT for INTER modes 🌸
  • --use-intra-default-tx-only=<arg> β€” only uses Default-transform for INTRA modes 🫢
  • --quant-b-adapt=<arg> β€” uses adaptive quantize_b ✨
  • --coeff-cost-upd-freq=<arg> β€” how often the coeff costs get updated πŸ’– 0 is SB, 1 is SB Row per Tile, 2 is Tile, and 3 is Off.
  • --mode-cost-upd-freq=<arg> β€” how often the mode costs get updated πŸ’– 0 is SB, 1 is SB Row per Tile, 2 is Tile, and 3 is Off.
  • --mv-cost-upd-freq=<arg> β€” how often the mv costs get updated πŸ’– 0 is SB, 1 is SB Row per Tile, 2 is Tile, and 3 is Off.
  • --frame-parallel=<arg> β€” turns on frame parallel decodability features πŸ‘‘ 0 is false (default), 1 is true.
  • --error-resilient=<arg> β€” enables error resilient features πŸ›‘οΈ 0 is false (default), 1 is true.
  • --aq-mode=<arg> β€” adaptive quantisation mode πŸ’… 0 is off (default), 1 is variance, 2 is complexity, and 3 is cyclic refresh.
  • --deltaq-mode=<arg> β€” delta qindex mode 🌈 0 is off, 1 is deltaq objective (default), 2 is deltaq placeholder, 3 is key frame visual quality, and 4 is user rating based visual quality optimization. This one requires --enable-tpl-model=1, so don't skip that part, bestie πŸ™ˆ
  • --deltaq-strength=<arg> β€” the deltaq strength for --deltaq-mode=4, in (%) πŸ¦‹
  • --delta-lf-mode=<arg> β€” enables delta-lf-mode 🧚 0 is off (default), 1 is on.
  • --frame-boost=<arg> β€” enables frame periodic boost ⭐ 0 is off (default), 1 is on.
  • --noise-sensitivity=<arg> β€” noise sensitivity, measured in frames to blur 🌸
  • --tune-content=<arg> β€” tunes the content type. Your choices are default, screen, and film πŸŽ€
  • --cdf-update-mode=<arg> β€” the CDF update mode for entropy coding πŸ’œ 0 is no CDF update, 1 is update CDF on all frames (default), and 2 is selectively update CDF on some frames.
  • --color-primaries=<arg> β€” the colour primaries (CICP) of your input content 🌈 Pick from bt709, unspecified, bt601, bt470m, bt470bg, smpte240, film, bt2020, xyz, smpte431, smpte432, or ebu3213.
  • --transfer-characteristics=<arg> β€” the transfer characteristics (CICP) of your input content ✨ Pick from unspecified, bt709, bt470m, bt470bg, bt601, smpte240, lin, log100, log100sq10, iec61966, bt1361, srgb, bt2020-10bit, bt2020-12bit, smpte2084, hlg, or smpte428.
  • --matrix-coefficients=<arg> β€” the matrix coefficients (CICP) of your input content 🫢 Pick from identity, bt709, unspecified, fcc73, bt470bg, bt601, smpte240, ycgco, bt2020ncl, bt2020cl, smpte2085, chromncl, chromcl, or ictcp.
  • --chroma-sample-position=<arg> β€” the chroma sample position, when chroma 4:2:0 is signalled πŸ“ Pick from unknown, vertical, or colocated.
  • --min-gf-interval=<arg> β€” the min gf/arf frame interval. The default is 0, which means the built-in behaviour 🧚
  • --max-gf-interval=<arg> β€” the max gf/arf frame interval. The default is 0, which means the built-in behaviour 🧚
  • --gf-min-pyr-height=<arg> β€” the min height for the GF group pyramid structure, from 0 (default) to 5 🌈
  • --gf-max-pyr-height=<arg> β€” the maximum height for the GF group pyramid structure, from 0 to 5 (default) 🌈
  • --sb-size=<arg> β€” the superblock size you want to use πŸ‘‘ Pick from dynamic, 64, or 128.
  • --num-tile-groups=<arg> β€” the maximum number of tile groups. The default is 1 πŸŽ€
  • --mtu-size=<arg> β€” the MTU size for a tile group. The default is 0, which means no MTU targeting. This one overrides the maximum number of tile groups, so it takes priority πŸ’…
  • --timing-info=<arg> β€” signals timing info in the bitstream. Heads up, model only works with no hidden frames and no super-res yet πŸ’€ Pick from unspecified, constant, or model.
  • --film-grain-test=<arg> β€” film grain test vectors 🎬 0 is none (default), 1 is test-1, 2 is test-2, all the way up to 16 for test-16 ✨
  • --film-grain-table=<arg> β€” the path to a file holding film grain parameters πŸ“‚
  • --denoise-noise-level=<arg> β€” how much noise to remove, from 0 (don't denoise) up to 50 🧹
  • --denoise-block-size=<arg> β€” the denoise block size. The default is 32 🧹
  • --enable-dnl-denoising=<arg> β€” applies denoising to the frame being encoded when denoise-noise-level is enabled. 0 is false and 1 is true (default) 🫧
  • --max-reference-frames=<arg> β€” the maximum number of reference frames allowed per frame, from 3 to 7 (default) πŸ¦‹
  • --reduced-reference-set=<arg> β€” uses a reduced set of single and compound references. 0 is off (default), 1 is on 🌸
  • --enable-ref-frame-mvs=<arg> β€” enables temporal mv prediction. The default is 1 πŸ’œ
  • --target-seq-level-idx=<arg> β€” the target sequence level index. Your values look like "ABxy", where AB is the Operating point (OP) index and xy is the target level index for that OP. For example, "0" means target level index 0 (2.0) for the 0th OP, and "1019" means target level index 19 (6.3) for the 10th OP 🧚
  • --set-tier-mask=<arg> β€” a bit mask that says which tier each of the 32 possible operating points conforms to. A bit value of 0 (default) means Main Tier, and 1 means High Tier πŸ‘‘
  • --min-cr=<arg> β€” sets the minimum compression ratio, using integer values. The default is 0. If it's non-zero, the encoder tries to keep each frame's compression ratio higher than the given value divided by 100 πŸ“
  • --vbr-corpus-complexity-lap=<arg> β€” sets the average corpus complexity per mb for single pass VBR using lap, from 0..10000. The default is 0 🌈
  • --input-chroma-subsampling-x=<arg> β€” the chroma subsampling x value πŸŽ€
  • --input-chroma-subsampling-y=<arg> β€” the chroma subsampling y value πŸŽ€
  • --dv-cost-upd-freq=<arg> β€” how often the dv costs get updated πŸ’– 0 is SB, 1 is SB Row per Tile, 2 is Tile, and 3 is Off.
  • --partition-info-path=<arg> β€” the path used to read and write partition information πŸ“‚
  • --enable-rate-guide-deltaq=<arg> β€” enables rate guide deltaq with 1, and it's off by default with 0. It requires --deltaq-mode=3. If it's turned on, it also needs an input file given through --rate-distribution-info πŸ”₯
  • --rate-distribution-info=<arg> β€” the rate distribution information input. It requires --enable-rate-guide-deltaq=1 πŸ“Š
  • --enable-directional-intra=<arg> β€” enables directional intra prediction modes. 0 is false and 1 is true (default) 🧭
  • --enable-tx-size-search=<arg> β€” enables transform size search, which finds the best size for each block. If it's false, transforms always use the largest possible size. 0 is false and 1 is true (default). This gets ignored in non rd pick mode in real-time coding πŸ¦‹
  • --loopfilter-control=<arg> β€” controls loop filtering 🌊 0 disables the loopfilter for all frames, 1 enables it for all frames (default), 2 disables it for non-reference frames, and 3 disables it for frames with low motion.
  • --auto-intra-tools-off=<arg> β€” automatically turns off several intra coding tools for allintra mode. It only takes effect if --deltaq-mode=3 πŸ€–
  • -p <arg>, --passes=<arg> β€” the number of passes, which can be 1, 2, or 3 πŸƒβ€β™€οΈ
  • --two-pass-output=<arg> β€” the output file for the first two passes during three-pass encoding πŸ“
  • -spf <arg>, --second-pass-log=<arg> β€” the log file from the second pass πŸ“
  • --fwd-kf-dist=<arg> β€” sets the distance between forward keyframes. A value of -1 (default) means no repetitive forward keyframes πŸ”‘
  • --strict-level-conformance=<arg> β€” when set to 1, the encoder exits when it fails to encode to a given target level πŸšͺ
  • --sb-qp-sweep=<arg> β€” when set to 1, enables the superblock level qp sweep for a given lambda, so the rdcost gets minimised 🧹
  • --dist-metric=<arg> β€” the distortion metric used for in-block optimisation. Pick psnr or qm-psnr πŸ“
  • --kf-max-pyr-height=<arg> β€” the maximum height of the pyramid structure used for the GOP that starts with a key frame, from -1 to 5. At the default of -1, it doesn't do anything. The actual maximum pyramid height will be the minimum of this value and the value of gf_max_pyr_height 🌈
  • --timebase β€” the stream timebase πŸ•°οΈ This sets the precision of timestamps in the output, expressed in fractional seconds. The default is 1/1000.

🧚 Included encoders 🧚

  • av1 β€” the AOMedia Project AV1 Encoder v3.7.0, and it's the default πŸ‘‘

Use --codec if you want to switch to a non-default encoder πŸ’œ


aomenc 3.7.0~rc3, August 2023 is the version and date stamp for this page, so now you know exactly which build I've been obsessing over! βœ¨πŸ¦‹πŸ’–