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

18

Ich versuche, FFMPEG mit Nvidia Cuda-Unterstützung auf Debian 9.3 zu kompilieren. Parameter, was ich benutze:

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

Das neuere ffmpeg zeigt eine ähnliche, umformulierte Nachricht an:

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

Ich weiß absolut nicht, warum ich dieses Problem habe, da ich ffmpegauf allen unseren Transcodierungsservern kompiliere .

Netheme
quelle
Was sagt config.log gegen Ende? Es wird in ffbuild /
Gyan

Antworten:

49

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

Externe Header sind in der ffmpeg-Codebasis nicht mehr willkommen, da sie den Wartungsaufwand erhöhen. Im NVidia-Fall benötigen die Vanilla-Header jedoch einige Änderungen, um in ffmpeg verwendet werden zu können. Daher stellen wir sie weiterhin zur Verfügung, jedoch in einem separaten Repository.

Auch aus dem FFmpeg-Wiki: HWAccelIntro :

FFmpeg verwendet jetzt einen eigenen leicht modifizierten Runtime-Loader für nvidias CUDA / nvenc / nvdec-bezogene Bibliotheken. Wenn Sie beim Konfigurieren eine Beschwerde über das Fehlen von ffnvcodec erhalten, ist dies das, was Sie benötigen.

Es funktioniert Makefilemit einem Installationsziel:

make install PREFIX=/usr

FFmpeg sucht nach seiner pkg-configaufgerufenen Datei 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
cd nv-codec-headers
make
sudo make install

Jetzt ffmpegwie gewohnt kompilieren . Die Header sollten automatisch erkannt werden. Wenn nicht, deklarieren Sie den PKG_CONFIG_PATHHinweis auf den Pfad, in dem ffnvcodec.pcsich configureFFmpeg befindet. Beispielsweise:

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

Ich habe einen ähnlichen Fehler festgestellt, aber es stellte sich heraus, dass er durch die fehlende Konfiguration des Toolpakets verursacht wurde. Unter Ubuntu 16.04 können Sie ausführen

apt-get install pkgconf

und prüfen Sie, ob das fehlende Paket wirklich fehlt oder nicht:

pkgconf --list-all | grep package-name
Bingleyli
quelle
-1

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

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

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

git checkout 7414d0bda7763f9bd69c26c068e482ab297c1c96

git reset --hard

김만수
quelle
Dies wird Sie daran hindern, auf 7414d0bunbestimmte Zeit festzuhalten. Laden Sie einfach die NVIDIA-Header herunter und installieren Sie sie, bevor Sie sie kompilieren ffmpeg.
Llogan