---
name: "aomenc"
section: "1"
platform: "linux"
package: "aom-tools"
version: "3.12.1-1+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/aomenc"
---

# aomenc(1)

AOMedia Project AV1 Encoder

## NAME

aomenc - AOMedia Project AV1 Encoder

## SYNOPSIS

**aomenc** *\<options\> -o dst\_filename src\_filename*

## OPTIONS

- **--help**

  Show usage options and exit

- **-c** \<arg\>, **--cfg=**\<arg\>

  Config file to use

- **-D**, **--debug**

  Debug mode (makes output deterministic)

- **-o** \<arg\>, **--output=**\<arg\>

  Output filename

- **--codec=**\<arg\>

  Codec to use

- **-p** \<arg\>, **--passes=**\<arg\>

  Number of passes (1/2/3)

- **--pass=**\<arg\>

  Pass to execute (1/2/3)

- **--fpf=**\<arg\>

  First pass statistics file name

- **--limit=**\<arg\>

  Stop encoding after n input frames

- **--skip=**\<arg\>

  Skip the first n input frames

- **--good**

  Use Good Quality Deadline

- **--rt**

  Use Realtime Quality Deadline

- **--allintra**

  Use all intra mode

- **-q**, **--quiet**

  Do not print encode progress

- **-v**, **--verbose**

  Show encoder parameters

- **--psnr=**\<arg\>

  Show PSNR in status line (0: Disable PSNR status line display, 1: PSNR calculated using input bit-depth (default), 2: PSNR calculated using stream bit-depth); takes default option when arguments are not specified

- **--webm**

  Output WebM (default when WebM IO is enabled)

- **--ivf**

  Output IVF

- **--obu**

  Output OBU

- **--q-hist=**\<arg\>

  Show quantizer histogram (n-buckets)

- **--rate-hist=**\<arg\>

  Show rate histogram (n-buckets)

- **--disable-warnings**

  Disable warnings about potentially incorrect encode settings

- **-y**, **--disable-warning-prompt**

  Display warnings, but do not prompt user to continue

- **--test-decode=**\<arg\>

  Test encode/decode mismatch

-

  off, fatal, warn

### Encoder Global Options:

- **--nv12**

  Input file is NV12

- **--yv12**

  Input file is YV12

- **--i420**

  Input file is I420 (default)

- **--i422**

  Input file is I422

- **--i444**

  Input file is I444

- **-u** \<arg\>, **--usage=**\<arg\>

  Usage profile number to use (0: good, 1: rt, 2: allintra)

- **-t** \<arg\>, **--threads=**\<arg\>

  Max number of threads to use

- **--profile=**\<arg\>

  Bitstream profile number to use

- **-w** \<arg\>, **--width=**\<arg\>

  Frame width

- **-h** \<arg\>, **--height=**\<arg\>

  Frame height

- **--forced\_max\_frame\_width=**\<arg\>

  Maximum frame width value to force

- **--forced\_max\_frame\_height=**\<arg\>

  Maximum frame height value to force

- **--stereo-mode=**\<arg\>

  Stereo 3D video format

-

  mono, left-right, bottom-top, top-bottom, right-left

- **--timebase=**\<arg\>

  Output timestamp precision (fractional seconds)

- **--fps=**\<arg\>

  Stream frame rate (rate/scale)

- **--global-error-resilient=**\<arg\>

  Enable global error resiliency features

- **-b** \<arg\>, **--bit-depth=**\<arg\>

  Bit depth for codec 8, 10, 12

- **--input-bit-depth=**\<arg\>

  Bit depth of input

- **--lag-in-frames=**\<arg\>

  Max number of frames to lag

- **--large-scale-tile=**\<arg\>

  Large scale tile coding (0: off (default), 1: on (ivf output only))

- **--monochrome**

  Monochrome video (no chroma planes)

- **--full-still-picture-hdr**

  Use full header for still picture

- **--use-16bit-internal**

  Force use of 16-bit pipeline

- **--annexb=**\<arg\>

  Save as Annex-B

### Rate Control Options:

- **--drop-frame=**\<arg\>

  Temporal resampling threshold (buf %)

- **--resize-mode=**\<arg\>

  Frame resize mode (0: off (default), 1: fixed, 2: random, 3: dynamic)

- **--resize-denominator=**\<arg\>

  Frame resize denominator

- **--resize-kf-denominator=**\<arg\>

  Frame resize keyframe denominator

