Skip to content

Instantly share code, notes, and snippets.

@aouronga
Created December 9, 2025 11:40
Show Gist options
  • Select an option

  • Save aouronga/2182903b48a98592000f0b360dbe806d to your computer and use it in GitHub Desktop.

Select an option

Save aouronga/2182903b48a98592000f0b360dbe806d to your computer and use it in GitHub Desktop.
Latest FFMPEG with Intel QSV upgrade
#!/bin/bash
set -e
echo "======================================"
echo " FFmpeg Latest + Intel QSV Installer"
echo "======================================"
echo ""
# ---------- UPDATE ----------
echo "[1/8] Updating system..."
sudo apt update -y
sudo apt install -y software-properties-common wget gpg
# ---------- ADD INTEL GRAPHICS REPO ----------
echo "[2/8] Adding Intel oneVPL repository..."
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo apt-key add -
sudo add-apt-repository -y "deb https://repositories.intel.com/graphics/ubuntu $(lsb_release -cs) main"
sudo apt update -y
# ---------- INSTALL INTEL MEDIA/QSV RUNTIME ----------
echo "[3/8] Installing Intel Media SDK + oneVPL..."
sudo apt install -y \
intel-media-va-driver-non-free \
libmfx1 libmfxgen1 libvpl2 \
libvpl-dev libmfx-dev \
intel-opencl-icd level-zero \
vainfo
# ---------- INSTALL BUILD DEPENDENCIES ----------
echo "[4/8] Installing FFmpeg build dependencies..."
sudo apt install -y \
autoconf automake build-essential cmake git libtool pkg-config \
libssl-dev libass-dev libfreetype6-dev libsdl2-dev libva-dev \
libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \
texinfo yasm nasm zlib1g-dev libx264-dev libx265-dev libnuma-dev \
libvpx-dev libfdk-aac-dev libopus-dev libmp3lame-dev \
libdrm-dev libva-drm2 libva2
# ---------- ADD USER TO VIDEO/RENDER ----------
echo "[5/8] Adding user to video/render groups..."
sudo usermod -aG video $USER
sudo usermod -aG render $USER
# ---------- DOWNLOAD FFMPEG SOURCE ----------
echo "[6/8] Downloading latest FFmpeg..."
cd /tmp
rm -rf ffmpeg-qsv
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg-qsv
cd ffmpeg-qsv
# use latest stable
git checkout release/8.1 || true
# ---------- CONFIGURE FFMPEG ----------
echo "[7/8] Configuring FFmpeg with QSV support..."
./configure \
--prefix=/usr/local \
--enable-gpl \
--enable-nonfree \
--enable-libx264 \
--enable-libx265 \
--enable-libvpx \
--enable-libfdk-aac \
--enable-libopus \
--enable-libass \
--enable-libmp3lame \
--enable-openssl \
--enable-libmfx \
--enable-libvpl \
--enable-vaapi \
--enable-libdrm \
--enable-fast-unaligned \
--enable-pthreads \
--enable-qsv \
--extra-libs="-lmfx -lvpl"
# ---------- BUILD & INSTALL ----------
echo "[8/8] Building FFmpeg (this may take 5-20 minutes)..."
make -j$(nproc)
echo "Installing FFmpeg..."
sudo make install
hash -r
echo ""
echo "======================================"
echo " Installation Completed!"
echo "======================================"
echo ""
echo "Checking QSV hardware..."
vainfo || echo "[WARN] vainfo failed — check iGPU drivers."
echo "Checking FFmpeg QSV encoders..."
ffmpeg -encoders | grep qsv || echo "[WARN] QSV encoders not found."
echo ""
echo "Run this to verify:"
echo " ffmpeg -hwaccels"
echo " ffmpeg -encoders | grep qsv"
echo ""
echo "You MUST logout/login for video/render group changes to take effect."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment