Installing on Ubuntu (22.04 / 24.04 / 26.04)¶
The scripts/setup/ubuntu.sh helper does everything below in one step:
bash scripts/setup/ubuntu.sh # CPU-only
ENABLE_CUDA=1 bash scripts/setup/ubuntu.sh # + CUDA toolkit
ENABLE_SYCL=1 bash scripts/setup/ubuntu.sh # + Intel oneAPI
INSTALL_LINTERS=1 bash scripts/setup/ubuntu.sh # + clang-tidy/cppcheck/iwyu
Manual install¶
sudo apt-get update
sudo apt-get install -y \
build-essential meson ninja-build pkg-config nasm \
python3-venv python3-pip \
clang clang-format clang-tidy cppcheck doxygen
CUDA (optional)¶
Requires an NVIDIA GPU. Use the official NVIDIA repo — Ubuntu's nvidia-cuda-toolkit is often outdated:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y cuda-toolkit-12-6
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
SYCL / Intel oneAPI (optional)¶
wget -qO- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| sudo gpg --dearmor -o /usr/share/keyrings/oneapi-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \
| sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install -y intel-basekit
source /opt/intel/oneapi/setvars.sh
Intel QSV (optional, for h264_qsv / hevc_qsv / av1_qsv)¶
The fork's three QSV codec adapters in tools/vmaf-tune/ require an FFmpeg built with the Intel oneVPL dispatcher (libvpl) — Intel archived Media SDK / libmfx in May 2023 and oneVPL is the supported successor.
sudo apt-get install -y libvpl2 libvpl-dev
# 24.04 noble / 26.04 plucky -> libvpl2 / libvpl-dev 2023.3.0 (universe).
# 22.04 jammy -> libvpl2 / libvpl-dev 2022.1.0 (universe).
# For pre-Tiger-Lake iGPUs also: `intel-media-va-driver` /
# `intel-media-va-driver-non-free`.
Verified 2026-05-08 against Ubuntu noble libvpl-dev 2023.3.0-1build1 and the package search for libvpl across all suites.
Ubuntu's ffmpeg is built with --enable-libvpl from FFmpeg n6.0 onward (the Changelog records "oneVPL support for QSV" under FFmpeg 6.0). 22.04 jammy ships FFmpeg 4.4, which uses the legacy --enable-libmfx path — for QSV work on jammy, install FFmpeg from a backports PPA or build from source against libvpl-dev.
Intel Quick Sync hardware capability matrix¶
Verified 2026-05-08 against Wikipedia: Intel Quick Sync Video — Hardware decoding and encoding.
| CPU / GPU generation | H.264 enc/dec | HEVC 8-bit enc/dec | HEVC 10-bit enc/dec | AV1 decode | AV1 encode |
|---|---|---|---|---|---|
| Skylake / Kaby Lake / Coffee Lake (Gen 9) | yes | yes | decode only | no | no |
| Ice Lake (Gen 11) | yes | yes | yes | no | no |
| Tiger Lake / Alder Lake / Raptor Lake (Xe LP) | yes | yes | yes | yes | no |
| Arc Alchemist (Xe HPG, A-series, 2022) | yes | yes | yes | yes | yes |
| Arc Battlemage (Xe2, B-series) | yes | yes | yes | yes | yes |
av1_qsv therefore requires Arc Alchemist or newer; hevc_qsv 10-bit requires Ice Lake or newer.
Build¶
Binary lands at build/tools/vmaf.