- **--superres-mode=**\<arg\>

  Frame super-resolution mode (0: disabled (default), 1: fixed, 2: random, 3: qthresh, 4: auto)

- **--superres-denominator=**\<arg\>

  Frame super-resolution denominator

- **--superres-kf-denominator=**\<arg\>

  Frame super-resolution keyframe denominator

- **--superres-qthresh=**\<arg\>

  Frame super-resolution qindex threshold

-

  **--superres-kf-qthresh=**\<arg\> Frame super-resolution keyframe qindex threshold **--end-usage=**\<arg\>           Rate control mode

-

  vbr, cbr, cq, q

- **--target-bitrate=**\<arg\>

  Bitrate (kbps)

- **--min-q=**\<arg\>

  Minimum (best) quantizer

- **--max-q=**\<arg\>

  Maximum (worst) quantizer

- **--undershoot-pct=**\<arg\>

  Datarate undershoot (min) target (%)

- **--overshoot-pct=**\<arg\>

  Datarate overshoot (max) target (%)

- **--buf-sz=**\<arg\>

  Client buffer size (ms)

- **--buf-initial-sz=**\<arg\>

  Client initial buffer size (ms)

- **--buf-optimal-sz=**\<arg\>

  Client optimal buffer size (ms)

- **--bias-pct=**\<arg\>

  CBR/VBR bias (0=CBR, 100=VBR)

- **--minsection-pct=**\<arg\>

  GOP min bitrate (% of target)

- **--maxsection-pct=**\<arg\>

  GOP max bitrate (% of target)

### Keyframe Placement Options:

- **--enable-fwd-kf=**\<arg\>

  Enable forward reference keyframes

- **--kf-min-dist=**\<arg\>

  Minimum keyframe interval (frames)

- **--kf-max-dist=**\<arg\>

  Maximum keyframe interval (frames)

- **--disable-kf**

  Disable keyframe placement

- **--sframe-dist=**\<arg\>

  S-Frame interval (frames)

- **--sframe-mode=**\<arg\>

  S-Frame insertion mode (1..2)

### AV1 Specific Options:

- **--cpu-used=**\<arg\>

  Speed setting (0..6 in good mode, 5..10 in realtime mode, 0..9 in all intra mode)

- **--auto-alt-ref=**\<arg\>

  Enable automatic alt reference frames

- **--sharpness=**\<arg\>

  Bias towards block sharpness in rate-distortion optimization of transform coefficients (0..7), default is 0

- **--static-thresh=**\<arg\>

  Motion detection threshold

- **--row-mt=**\<arg\>

  Enable row based multi-threading (0: off, 1: on (default))

- **--fp-mt=**\<arg\>

  Enable frame parallel multi-threading (0: off (default), 1: on)

- **--tile-columns=**\<arg\>

  Number of tile columns to use, log2

- **--tile-rows=**\<arg\>

  Number of tile rows to use, log2

- **--enable-tpl-model=**\<arg\>

  RDO based on frame temporal dependency (0: off, 1: backward source based); required for deltaq mode

- **--enable-keyframe-filtering=**\<arg\>

  Apply temporal filtering on key frame (0: no filter, 1: filter without overlay (default), 2: filter with overlay - experimental, may break random access in players)

- **--arnr-maxframes=**\<arg\>

  AltRef max frames (0..15)

- **--arnr-strength=**\<arg\>

  AltRef filter strength (0..6)

- **--tune=**\<arg\>

  Distortion metric tuned with

-

  psnr, ssim, vmaf\_with\_preprocessing, vmaf\_without\_preprocessing, vmaf, vmaf\_neg, butteraugli, vmaf\_saliency\_map

- **--cq-level=**\<arg\>

  Constant/Constrained Quality level

- **--max-intra-rate=**\<arg\>

  Max I-frame bitrate (pct)

- **--max-inter-rate=**\<arg\>

  Max P-frame bitrate (pct)

- **--gf-cbr-boost=**\<arg\>

  Boost for Golden Frame in CBR mode (pct)

- **--lossless=**\<arg\>

  Lossless mode (0: false (default), 1: true)

- **--enable-cdef=**\<arg\>

  Enable the constrained directional enhancement filter (0: false, 1: true (default), 2: disable for non-reference frames)

- **--enable-restoration=**\<arg\>

  Enable the loop restoration filter (0: false (default in realtime mode), 1: true (default in non-realtime mode))

- **--enable-rect-partitions=**\<arg\>

  Enable rectangular partitions (0: false, 1: true (default))

