Handbrake is straight forward and supports svt-av1.
FFmpeg does as well.
However I like encoding with the native svt-av1 app.
So my steps will be posted below for compiling from source for best end results in performance…
The below app you will be compiling from source requires the below dependencies. It will be compiled using the native micro architecture of your cpu for the best optimizations.
Dependencies required for building SVT-AV1 binary (2025):
nasm cmake
SVT-AV1 Build Guide
# clones the latest svt-av1 source code for compiling
$ git clone https://gitlab.com/AOMediaCodec/SVT-AV1
# moves into SVT directory and makes a build directory for cmake
$ cd SVT-AV1
$ mkdir svt_build && cd svt_build
# The below command will set the compilation parameters to ideal ones for linux.
$ cmake .. -DBUILD_SHARED_LIBS=0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-flto -O3 -march=native" -DCMAKE_C_FLAGS="-flto -O3 -march=native" -DCMAKE_C_FLAGS_INIT="-flto=16 -static" -Wno-dev
# The below command actually compiles svt-av1 binary and libs required
$ make -j 32
# The below will install the app you just compiled
$ sudo make install
Libaom (aomenc)
Dependencies required for building libaom binary (2025):
nasm cmake
libaom Build Guide
# clones the latest svt-av1 source code for compiling
$ git clone https://aomedia.googlesource.com/aom/
# moves into SVT directory and makes a build directory for cmake
$ cd aom
$ mkdir aom_build && cd aom_build
# The below command will set the compilation parameters to ideal ones for linux.
$ cmake .. -DBUILD_SHARED_LIBS=0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-flto -O3 -march=native" -DCMAKE_C_FLAGS="-flto -O3 -march=native" -DCMAKE_C_FLAGS_INIT="-flto=16 -static"
# The below command actually compiles svt-av1 binary and libs required
$ make -j 32
# The below will install the app you just compiled
$ sudo make install
(highly recommended to speed up encodes for aomenc)
av1an, vapoursynth, ffmpeg, l-smash-works, ffms2, bestsource, mkvtoolnix-cli
vapoursynth (primary dependency of av1an) build guide can be found @
av1an build guide dependencies
rust, clang, ffmpeg, vapoursynth
Av1an Build Guide
# getting rust and setting as source in bashrc
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source ~/.cargo/env
# install without building for march (might not be latest build)
$ cargo install av1an --verbose
# build from latest source and for your march.
$ git clone https://github.com/master-of-zen/Av1an
$ cd Av1an
# optional (add mor optimizations)
# edit Cargo.toml, find [profile.release] change lto = "thin" to
# lto = "fat"
# You can also add under lto = "fat" opt-level = 3
# With Cargo.toml edited you can proceed with compiling.
# Compiles using rust flags march of native
$ RUSTFLAGS="-C target-cpu=native" cargo build --release
Vapoursynth Plugins (Used for Chunking in av1an.) You only need one, but BestSource is the best imo that does not have issues in linux.
BestSource
L-SMASH-WORKS
FFMS2
Notes: VC-1 has issues in linux specifically. Does not in windows. On linux you often have to convert to lossless first with ffmpeg. VC-1 also does not like best source chunking method with av1an. Is extremely slow. So converting to lossless is helpful with that as well.