--- obj: application repo: https://github.com/alexheretic/ab-av1 --- # ab-av1 AV1 video encoding tool with fast VMAF sampling & automatic encoder crf calculation. Uses [`ffmpeg`](./ffmpeg.md), `svt-av1` & `vmaf`. ## Usage ### Command: `auto-encode` Automatically determine the best crf to deliver the `--min-vmaf` and use it to encode a video or image. Two phases: - `crf-search` to determine the best `--crf` value - `ffmpeg` to encode using the settings ```sh ab-av1 auto-encode [OPTIONS] -i --preset --min-vmaf ``` ### Command: `crf-search` Interpolated binary search using sample-encode to find the best crf value delivering `--min-vmaf` & `--max-encoded-percent`. Outputs: - Best crf value - Mean sample VMAF score - Predicted full encode size - Predicted full encode time ```sh ab-av1 crf-search [OPTIONS] -i --preset --min-vmaf ``` Notable options - `--min-xpsnr` may be used as an alternative to VMAF. ### Command: `sample-encode` Encode short video samples of an input using provided crf & preset. This is much quicker than full encode/vmaf run. Outputs: - Mean sample VMAF score - Predicted full encode size - Predicted full encode time ```sh ab-av1 sample-encode [OPTIONS] -i --crf --preset ``` Notable options - `--xpsnr` specifies calculation of XPSNR score instead of VMAF. ### Command: `encode` Invoke `ffmpeg` to encode a video or image. ```sh ab-av1 encode [OPTIONS] -i --crf --preset ``` ### Command: `vmaf` Full VMAF score calculation, distorted file vs reference file. Works with videos and images. - Auto sets model version (4k or 1k) according to resolution. - Auto sets n_threads to system threads. - Auto upscales lower resolution videos to the model. ```sh ab-av1 vmaf --reference --distorted ``` ### Command: `xpsnr` Full XPSNR score calculation, distorted file vs reference file. Works with videos and images. ```sh ab-av1 xpsnr --reference --distorted ```