- **--enable-ab-partitions=**\<arg\>

  Enable ab partitions (0: false, 1: true (default))

- **--enable-1to4-partitions=**\<arg\>

  Enable 1:4 and 4:1 partitions (0: false, 1: true (default))

- **--min-partition-size=**\<arg\>

  Set min partition size (4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128); with 4k+ resolutions or higher speed settings, min partition size will have a minimum of 8

- **--max-partition-size=**\<arg\>

  Set max partition size (4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128)

- **--enable-dual-filter=**\<arg\>

  Enable dual filter (0: false, 1: true (default))

- **--enable-chroma-deltaq=**\<arg\>

  Enable chroma delta quant (0: false (default), 1: true)

- **--enable-intra-edge-filter=**\<arg\>

  Enable intra edge filtering (0: false, 1: true (default))

- **--enable-order-hint=**\<arg\>

  Enable order hint (0: false, 1: true (default))

- **--enable-tx64=**\<arg\>

  Enable 64-pt transform (0: false, 1: true (default))

- **--enable-flip-idtx=**\<arg\>

  Enable extended transform type (0: false, 1: true (default)) including FLIPADST\_DCT, DCT\_FLIPADST, FLIPADST\_FLIPADST, ADST\_FLIPADST, FLIPADST\_ADST, IDTX, V\_DCT, H\_DCT, V\_ADST, H\_ADST, V\_FLIPADST, H\_FLIPADST

- **--enable-rect-tx=**\<arg\>

  Enable rectangular transform (0: false, 1: true (default))

- **--enable-dist-wtd-comp=**\<arg\>

  Enable distance-weighted compound (0: false, 1: true (default))

- **--enable-masked-comp=**\<arg\>

  Enable masked (wedge/diff-wtd) compound (0: false, 1: true (default))

- **--enable-onesided-comp=**\<arg\>

  Enable one sided compound (0: false, 1: true (default))

- **--enable-interintra-comp=**\<arg\>

  Enable interintra compound (0: false, 1: true (default))

- **--enable-smooth-interintra=**\<arg\>

  Enable smooth interintra mode (0: false, 1: true (default))

- **--enable-diff-wtd-comp=**\<arg\>

  Enable difference-weighted compound (0: false, 1: true (default))

- **--enable-interinter-wedge=**\<arg\>

  Enable interinter wedge compound (0: false, 1: true (default))

- **--enable-interintra-wedge=**\<arg\>

  Enable interintra wedge compound (0: false, 1: true (default))

- **--enable-global-motion=**\<arg\>

  Enable global motion (0: false, 1: true (default))

- **--enable-warped-motion=**\<arg\>

  Enable local warped motion (0: false, 1: true (default))

-

  **--enable-filter-intra=**\<arg\> Enable filter intra prediction mode (0: false, 1: true (default)) **--enable-smooth-intra=**\<arg\> Enable smooth intra prediction modes (0: false, 1: true (default)) **--enable-paeth-intra=**\<arg\>  Enable Paeth intra prediction mode (0: false, 1: true (default)) **--enable-cfl-intra=**\<arg\>    Enable chroma from luma intra prediction mode (0: false, 1: true (default)) **--enable-diagonal-intra=**\<arg\>

-

  Enable diagonal (D45 to D203) intra prediction modes, which are a subset of directional modes; has no effect if enable-directional-intra is 0 (0: false, 1: true (default))

- **--force-video-mode=**\<arg\>

  Force video mode even for a single frame (0: false (default), 1: true)

- **--enable-obmc=**\<arg\>

  Enable OBMC (0: false, 1: true (default))

- **--enable-overlay=**\<arg\>

  Enable coding overlay frames (0: false, 1: true (default))

- **--enable-palette=**\<arg\>

  Enable palette prediction mode (0: false, 1: true (default))

- **--enable-intrabc=**\<arg\>

  Enable intra block copy prediction mode (0: false, 1: true (default))

- **--enable-angle-delta=**\<arg\>

  Enable intra angle delta (0: false, 1: true (default))

- **--disable-trellis-quant=**\<arg\>

  Disable trellis optimization of quantized coefficients (0: false 1: true  2: true for rd search 3: true for estimate yrd search (default))

- **--enable-qm=**\<arg\>

  Enable quantisation matrices (0: false (default), 1: true)

- **--qm-min=**\<arg\>

  Min quant matrix flatness (0..15), default is 8

