heif-enc libheif version: 1.23.7 ----------------------------------- Usage: heif-enc [options] ... When specifying multiple source images, they will all be saved into the same HEIF/AVIF file. Some encoders (x265, aom) let you pass-through any parameters by prefixing them with the encoder name. For example, you may pass any x265 parameter by prefixing it with 'x265:'. For example, to set the 'ctu' parameter, you will have to set 'x265:ctu' in libheif (e.g.: -p x265:ctu=64). Note that when using the prefix, libheif cannot tell you which parameters and values are supported. Options: -h, --help show help -v, --version show version -o, --output output filename (optional) -q, --quality set output quality (0-100) for lossy compression -L, --lossless generate lossless output (-q has no effect). Image will be encoded as RGB (matrix_coefficients=0). -t, --thumb # generate thumbnail with maximum size # (default: off) --no-alpha do not save alpha channel --no-thumb-alpha do not save alpha channel in thumbnail image --verbose enable logging output (more will increase logging level) -b, --bit-depth # number of bits to use from an 16-bit PNG input, valid range: 9-16 (default: 10 bit) --premultiplied-alpha input image has premultiplied alpha -C, --chroma-downsampling ALGO force chroma downsampling algorithm (nn = nearest-neighbor / average / sharp-yuv) (sharp-yuv makes edges look sharper when using YUV420 with bilinear chroma upsampling) --benchmark measure encoding time, PSNR, and output file size --pitm-description TEXT set user description for primary image (experimental) --add-compatible-brand BRAND add a compatible brand to the output file (4 characters) --unif use unified ID namespace (adds 'unif' compatible brand) --mini use compact 'mini' box format codecs: -A, --avif encode as AVIF (not needed if output filename with .avif suffix is provided) --hevc encode as HEVC (default) --vvc encode as VVC (experimental) --avc encode as AVC (experimental) --jpeg encode as JPEG --jpeg2000 encode as JPEG 2000 (experimental) --htj2k encode as High Throughput JPEG 2000 (experimental) -U, --uncompressed encode as uncompressed image (according to ISO 23001-17) --unci-compression METHOD choose one of these methods: none, deflate, zlib, brotli. --list-encoders list all available encoders for all compression formats -e, --encoder ID select encoder to use (the IDs can be listed with --list-encoders) --plugin-directory DIR load all codec plugins in the directory -P, --params show all encoder parameters and exit, input file not required or used. -p NAME=VALUE set encoder parameter raw input: --raw force raw pixel data input (for files without .raw/.img suffix) --raw-width # width of raw input image (computed from file size if omitted) --raw-height # height of raw input image (computed from file size if omitted) --raw-type TYPE pixel data type: uint8, sint8, uint16, sint16, uint32, sint32, float32, float64 --raw-endian ENDIAN byte order of input data: little (default), big color profile: --color-profile NAME use a color profile preset for the output. Valid values are: custom: (default) use the provided matrix_coefficients, colour_primaries, transfer_characteristic auto: automatically guess suitable values from the input image characteristics compatible: use a profile that is decoded correctly by most applications by avoiding incomplete implementations 601: use Rec.601 (SD), close to JPEG 709: use Rec.709 (HDTV), close to sRGB 2020: use Rec.2020 (UHDTV), transfer curve will be selected based on bits per pixel --matrix_coefficients nclx profile: color conversion matrix coefficients, default=6 (see h.273) --colour_primaries nclx profile: color primaries (see h.273) --transfer_characteristic nclx profile: transfer characteristics (see h.273) --full_range_flag nclx profile: full range flag, default: 1 --enable-two-colr-boxes will write both an ICC and an nclx color profile if both are present --clli MaxCLL,MaxPALL add 'content light level information' property to all encoded images --pasp h,v set pixel aspect ratio property to all encoded images --rotate-cw # rotate input image by 0, 90, 180, 270 degrees (clock-wise) --flip-h / --flip-v flip input image horizontally or vertically tiling: --cut-tiles # cuts the input image into square tiles of the given width -T, --tiled-input input is a set of tile images (only provide one filename with two tile position numbers). For example, 'tile-01-05.jpg' would be a valid input filename. You only have to provide the filename of one tile as input, heif-enc will scan the directory for the other tiles and determine the range of tiles automatically. --tiled-image-width # override image width of tiled image --tiled-image-height # override image height of tiled image --tiled-input-x-y usually, the first number in the input tile filename should be the y position. With this option, this can be swapped so that the first number is x, the second number y. --tiling-method METHOD choose one of these methods: grid, unci. The default is 'grid'. sequences: -S, --sequence encode input images as sequence (input filenames with a number will pull in all files with this pattern). -V, --video encode as video instead of image sequence --timebase # set clock ticks/second for sequence --duration # set frame duration (default: 1) --fps # set timebase and duration based on fps --repetitions # set how often the sequence should be played back (default=1), special value: 'infinite' --gop-structure GOP frame types to use in GOP (intra-only, low-delay, unrestricted) --min-keyframe-distance # minimum distance of keyframes in sequence (0 = undefined) --max-keyframe-distance # maximum distance of keyframes in sequence (0 = undefined) --max-frames # limit sequence length to maximum number of frames omnidirectional imagery: --omaf-image-projection PROJ set the image projection (equirectangular, cube-map)