Die NVIDIA-Header wurden aus der FFmpeg-Codebasis in ein eigenständiges Repository in Commit 27cbbbb verschoben. Aus der Commit-Nachricht:
Externe Header sind in der ffmpeg-Codebasis nicht mehr erwünscht, da sie den Wartungsaufwand erhöhen. Im Fall von NVidia benötigen die Vanilla-Header jedoch einige Änderungen, um in ffmpeg verwendet werden zu können, daher stellen wir sie immer noch zur Verfügung, jedoch in einem separaten Repository.
Auch aus dem FFmpeg-Wiki:HWAccelIntro:
FFmpeg verwendet jetzt seinen eigenen, leicht modifizierten Runtime-Loader für nvidiasCUDA/nvenc/nvdec-bezogene Bibliotheken. Wenn Sie eine Fehlermeldung von configure erhalten, in der Sie sich über fehlenden ffnvcodec beschweren, ist dies das, was Sie brauchen.
Es hat einen funktionierenden Makefile
mit einem Installationsziel:
make install PREFIX=/usr
FFmpeg sucht nach seinem pkg-config
Datei namensffnvcodec.pc
. Stellen Sie sicher, dass es sich in Ihrem PKG_CONFIG_PATH
befindet .
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
Kompilieren Sie nun ffmpeg
wie gewöhnlich. Die Header sollten automatisch erkannt werden. Wenn nicht, deklarieren Sie PKG_CONFIG_PATH
zeigt auf den Pfad, wo ffnvcodec.pc
befindet sich beim Ausführen von configure
für FFmpeg. Zum Beispiel:
PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
Ich bin auf einen ähnlichen Fehler gestoßen, aber es stellte sich heraus, dass er durch eine fehlende Werkzeugpaketkonfiguration verursacht wurde. Unter Ubuntu 16.04 können Sie
ausführenapt-get install pkgconf
und überprüfen Sie, ob das fehlende Paket wirklich fehlt oder nicht:
pkgconf --list-all | grep package-name