- **--qm-max=**\<arg\>

  Max quant matrix flatness (0..15), default is 15

-

  **--reduced-tx-type-set=**\<arg\> Use reduced set of transform types **--use-intra-dct-only=**\<arg\>  Use DCT only for INTRA modes **--use-inter-dct-only=**\<arg\>  Use DCT only for INTER modes **--use-intra-default-tx-only=**\<arg\>

-

  Use Default-transform only for INTRA modes

- **--quant-b-adapt=**\<arg\>

  Use adaptive quantize\_b

-

  **--coeff-cost-upd-freq=**\<arg\> Update freq for coeff costs. 0: SB, 1: SB Row per Tile, 2: Tile, 3: Off **--mode-cost-upd-freq=**\<arg\>  Update freq for mode costs. 0: SB, 1: SB Row per Tile, 2: Tile, 3: Off **--mv-cost-upd-freq=**\<arg\>    Update freq for mv costs. 0: SB, 1: SB Row per Tile, 2: Tile, 3: Off **--frame-parallel=**\<arg\>      Enable frame parallel decodability features (0: false (default), 1: true) **--error-resilient=**\<arg\>     Enable error resilient features (0: false (default), 1: true) **--aq-mode=**\<arg\>             Adaptive quantization mode (0: off (default), 1: variance 2: complexity, 3: cyclic refresh) **--deltaq-mode=**\<arg\>         Delta qindex mode (0: off, 1: deltaq objective (default), 2: deltaq placeholder, 3: key frame visual quality, 4: user rating based visual quality optimization); requires **--enable-tpl-model**=*1* **--deltaq-strength=**\<arg\>     Deltaq strength for **--deltaq-mode**=*4* (%) **--delta-lf-mode=**\<arg\>       Enable delta-lf-mode (0: off (default), 1: on) **--frame-boost=**\<arg\>         Enable frame periodic boost (0: off (default), 1: on) **--noise-sensitivity=**\<arg\>   Noise sensitivity (frames to blur) **--tune-content=**\<arg\>        Tune content type

-

  default, screen, film

- **--cdf-update-mode=**\<arg\>

  CDF update mode for entropy coding (0: no CDF update, 1: update CDF on all frames (default), 2: selectively update CDF on some frames)

- **--color-primaries=**\<arg\>

  Color primaries (CICP) of input content:

-

  bt709, unspecified, bt601, bt470m, bt470bg, smpte240, film, bt2020, xyz, smpte431, smpte432, ebu3213

- **--transfer-characteristics=**\<arg\>

  Transfer characteristics (CICP) of input content:

-

  unspecified, bt709, bt470m, bt470bg, bt601, smpte240, lin, log100, log100sq10, iec61966, bt1361, srgb, bt2020-10bit, bt2020-12bit, smpte2084, hlg, smpte428

- **--matrix-coefficients=**\<arg\> Matrix coefficients (CICP) of input content:

  identity, bt709, unspecified, fcc73, bt470bg, bt601, smpte240, ycgco, bt2020ncl, bt2020cl, smpte2085, chromncl, chromcl, ictcp

- **--chroma-sample-position=**\<arg\>

  The chroma sample position when chroma 4:2:0 is signaled:

-

  unknown, vertical, colocated

- **--min-gf-interval=**\<arg\>

  Min gf/arf frame interval (default 0, indicating in-built behavior)

- **--max-gf-interval=**\<arg\>

  Max gf/arf frame interval (default 0, indicating in-built behavior)

- **--gf-min-pyr-height=**\<arg\>

  Min height for GF group pyramid structure (0 (default) to 5)

- **--gf-max-pyr-height=**\<arg\>

  Maximum height for GF group pyramid structure (0 to 5 (default))

- **--sb-size=**\<arg\>

  Superblock size to use

-

  dynamic, 64, 128

- **--num-tile-groups=**\<arg\>

  Maximum number of tile groups, default is 1

- **--mtu-size=**\<arg\>

  MTU size for a tile group, default is 0 (no MTU targeting), overrides maximum number of tile groups

- **--timing-info=**\<arg\>

  Signal timing info in the bitstream (model only works for no hidden frames, no super-res yet):

-

  unspecified, constant, model

- **--film-grain-test=**\<arg\>

  Film grain test vectors (0: none (default), 1: test-1  2: test-2, ... 16: test-16)

- **--film-grain-table=**\<arg\>

  Path to file containing film grain parameters

