Les en-têtes NVIDIA ont été déplacés de la base de code FFmpeg vers un référentiel autonome dans le commit 27cbbbb. À partir du message de validation :
Les en-têtes externes ne sont plus les bienvenus dans la base de code ffmpeg car ils augmentent la charge de maintenance. Cependant, dans le cas de NVidia, les en-têtes vanille nécessitent quelques modifications pour être utilisables dans ffmpeg, nous les fournissons donc toujours, mais dans un référentiel séparé.
Aussi, à partir de FFmpeg Wiki :HWAccelIntro :
FFmpeg utilise désormais son propre chargeur d'exécution légèrement modifié pour les bibliothèques liées à nvidiasCUDA/nvenc/nvdec. Si vous obtenez une erreur de configuration vous plaignant de l'absence de ffnvcodec, c'est ce dont vous avez besoin.
Il a un
Makefile
fonctionnel avec une cible d'installation :make install PREFIX=/usr
FFmpeg cherchera son
pkg-config
fichier, 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ù ffnvcodec.pc
se trouve 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 une configuration manquante du package d'outils. Sur Ubuntu 16.04, vous pouvez exécuter
apt-get install pkgconf
et vérifiez si le paquet manquant est vraiment raté ou non :
pkgconf --list-all | grep package-name