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-headerswird automatisch erkannt (es werden keine zusätzlichen ./configureOptionen 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 ffmpeggegen die neueste nv-codec-headersVersion 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 ffmpegdas Transcodieren von Videostreams fehlschlägt. In meinem Fall war nv-codec-headersCUDA API 9.1 erforderlich, während die neueste nvidia-driverVersion für meine Distribution (Tests) noch eine Version mit 9.0 hatte.
Das Zurücksetzen auf eine frühere Version nv-codec-headersist wahrscheinlich sicherer, als den neuesten Treiber direkt von Nvidia herunterzuladen und außerhalb des Aktualisierungsmechanismus Ihrer Distribution zu erstellen.