finds.dev← search

// the find

alexheretic/ab-av1

★ 905 · Rust · MIT · updated Jun 2026

AV1 re-encoding using ffmpeg, svt-av1 & vmaf.

ab-av1 automates the tedious part of AV1 encoding: finding the right CRF value to hit a target VMAF score without guessing. It samples short clips at different CRF values, interpolates, then runs the full encode — skipping the usual trial-and-error loop. For anyone batch-encoding video archives or doing quality-preserving compression, this is the tool to reach for.

1. The binary search over sample clips is genuinely smart — it avoids encoding the whole file dozens of times, which makes CRF tuning practical instead of painful. 2. VMAF model auto-selection (4K vs 1080p) and auto-threading means you don't have to think about those parameters. 3. JSON output mode makes it composable in scripts and pipelines — not just a GUI-adjacent tool. 4. Statically linked musl binary for Linux means no dependency hell; it just works on any distro.

1. Requires a specific ffmpeg build with libsvtav1, libvmaf, and libopus enabled — most distro-packaged ffmpegs won't have all three, and the README doesn't tell you how to get one that does. 2. VMAF scoring is CPU-intensive; on long or high-resolution sources the sample phase can still take a while, and there's no GPU-accelerated VMAF path. 3. No batch/queue mode — you have to shell-script your own loops over multiple files, which means managing partial failures yourself. 4. The CRF search assumes a monotonic VMAF-to-CRF relationship, which holds in practice but can misfire on pathological inputs (heavy grain, animation with flat areas) where samples aren't representative of the full file.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →