So funktioniert NVIDIAs GPU-gestützte Videokodierung (NVENC) in Ubuntu

Cum să obțineți codificarea video asistată (NVENC) GPU NVIDIA să funcționeze în Ubuntu
⏱️ 5 min read

Das Codieren von Videodateien kann ein komplettes Ziehen sein. Selbst mit den schnellsten CPUs auf dem Markt kann der Vorgang ungefähr so ​​lange dauern wie das Video selbst (z. B. 30 Minuten Codierung für ein 30-minütiges Video). Unabhängig davon, welche Codierungsprogramme Sie anbieten, sind sie immer durch die Leistung Ihrer Chips begrenzt.

Um dieses Problem zu lösen, haben NVIDIA-Karten einen kleinen Trick, den sie seit der Veröffentlichung der Grafikkarten der GeForce 600-Serie im Jahr 2012 mit dem Namen NVENC verwenden. Auf diese Weise können Sie die GPU zum Codieren von Videostreams verwenden. Mit NVENC können Sie Videos nicht nur schneller als mit einer herkömmlichen CPU konvertieren, sondern auch Videos über Software wie Open Broadcaster Software (OBS) streamen und dabei Stottern und Verzögerungen reduzieren oder vollständig beseitigen. Da Linux standardmäßig nicht über NVENC verfügt, müssen Sie es von Hand zum Laufen bringen. Ich erkläre hier, wie Sie dies in Distributionen tun können, die auf Ubuntu basieren.

Das wichtigste zuerst

Damit NVIDIAs NVENC unter Ubuntu funktioniert, müssen Sie zuerst das NVIDIA Video Codec Software Development Kit (SDK) von herunterladen Diese Seite. Sie müssen ein Konto erstellen, aber der Vorgang ist ziemlich einfach. Sie benötigen nicht alle Dateien in der ZIP-Datei, daher navigieren wir jetzt zu “Samples / common / inc”. Kopieren Sie alles, was Sie dort sehen, in Ihren Ordner “/ usr / local / include”. Sie müssen diese Dateien kopieren, damit “ffmpeg” (ein Encoder, der häufig in Linux-Distributionen verwendet wird) NVENC erkennt und einbindet.

Konfigurieren von Quellcode-Repositorys

Der nächste Schritt besteht darin, Ihre aktuelle Version von ffmpeg neu zu kompilieren. Dies bedeutet, dass Sie die Build-Abhängigkeiten für die Software benötigen und dafür Linux konfigurieren müssen, um das Herunterladen aus Quellcode-Repositorys in Ihren Softwarequellen zu ermöglichen.

In Ubuntu können Sie zu “Systemeinstellungen -> Software & Updates” navigieren und dann unter “Ubuntu-Software” auf “Quellcode” klicken. In Linux Mint (der Distribution, die ich verwende, weil ich faul bin) können Sie dazu auf den Update Manager zugreifen, auf “Bearbeiten” klicken, auf “Softwarequellen” klicken und dann das Kästchen mit “Quellcode-Repositorys aktivieren” aktivieren. ” Diese Methode kann je nach Desktop-Umgebung und Linux-Distribution variieren. Daher müssen Sie möglicherweise ein wenig nach Seelen suchen, um dies zu erreichen.

Nun zum zahnschleifenden Teil des Prozesses!

Fmpeg neu aufbauen

Da ffmpeg nicht mit vielen automatisch aktivierten Optionen erstellt wird (was bedeutet, dass fast alle Optionen nicht aktiviert, sondern deaktiviert sind), müssen Sie herausfinden, wie es in Ihrem System erstellt wurde, und es dann mithilfe von erstellen gleiche Konfiguration plus Unterstützung für NVENC- und AAC-Audio. Hier kommen die Header ins Spiel, die Sie zuvor kopiert haben. Siehe, ffmpeg wirft einen kleinen Blick auf Ihre Dateien in „/ usr / local / include“, um alle Codecs zu finden, die es nicht in seinen eigenen Taschen findet.

Zunächst erstellen wir Abhängigkeiten mit

Als nächstes möchten wir den AAC-Audio-Codec mit herunterladen

Sobald diese Dinge erledigt sind, müssen wir die Quelle auf die aktuelle Version von ffmpeg mit bringen

Und wenn das erledigt ist, müssen Sie ein wenig in Ihrem Home-Ordner suchen. Suchen Sie einen Ordner, der mit “ffmpeg” beginnt. Die Versionsnummer wird direkt danach durch einen Bindestrich getrennt. Hier ist meins:

nvenclinux-ffmpeg

Öffnen Sie Ihr Terminal in diesem Ordner. Wenn Sie das nicht können, öffnen Sie das Terminal und geben Sie Folgendes ein:

Dabei steht “” für die vollständige Versionsnummer, die Sie im Namen dieses Ordners gesehen haben. In meinem Fall würde ich tippen

Geben Sie nun ein

Es zeigt Ihnen die gesamte Konfiguration Ihrer aktuellen ffmpeg-Installation. Sie müssen alles nach “Konfiguration” kopieren: ohne die Bits unter dieser massiven Textwand. In meinem Fall kopiere ich Folgendes: (Ihre Konfiguration ist möglicherweise anders, kopieren Sie also nicht, was ich Ihnen hier zeige.)

Fügen Sie nun alles, was Sie erhalten haben, in gedit oder einen anderen Texteditor ein und fügen Sie dies am Ende hinzu:

OK, jetzt müssen Sie nur noch tippen

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. Dies kann eine Weile dauern.

Nachdem alles fertig ist, geben Sie ein

Warten Sie, bis das vorbei ist, und geben Sie dann ein

Sie sind fertig!

Testen

OK, woher wissen Sie, dass Sie erfolgreich Unterstützung für NVENC erhalten haben? Es ist Zeit, ffmpeg für einen Spin herauszunehmen und ein Video damit zu codieren.

Dazu benötigen Sie zum Konvertieren eine Videodatei. Angenommen, unser Video befindet sich in “/home/miguel/Desktop/test.mkv” und wir möchten es als “/home/miguel/Desktop/test.mp4” codieren. So machen wir das mit ffmpeg und seiner neu entdeckten Liebe zu NVENC:

Sie sollten so etwas sehen:

nvenclinux-Kodierung

Und das ist es! Wir haben zwei Fliegen mit einer Klappe geschlagen: Sie haben gelernt, wie Sie NVENC auf Ihrem Linux-System installieren und ein Video mit dem praktischen Terminalbefehl von ffmpeg codieren. Wenn Sie irgendwo stecken bleiben oder einen besseren Weg finden, dies zu tun, hinterlassen Sie unbedingt einen Kommentar!

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Das könnte dich auch interessieren …

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x