39 releases
0.9.1 | Jan 2, 2025 |
---|---|
0.9.0 | Dec 24, 2024 |
0.8.0 | Nov 16, 2024 |
0.7.17 | Jul 28, 2024 |
0.3.1 | Mar 17, 2022 |
#4 in Video
403 downloads per month
170KB
4K
SLoC
ab-av1
AV1 video encoding tool with fast VMAF sampling & automatic encoder crf calculation. Uses ffmpeg, svt-av1 & vmaf.
Also supports other ffmpeg compatible encoders like libx265 & libx264.
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
ab-av1 auto-encode [OPTIONS] -i <INPUT> --preset <PRESET> --min-vmaf <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
ab-av1 crf-search [OPTIONS] -i <INPUT> --preset <PRESET> --min-vmaf <MIN_VMAF>
Notable options
--min-xpsnr <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
ab-av1 sample-encode [OPTIONS] -i <INPUT> --crf <CRF> --preset <PRESET>
Notable options
--xpsnr
specifies calculation of XPSNR score instead of VMAF.
Command: encode
Invoke ffmpeg to encode a video or image.
ab-av1 encode [OPTIONS] -i <INPUT> --crf <CRF> --preset <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.
ab-av1 vmaf --reference <REFERENCE> --distorted <DISTORTED>
Command: xpsnr
Full XPSNR score calculation, distorted file vs reference file. Works with videos and images.
ab-av1 xpsnr --reference <REFERENCE> --distorted <DISTORTED>
Install
Arch Linux
Available in the AUR.
Linux
Pre-built statically linked x86_64-unknown-linux-musl binary included in the latest release.
Windows
Pre-built ab-av1.exe included in the latest release.
Using cargo
Latest release
cargo install ab-av1
Latest code direct from git
cargo install --git https://github.com/alexheretic/ab-av1
Requirements
ffmpeg newer than git-2022-02-24 with libsvtav1, libvmaf, libopus enabled.
ffmpeg
should be in $PATH
.
Debug
Enable debug logs by setting env var RUST_LOG=ab_av1=debug
. This includes all ffmpeg calls.
$ RUST_LOG=ab_av1=debug ab-av1 auto-encode -i vid.mkv
Minimum supported rust compiler
Maintained with latest stable rust.
Dependencies
~14–27MB
~418K SLoC