Ich sehe Unterstützung für NVENC in diesem Dokument, aber es scheint verwirrend, einige Schritt für Schritt? oder PPA mit ffmpeg-nvenc für Ubuntu?
Ich sehe Unterstützung für NVENC in diesem Dokument, aber es scheint verwirrend, einige Schritt für Schritt? oder PPA mit ffmpeg-nvenc für Ubuntu?
Antworten:
Wie immer bei FFmpeg verschiebt sich die Weiterentwicklung des Ziels um ein Vielfaches, und dies gilt mit Sicherheit für nvenc und FFmpeg. Es gab 3 Phasen:
Zwei Schritte sind erforderlich:
1. Installieren Sie das Paket nv-codec-headers :
So etwas wie die folgenden Terminalbefehle sollten ausreichen:
sudo apt-get install make git
mkdir $HOME/nv-codec-headers_build && cd $HOME/nv-codec-headers_build
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install
Wenn Sie es sich aus irgendeinem Grund anders überlegen und die installierten Dateien sowie das Build-Verzeichnis vollständig entfernen möchten, führen Sie einfach die folgenden beiden Terminal-Befehle aus:
sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
Und Ihr System wurde gereinigt. Wenn Sie jedoch fortfahren möchten, gehen Sie wie folgt vor:
2. Kompilieren Sie FFmpeg :
Verwenden Sie diese sehr gut getestete Anleitung:
Das nv-codec-headers
wird automatisch erkannt (es werden keine zusätzlichen ./configure
Optionen benötigt) und nvenc wird erfolgreich erstellt.
Testen:
Ich habe dies auf Bionic Beaver LTS getestet und die Ergebnisse sind:
andrew@ilium:~$ ffmpeg -encoders 2>/dev/null | grep nvenc
V..... h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_hevc NVIDIA NVENC hevc encoder (codec hevc)
V..... hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc)
andrew@ilium:~$
Und wenn Sie ein ähnliches Bild wie oben sehen und eine unterstützte Grafikkarte haben , sind Sie richtig :)
Anmerkungen:
@ andrew.46 deine antwort ist super, danke. Mein Ruf liegt unter der Schwelle, um dies als Kommentar zu veröffentlichen. Wenn möglich, erweitern Sie Ihre Antwort mit den folgenden Informationen.
Wenn Sie zu einer früheren Version von zurückkehren müssen nv-codec-headers
, laden Sie eine frühere Version von https://github.com/FFmpeg/nv-codec-headers/releases herunter und kompilieren Sie sie .
Dies kann erforderlich sein, wenn Sie ffmpeg
gegen die neueste nv-codec-headers
Version kompilieren , Ihr Grafiktreiber jedoch eine Version aufweist, die noch nicht die von CUDA vorgeschriebene Mindestversion der API unterstützt nv-codec-headers
. Das Symptom wird sein, dass ffmpeg
das Transcodieren von Videostreams fehlschlägt. In meinem Fall war nv-codec-headers
CUDA API 9.1 erforderlich, während die neueste nvidia-driver
Version für meine Distribution (Tests) noch eine Version mit 9.0 hatte.
Das Zurücksetzen auf eine frühere Version nv-codec-headers
ist wahrscheinlich sicherer, als den neuesten Treiber direkt von Nvidia herunterzuladen und außerhalb des Aktualisierungsmechanismus Ihrer Distribution zu erstellen.