Installing on Arch Linux¶
Run the setup script from the repository root, then build. The script also covers Manjaro, CachyOS and EndeavourOS (scripts/setup/arch.sh).
Setup script¶
bash scripts/setup/arch.sh # CPU build dependencies and linters
ENABLE_CUDA=true bash scripts/setup/arch.sh # + cuda and cuda-tools from extra
ENABLE_SYCL=true bash scripts/setup/arch.sh # prints the oneAPI install steps
INSTALL_LINTERS=false bash scripts/setup/arch.sh # skip shellcheck, shfmt and the Python linters
The switches take the value true; any other value, 1 included, leaves the option off. INSTALL_LINTERS is on unless you set it to false. ENABLE_SYCL=true installs nothing: it prints the commands of the SYCL section below.
Manual install¶
sudo pacman -S --needed \
base-devel clang cppcheck \
meson ninja nasm pkgconf \
python python-pip python-virtualenv \
doxygen
CUDA (optional)¶
extra/cuda follows the current CUDA release; the project builds and tests with CUDA 13.4. See the CUDA backend guide.
SYCL / oneAPI (optional)¶
The oneAPI compiler is in the official extra repository:
intel-oneapi-toolkit installs the whole toolkit instead. See the SYCL backend guide.
Intel QSV (optional, for vmaf-tune)¶
vpl-gpu-rt is the runtime for Tiger Lake and newer GPUs, Arc included; older GPUs (Skylake to Comet Lake) need intel-media-sdk instead. extra/ffmpeg is built with oneVPL. Intel QSV has the hardware matrix and the FFmpeg requirements.
Build¶
From the repository root:
Leave out the -Denable_* options you did not install SDKs for. The binary is build/tools/vmaf.