// the find
rust-av/Av1an
Cross-platform command-line AV1 / VP9 / HEVC / H264 encoding framework with per scene quality encoding
Av1an is a parallelized video encoding orchestrator that splits input into scenes and encodes them across multiple workers simultaneously. It wraps aomenc, SVT-AV1, rav1e, x264, x265, and vpxenc — you pick the encoder, Av1an handles the parallelism. The target audience is anyone doing serious video archival or transcoding work where encode time actually matters.
Scene-based chunking is the right architecture: encode time scales nearly linearly with CPU cores because each chunk is independent. Target Quality mode using VMAF/SSIMULACRA2 to drive encoder CRF via binary search is genuinely useful — you specify perceptual quality, not a bitrate guess. Resume support means a 12-hour encode that crashes at hour 10 doesn't restart from zero. The Docker images with all dependencies bundled solve a real pain: the manual dependency list (VapourSynth + L-SMASH + VMAF + the actual encoder binaries) is genuinely annoying to assemble yourself.
VapourSynth is a hard runtime dependency for anything beyond basic use, which is a significant setup burden — it's a Python-based video processing framework that most developers have never touched. The dependency surface is enormous: a fully-featured setup requires FFmpeg, VapourSynth, encoder binaries, and potentially 5+ additional VS plugins; something will be missing or version-mismatched on first run. Target Quality mode is documented but the interaction between VMAF probing granularity, encoder preset, and actual wall-clock time is underdocumented — you can easily configure a setup that spends more time on quality probing than encoding. There's no built-in queue or job management for batch processing multiple files; you wire that yourself.