-

  **--denoise-noise-level=**\<arg\> Amount of noise (from 0 = don't denoise, to 50) **--denoise-block-size=**\<arg\>  Denoise block size (default = 32) **--enable-dnl-denoising=**\<arg\>

-

  Apply denoising to the frame being encoded when denoise-noise-level is enabled (0: false, 1: true (default))

- **--max-reference-frames=**\<arg\>

  Maximum number of reference frames allowed per frame (3 to 7 (default))

- **--reduced-reference-set=**\<arg\>

  Use reduced set of single and compound references (0: off (default), 1: on)

- **--enable-ref-frame-mvs=**\<arg\>

  Enable temporal mv prediction (default is 1)

- **--target-seq-level-idx=**\<arg\>

  Target sequence level index. Possible values are in the form of "ABxy". AB: Operating point (OP) index, xy: Target level index for the OP. E.g. "0" means target level index 0 (2.0) for the 0th OP, "1019" means target level index 19 (6.3) for the 10th OP.

- **--set-tier-mask=**\<arg\>

  Set bit mask to specify which tier each of the 32 possible operating points conforms to. Bit value 0 (default): Main Tier, 1: High Tier.

- **--min-cr=**\<arg\>

  Set minimum compression ratio. Take integer values. Default is 0. If non-zero, encoder will try to keep the compression ratio of each frame to be higher than the given value divided by 100.

- **--vbr-corpus-complexity-lap=**\<arg\>

  Set average corpus complexity per mb for single pass VBR using lap. (0..10000), default is 0

- **--input-chroma-subsampling-x=**\<arg\>

  Chroma subsampling x value

- **--input-chroma-subsampling-y=**\<arg\>

  Chroma subsampling y value

- **--dv-cost-upd-freq=**\<arg\>

  Update freq for dv costs. 0: SB, 1: SB Row per Tile, 2: Tile, 3: Off

-

  **--partition-info-path=**\<arg\> Partition information read and write path **--enable-rate-guide-deltaq=**\<arg\>

-

  Enable rate guide deltaq (1), by default off (0). It requires **--deltaq-mode**=*3*. If turned on, it requires an input file specified by **--rate-distribution-info**.

- **--rate-distribution-info=**\<arg\>

  Rate distribution information input.It requires **--enable-rate-guide-deltaq**=*1*.

- **--enable-directional-intra=**\<arg\>

  Enable directional intra prediction modes (0: false, 1: true (default))

- **--enable-tx-size-search=**\<arg\>

  Enable transform size search to find the best size for each block. If false, transforms always have the largest possible size (0: false, 1: true (default)). Ignored in non rd pick mode in real-time coding.

- **--loopfilter-control=**\<arg\>

  Control loop filtering (0: Loopfilter disabled for all frames, 1: Enable loopfilter for all frames (default), 2: Disable loopfilter for non-reference frames, 3: Disable loopfilter for frames with low motion)

- **--auto-intra-tools-off=**\<arg\>

  Automatically turn off several intra coding tools for allintra mode; only in effect if **--deltaq-mode**=*3*

- **-p** \<arg\>, **--passes=**\<arg\>

  Number of passes (1/2/3)

- **--two-pass-output=**\<arg\>

  The output file for the first two passes for three-pass encoding

- **-spf** \<arg\>, **--second-pass-log=**\<arg\>

  Log file from second pass

- **--fwd-kf-dist=**\<arg\>

  Set distance between forward keyframes. A value of **-1** (default) means no repetitive forward keyframes.

- **--strict-level-conformance=**\<arg\>

  When set to 1, exit the encoder when it fails to encode to a given target level

- **--sb-qp-sweep=**\<arg\>

  When set to 1, enable the superblock level qp sweep for a given lambda to minimize the rdcost.

- **--dist-metric=**\<arg\>

  Distortion metric to use for in-block optimization

-

  psnr, qm-psnr

- **--kf-max-pyr-height=**\<arg\>

  Maximum height of pyramid structure used for the GOP starting with a key frame (**-1** to 5). When set to **-1** (default), it does not have any effect. The actual maximum pyramid height will be the minimum of this value and the value of gf\_max\_pyr\_height.

### Stream timebase (--timebase):

-

  The desired precision of timestamps in the output, expressed in fractional seconds. Default is 1/1000.

Included encoders:

- av1

  \- AOMedia Project AV1 Encoder v3.7.0 (default)

-

  Use **--codec** to switch to a non-default encoder.
