J'essaie de compiler FFMPEG avec le support Nvidia Cuda sur Debian 9.3. Paramètres, ce que j'utilise:
--enable-cuda --enable-cuvid --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-gpl --enable-libx264 --disable-x86asm --enable-libx265 --enable-libfdk-aac --enable-nonfree
Nvidia Cuda avec les pilotes sont installés. Quand j'essaye de configurer ffmpeg, il dit:
ERROR: cuvid requested, but not all dependencies are satisfied: cuda
Le nouveau fichier ffmpeg affichera un message similaire reformulé:
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
Je ne sais absolument pas pourquoi j'ai ce problème, car je compile ffmpeg
sur tous nos serveurs de transcodage.
Les en-têtes NVIDIA ont été déplacés de la base de code FFmpeg vers un référentiel autonome dans commit 27cbbbb . A partir du message commit:
Les en-têtes externes ne sont plus les bienvenus dans la base de code ffmpeg car ils alourdissent la charge de maintenance. Cependant, dans le cas NVidia, les en-têtes Vanilla ont besoin de certaines modifications pour pouvoir être utilisés dans ffmpeg. Nous les fournissons donc toujours, mais dans un référentiel séparé.
De plus, à partir de FFmpeg Wiki: HWAccelIntro :
FFmpeg utilise maintenant son propre chargeur d'exécution légèrement modifié pour les bibliothèques nvidias CUDA/nvenc/nvdec. Si vous obtenez une erreur de la part de configure qui se plaint de l'absence de ffnvcodec, , voici ce qu'il vous faut .
Il a une
Makefile
de travail avec une cible d'installation:make install PREFIX=/usr
FFmpeg va rechercher son fichier
pkg-config
, appeléffnvcodec.pc
. Assurez-vous qu'il est dans votrePKG_CONFIG_PATH
.
Pour compiler les en-têtes FFmpeg NVIDIA ("ffnvcodec"):
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
Sudo make install
Compilez maintenant ffmpeg
comme d'habitude. Les en-têtes doivent être détectés automatiquement. Sinon, déclarez le PKG_CONFIG_PATH
pointant vers le chemin où se trouve ffnvcodec.pc
lors de l'exécution de configure
pour FFmpeg. Par exemple:
PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
J'ai rencontré une erreur similaire, mais il s'avère que cela a été causé par l'absence de la configuration du package d'outil. Sur Ubuntu 16.04, vous pouvez exécuter
apt-get install pkgconf
et vérifiez si le paquet manquant est vraiment manquant ou non:
pkgconf --list-all | grep package-name