FEHLER: cuvid wurde angefordert, aber nicht alle Abhängigkeiten sind erfüllt: cuda / ffnvcodec

6974
Netheme

Ich versuche, FFMPEG mit Unterstützung von Nvidia Cuda unter Debian 9.3 zu kompilieren. Parameter, was ich verwende:

--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 mit Treibern ist installiert. Wenn ich versuche, ffmpeg zu konfigurieren, heißt es:

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

Neuere ffmpeg zeigt eine ähnliche, umformulierte Nachricht:

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

Ich weiß absolut nicht, warum ich dieses Problem habe, weil ich ffmpegauf allen unseren Transcoding-Servern kompiliere .

10
Was sagt config.log am Ende? Es wird in ffbuild sein / Gyan vor 6 Jahren 0

3 Antworten auf die Frage

26
LordNeckbeard

Die NVIDIA-Header wurden aus der FFmpeg-Codebase in ein eigenständiges Repository im Commit 27cbbbb verschoben . Aus der Commit-Nachricht:

Externe Header sind in der ffmpeg-Codebase nicht mehr erwünscht, da sie den Wartungsaufwand erhöhen. Im Fall von NVidia benötigen die Vanilla-Header jedoch einige Modifikationen, damit sie in ffmpeg verwendet werden können. Daher stellen wir sie weiterhin zur Verfügung, jedoch in einem separaten Repository.

Auch aus FFmpeg Wiki: HWAccelIntro :

FFmpeg verwendet jetzt einen eigenen, leicht modifizierten Laufzeitladeprogramm für die CUDA / nvenc / nvdec-Bibliotheken von nvidias. Wenn Sie einen Fehler von configure erhalten beschwerte sich über ffnvcodec fehlt, das ist das, was Sie brauchen.

Es arbeitet Makefilemit einem Installationsziel:

make install PREFIX=/usr 

FFmpeg sucht nach seiner pkg-configDatei, genannt ffnvcodec.pc. Stellen Sie sicher, dass es in Ihrem ist PKG_CONFIG_PATH.

So kompilieren Sie die FFmpeg-NVIDIA-Header ("ffnvcodec"):

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

Jetzt ffmpegwie gewohnt kompilieren . Die Header sollten automatisch erkannt werden. Wenn nicht, dann erklären, die PKG_CONFIG_PATHzeigt auf den Pfad, wo ffnvcodec.pcbefindet sich beim Laufen configurefür FFmpeg. Zum Beispiel:

PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure 
1
bingleyli

Ich bin auf einen ähnlichen Fehler gestoßen, der sich jedoch durch ein fehlendes Werkzeugpaket config gelöst hat. Auf Ubuntu 16.04 können Sie laufen

apt-get install pkgconf 

und prüfen, ob das fehlende Paket wirklich verfehlt wurde oder nicht:

pkgconf --list-all | grep package-name 
-1
김만수

https://github.com/FFmpeg/FFmpeg/commit/27cbbbb33f259de7c795d2b75edf7b240f0f82e6

Ich habe festgestellt, dass dieser Commit-Fehler auftritt. Verwenden Sie den vorherigen Commit-Code

Git Klon https://github.com/FFmpeg/FFmpeg.git

git checkout 7414d0bda7763f9bd69c26c068e482ab297c1c96

git reset --hard

Dies beschränkt Sie auf unbegrenzte Zeit mit dem Festschreiben `7414d0b`. Laden Sie einfach die NVIDIA-Header herunter und installieren Sie sie, bevor Sie `ffmpeg 'kompilieren. LordNeckbeard vor 6 Jahren 0
@LordNeckbeard ist korrekt. Vielen Dank. Netheme vor 6 Jahren 0