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

18

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 pilotes est installé. Quand j'essaye de configurer ffmpeg, il dit:

ERROR: cuvid requested, but not all dependencies are satisfied: cuda

Le nouveau ffmpeg affichera un message similaire et reformulé:

ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec

Je ne sais absolument pas pourquoi je rencontre ce problème, car je compile ffmpegsur tous nos serveurs de trans-codage.

Netheme
la source
Que dit config.log vers la fin? Ce sera dans ffbuild /
Gyan le

Réponses:

49

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 . Depuis le 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 vanilla ont besoin de 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 maintenant son propre chargeur d'exécution légèrement modifié pour les bibliothèques liées à nvidias CUDA / nvenc / nvdec. Si vous obtenez une erreur de configuration se plaindre de manquer ffnvcodec, c'est ce que vous avez besoin.

Il a un travail Makefileavec une cible d'installation:

make install PREFIX=/usr

FFmpeg recherchera son pkg-configfichier, 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 ffmpegcomme d'habitude. Les en-têtes doivent être détectés automatiquement. Sinon, déclarez le PKG_CONFIG_PATHpointage vers le chemin d'accès où ffnvcodec.pcse trouve lors de l'exécution configurede FFmpeg. Par exemple:

PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
llogan
la source
4

J'ai rencontré une erreur similaire, mais il s'avère que cela a été causé par une configuration de package d'outils manquante. 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
bingleyli
la source