web-dev-qa-db-fra.com

ERREUR: cuvid demandé, mais toutes les dépendances ne sont pas satisfaites: cuda / ffnvcodec

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.

14
Netheme

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 votre PKG_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
39
llogan

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
1
bingleyli