Retour au blog
Développement

Compiler FFmpeg avec NVDEC sur Ubuntu 22.04

Guide complet pour compiler FFmpeg avec le support NVDEC (décodage GPU NVIDIA) sur Ubuntu 22.04. Accélérez vos traitements vidéo !

Billel Midouni

Billel Midouni

12 min
Compiler FFmpeg avec NVDEC sur Ubuntu 22.04

Compiler FFmpeg avec NVDEC sur Ubuntu 22.04

Le décodage vidéo accéléré par GPU NVIDIA (NVDEC) peut considérablement améliorer les performances de traitement vidéo. Voici comment compiler FFmpeg avec ce support.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Une carte graphique NVIDIA compatible (série GTX 900 ou plus récent)
  • Les drivers NVIDIA installés (version 470 ou supérieure)
  • Ubuntu 22.04 LTS

Installation des dépendances

sudo apt update
sudo apt install -y build-essential yasm cmake libtool libc6 libc6-dev \
  unzip wget libnuma1 libnuma-dev git pkg-config nasm

Installation de CUDA Toolkit

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.0-545.23.06-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.0-545.23.06-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

Cloner les headers nv-codec

cd ~
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

Compilation de FFmpeg

cd ~
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp \
  --extra-cflags=-I/usr/local/cuda/include \
  --extra-ldflags=-L/usr/local/cuda/lib64 \
  --enable-nvdec --enable-cuvid --enable-nvenc

make -j$(nproc)
sudo make install

Vérification de l'installation

ffmpeg -hwaccels

Vous devriez voir cuda et nvdec dans la liste.

Utilisation de NVDEC

Pour décoder une vidéo avec NVDEC :

ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \
  -c:v h264_nvenc -preset fast output.mp4

Optimisation des performances

Pour obtenir les meilleures performances :

  • Utilisez -hwaccel_output_format cuda pour garder les frames sur le GPU
  • Combinez NVDEC avec NVENC pour un pipeline complet sur GPU
  • Ajustez le preset NVENC selon vos besoins (fast, medium, slow)

Dépannage

Erreur "No NVENC capable devices found" : Vérifiez que vos drivers NVIDIA sont à jour avec nvidia-smi.

Erreur de compilation : Assurez-vous que les chemins CUDA sont corrects dans votre $PATH et $LD_LIBRARY_PATH.

Conclusion

Avec FFmpeg compilé avec NVDEC, vous pouvez traiter des vidéos jusqu'à 10x plus rapidement qu'avec le CPU seul. Idéal pour les pipelines de transcodage haute performance !

FFmpegNVDECUbuntuGPUVidéoCUDANVIDIA