AVIFENC(1)

NAME

avifenc - compress an image file to an AVIF file

SYNOPSIS

avifenc [options] input.[jpg|jpeg|png|y4m] output.avif

DESCRIPTION

avifenc compresses an image file to an AVIF file. Input format can be either JPEG, PNG or YUV4MPEG2 (Y4M).

OPTIONS

-h, --help
    Show syntax help.

-V, --version
    Show the version number.

-j, --jobs J
    Number of jobs (worker threads). 1 or less means single-threaded. Default is 1. Use all to use all available cores.

-o, --output FILENAME
    Instead of using the last filename given as output, use this filename.

-l, --lossless
    Set all defaults to encode losslessly, and emit warnings when settings/input don’t allow for it.

-d, --depth D
    Output depth. This is available if the input format is JPEG/PNG, and for y4m or stdin, depth is retained.

    Possible values are:

    •   8

    •   10

    •   12

-y, --yuv FORMAT
    Output format. Ignored for y4m or stdin (y4m format is retained). For JPEG, auto honors the JPEG’s internal format, if possible. For all other cases, auto defaults to 444.

    Possible values are:

    •   auto (default)

    •   444

    •   422

    •   420

    •   400

-p, --premultiply
    Premultiply color by the alpha channel and signal this in the AVIF.

--sharpyuv
    Use sharp RGB to YUV420 conversion (if supported). Ignored for y4m or if output is not 420.

--stdin
    Read y4m frames from stdin instead of files. No input filenames allowed, must be set before specifying the output filename.

--cicp, --nclx P/T/M
    Specify CICP values (nclx colr box) by 3 raw numbers. Use 2 for any you wish to leave unspecified.

    •   P = color primaries

    •   T = transfer characteristics

    •   M = matrix coefficients

-r, --range RANGE
    YUV range. This is available if the input format is JPEG/PNG, and for y4m or stdin, range is retained.

    Possible values are:

    •   full, f (default)

    •   limited, l

--min Q
    Set min quantizer for color. Possible values are in the range 0-63, where 0 is lossless.

--max Q
    Set max quantizer for color. Possible values are in the range 0-63, where 0 is lossless.

--minalpha Q
    Set min quantizer for alpha. Possible values are in the range 0-63, where 0 is lossless.

--maxalpha Q
    Set max quantizer for alpha. Possible values are in the range 0-63, where 0 is lossless.

--tilerowslog2 R
    Set log2 of number of tile rows. Possible values are in the range 0-6. Default is 0.

--tilecolslog2 C
    Set log2 of number of tile columns. Possible values are in the range 0-6. Default is 0.

--autotiling
    Set --tilerowslog2 and --tilecolslog2 automatically.

-g, --grid MxN
    Encode a single-image grid AVIF with M cols and N rows. Either supply MxN images of the same width, height and depth, or a single image that can be evenly split into the MxN grid and follow AVIF grid image restrictions. The grid will adopt the color profile of the first image supplied. Possible values for M and N are in the range 1-256.

-s, --speed S
    Encoder speed. Default is 6.

    Possible values are:

    •   0-10 (slowest-fastest)

    •   default, d (codec internal defaults)

-c, --codec C
    AV1 codec to use. Possible values depend on the codecs enabled at build time (see --help or --version for the available codecs). Default is auto-selected from the available codecs.

    Possible values are:

    •   aom

    •   rav1e

    •   svt

--exif FILENAME
    Provide an Exif metadata payload to be associated with the primary item (implies –ignore-exif).

--xmp FILENAME
    Provide an XMP metadata payload to be associated with the primary item (implies –ignore-xmp).

--icc FILENAME
    Provide an ICC profile payload to be associated with the primary item (implies –ignore-icc).

-a, --advanced KEY[=VALUE]
    Pass an advanced, codec-specific key/value string pair directly to the codec. avifenc will warn on any unused by the codec. The aom-specific advanced options can be used if the AOM codec is available (see --help for details).

--duration D
    Set all following frame durations (in timescales) to D. Can be set multiple times (before supplying each filename). Default is 1.

--timescale, --fps V
    Set the timescale to V. If all frames are 1 timescale in length, this is equivalent to frames per second. If neither duration nor timescale are set, avifenc will attempt to use the framerate stored in a y4m header, if present. Default is 30.

-k, --keyframe INTERVAL
    Set the forced keyframe interval (maximum frames between keyframes). Set to 0 to disable. Default is 0.

--ignore-exif
    If the input file contains embedded Exif metadata, ignore it (no-op if absent).

--ignore-xmp
    If the input file contains embedded XMP metadata, ignore it (no-op if absent).

--ignore-icc
    If the input file contains an embedded ICC profile, ignore it (no-op if absent).

--pasp H,V
    Add pasp property (aspect ratio).

    •   H = horizontal spacing

    •   V = vertical spacing

--crop CROPX,CROPY,CROPW,CROPH
    Add clap property (clean aperture), but calculated from a crop rectangle.

    •   CROPX = X-axis of a crop rectangle

    •   CROPY = Y-axis of a crop rectangle

    •   CROPW = width of a crop rectangle

    •   CROPH = height of a crop rectangle

--clap WN,WD,HN,HD,HON,HOD,VON,VOD
    Add clap property (clean aperture).

    •   WN = numerator of width

    •   WD = denominator of width

    •   HN = numerator of height

    •   HD = denominator of height

    •   HON = numerator of horizontal offset

    •   HOD = denominator of horizontal offset

    •   VON = numerator of vertical offset

    •   VOD = denominator of vertical offset

--irot ANGLE
    Add irot property (rotation). Possible values are in the range 0-3, and makes (90 * ANGLE) degree rotation anti-clockwise.

--imir MODE
    Add imir property (mirroring).

    Note: Rotation is applied before mirroring at rendering.

    Possible values are:

    •   0 (top-to-bottom)

    •   1 (left-to-right)

--  Signals the end of options. Everything after this is interpreted as file names.

EXAMPLES

Compress a PNG file to an AVIF file:
    $ avifenc input.png output.avif

REPORTING BUGS

Bugs can be reported on GitHub at:
    <https://github.com/AOMediaCodec/libavif/issues>

SEE ALSO

avifdec(1)