Wie man NVIDIAs GPU Assisted Video Encoding (NVENC) in Ubuntu einsetzt
Das Kodieren von Videodateien kann ein komplettes Ziehen sein. Selbst mit den schnellsten CPUs auf dem Markt kann der Vorgang etwa so lange dauern wie das Video selbst (z. B. 30 Minuten Kodierung für ein 30-minütiges Video). Egal welche Kodierungsprogramme Ihnen anbieten, sie sind immer begrenzt durch die Leistung Ihrer Chips.
Um dieses Problem zu lösen, haben NVIDIA-Karten einen raffinierten kleinen Trick, den sie seit der Veröffentlichung der Grafikkarten der GeForce 600-Serie im Jahr 2012 namens NVENC verwendet haben. Auf diese Weise können Sie die GPU zum Codieren von Videostreams verwenden. Mit NVENC können Sie Videos nicht nur schneller konvertieren als mit einer herkömmlichen CPU, sondern Sie können Videos auch über Software wie Open Broadcaster Software (OBS) streamen, während Stottern und Verzögerungen reduziert oder vollständig eliminiert werden. Da Linux standardmäßig nicht über NVENC verfügt, muss es von Hand funktionieren. Ich erkläre hier, wie Sie dies in Distributionen tun können, die auf Ubuntu basieren.
Das wichtigste zuerst
Damit NVIDIAs NVENC auf Ubuntu funktioniert, müssen Sie zuerst das NVIDIA Video Codec-Softwareentwicklungskit (SDK) von dieser Website herunterladen. Sie müssen ein Konto erstellen, aber der Prozess ist ziemlich einfach. Sie brauchen nicht alle Dateien in der ZIP-Datei, also navigieren wir zu "Samples / common / inc." Kopieren Sie alles, was Sie dort sehen, in Ihren "/ usr / local / include" -Ordner. Sie müssen diese Dateien kopieren, damit "ffmpeg" (ein Encoder, der häufig mit Linux-Distributionen gefunden wird) NVENC erkennt und integriert.
Quellcode-Repositories konfigurieren
Der nächste Schritt beinhaltet die Neukompilierung Ihrer aktuellen Version von ffmpeg. Das bedeutet, dass Sie die Build-Abhängigkeiten für die Software benötigen und dafür müssen Sie Linux so konfigurieren, dass es das Herunterladen von Quellcode-Repositories in Ihren Softwarequellen erlaubt.
In Ubuntu können Sie zu "Systemeinstellungen -> Software & Updates" navigieren und dann unter "Ubuntu Software" auf "Quellcode" klicken. In Linux Mint (die Distribution, die ich verwende, weil ich faul bin), kann dies getan werden indem Sie auf den Update Manager klicken, auf "Bearbeiten" klicken, auf "Software-Quellen" klicken und dann das kleine Kästchen mit "Quellcode-Repositories aktivieren" aktivieren. Diese Methode kann je nach Desktop-Umgebung und Linux-Distribution variieren eine kleine Seele, die danach sucht.
Jetzt zum Zähneknirschen des Prozesses!
Ffmpeg neu erstellen
Da ffmpeg nicht mit vielen aktivierten Optionen automatisch aktiviert wird (das heißt, sie sind fast alle opt-in und nicht opt-out), müssen Sie herausfinden, wie es in Ihrem System erstellt wurde, und es dann mit dem erstellen gleiche Konfiguration plus Unterstützung für NVENC und AAC Audio. Hier kommen die Header, die du zuvor kopiert hast. Siehe, ffmpeg wird einen kleinen Blick auf deine Dateien in "/ usr / local / include" werfen, um alle Codecs zu finden, die es nicht in seinen eigenen Taschen findet.
Zuerst bauen wir Abhängigkeiten mit
sudo apt-get build-dep ffmpeg
Als nächstes wollen wir den AAC Audio Codec mit herunterladen
sudo apt-get installieren libfdk-aac-dev
Sobald diese Dinge erledigt sind, müssen wir die Quelle für ffmpeg's aktuelle Version mit bekommen
sudo apt-get Quelle ffmpeg
Und wenn das erledigt ist, musst du ein wenig in deinem Home-Ordner jagen. Suchen Sie nach einem Ordner, der mit "ffmpeg" beginnt. Er wird die Versionsnummer haben, unmittelbar nachdem er durch einen Bindestrich getrennt wurde. Hier ist meins:
Öffnen Sie Ihr Terminal in diesem Ordner. Wenn dies nicht möglich ist, öffnen Sie das Terminal und geben Sie Folgendes ein:
CD ffmpeg-
Dabei steht "" für die vollständige Versionsnummer, die Sie im Namen dieses Ordners gesehen haben. In meinem Fall würde ich tippen
CD ffmpeg-2.8.8
Jetzt tippen
ffmpeg -buildconf
Es zeigt Ihnen die gesamte Konfiguration Ihrer aktuellen ffmpeg-Installation. Sie müssen alles nach "configuration:" kopieren, ohne die Bits unter dieser massiven Textwand. In meinem Fall kopiere ich dies: (Ihre Konfiguration könnte anders sein, also kopieren Sie nicht, was ich Ihnen hier zeige.)
--prefix = / usr --extra-version = 0ubuntu0.16.04.1 --build-suffix = -ffmpeg --toolchain = gehärtet --libdir = / usr / lib / x86_64-linux-gnu --incdir = / usr / include / x86_64-linux-gnu --cc = cc --cxx = g ++ --enable-gpl --enable -freigegeben --disable-stripping --disable-decoder = libopenjpeg --disable-decoder = libschroedinger --enable -avresample --enable-avisynth --enable-gnutils --enable-ladspa --enable-libass --openable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable -libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --openbar-libopenjpeg --enable-libopus --openable-libpulse --enable -librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --openable-libspeex --enable-libssh --enable-libtheora --enable-libtwalame --enable-libvorbis --enable -libvpx --enable-libwavpack --openable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --openable -openable --openable-opengl --enable-x11gr ab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
Nun fügen Sie alles ein, was Sie in gedit oder einen anderen Texteditor bekommen haben, und fügen Sie das zum Ende hinzu:
--enable-nonfree --enable-nvenc --enable-libfdk-aac
OK, jetzt müssen Sie nur noch tippen
./konfigurieren
Dabei steht "" für die massive Textwand, die Sie gerade bearbeitet haben, um Unterstützung für nicht-freie Codecs, NVENC und AAC-Audio hinzuzufügen. Das könnte eine Weile dauern.
Nachdem alles fertig ist, tippe ein
machen
Warten Sie, bis das vorbei ist, und geben Sie ein
sudo make install
Sie sind fertig!
Es testen
OK, woher wissen Sie, dass Sie erfolgreich Unterstützung für NVENC erhalten haben? Es ist Zeit, ffmpeg für eine Runde zu drehen und ein Video damit zu kodieren.
Um dies zu tun, benötigen Sie eine Videodatei zum Konvertieren. Nehmen wir an, unser Video befindet sich in "/home/miguel/Desktop/test.mkv" und wir möchten es als "/home/miguel/Desktop/test.mp4" kodieren. So machen wir das mit ffmpeg und seine neue Liebe für NVENC:
Uhrzeit ffmpeg -i /home/miguel/Desktop/test.mkv -acodec Kopieren -vcodec nvenc /home/miguel/Desktop/test.mp4
Sie sollten so etwas sehen:
Und das ist es! Wir haben zwei Fliegen mit einer Klappe geschlagen: Sie haben gelernt, wie Sie NVENC auf Ihrem Linux-System bekommen und wie Sie ein Video mit dem praktischen Terminalkommando von ffmpeg kodieren. Wenn du irgendwo stecken bleibst oder einen besseren Weg findest, hinterlasse einen Kommentar!