Hardware Video Encoding

frontpage
#1

Original veröffentlicht unter: https://animemusikvideos.de/2019/07/09/hardware-video-encoding/

Hardware-Encoding auf „normalen“ Grafikkarten ist in letzter Zeit immer weiter verbreitet worden. Für AMV-Editoren sind die GPU-beschleunigten Encoder sowohl für h264 als auch HEVC(h265) natürlich sehr interessant.

Weil Hardware-encoding von Videos in der Regel zwar wesentlich(!) schneller ist, aber leider auch größere Dateien bei gleicher Qualität erzeugt, ist diese Option besonders für unfertige Videos oder für HEVC-Encodes relevant.

Für den finalen Export eurer AMVs in h264 solltet ihr auf jeden Fall weiterhin einen Software-Encoder wie x264 benutzen.

Ob ihr eine Grafikkarte mit Unterstützung für Hardware-Encoding besitzt könnt ihr bei NVIDIA einfach nachschlagen, für AMD gibt es verschieden kompatible Versionen.

Im folgenden sind zwei einfache Methoden beschrieben, wie eure Grafikkarte zum Encodieren von Videos einsetzten könnt.

Für den „Adobe Media Encoder“ und andere Adobe Programme gibt es seit einiger Zeit das Voukoder-Plugin; dadurch werden einige Features des FFMpeg-Projekts (inklusive Hardware-Encoder) in Adobe Programmen verfügbar.
Bisher war es zwar bereits möglich VFW-kompatible (Video for Windows) Codecs im Adobe Media Encoder zu verwenden, allerdings blieb Hardware-Encoding ohne Voukoder bisher leider auf der Strecke.

In HandBrake gibt es diese Funktionalität übrigens schon länger, da das Programm ebenfalls auf dem OpenSource-FFMpeg-Projekt aufbaut.

Um die Hardware-beschleunigten Encoder zu nutzen solltet ihr auf jeden Fall eine aktuelle Version eures Grafikkarten-Treibers installiert haben.
Den Voukoder-Installer findet ihr auf GitHub, den Handbrake-Installer auf der Handbrake-Website.

Nach der Installation könnt ihr im Adobe Media Encoder „Voukoder R2“ als Format auswählen. Zunächst sollten alle Video- und Audio-Einstellungen mit dem Projekt oder dem Input-Video übereinstimmen, anschließend werden die Encoding-Einstellungen in den „Voukoder“-Konfigurationen vorgenomen.
Auf die Audio-Presets solltet ihr auf jeden Fall auch ein Auge werfen, da die Standard-Werte viel zu niedrig angesetzt sind!

Die Hardware beschleunigten Encoder heißen „NVENC ***“ bzw. „AMF ***“. Die möglichen Einstellungen sind sehr ähnlich zu Encodern, die wir für diese Formate schon seit einigen Jahren benutzen.

Die Handhabung in Handbrake unterscheidet sich kaum von anderen Encoding-Einstellungen. Ihr müsst lediglich in den Video-Einstellungen die „Nvidia NVEnc“- bzw. „AMD VCE“-Variante eures gewünschten Encoders wählen. Auch hier sind die möglichen Einstellungen sehr ähnlich zu Encodern, die wir für diese Formate schon seit einigen Jahren benutzen.

„Intel Quicksyc“ ist in Handbrake ebenfalls für h264 und HEVC encoding verfügbar, wenn ihr allerdings eine dedizierte unterstützte Grafikkarte verbaut habt, gibt es kaum einen Grund sie nicht zu benutzen.

Offiziell ist bei NVIDIA die Rede von einer Geschwindigkeitssteigerung um 4x-5x abhängig vom CPU-GPU Verhältnis im System.
Persönlich konnte ich sogar 7x im HEVC-Encoding mit einer „NVIDIA GeForce GTX 1050 Ti“ zu einem Stock-„Intel i7 6700K“-Prozessor erreichen. Die neuen Turing-Grafikkarten von NVIDIA scheinen außerdem noch einen großen Sprung beim Encodieren von HEVC-Video gemacht zu haben (s. Turing Whitepaper s.22).
Falls jemand Erfahrung mit AMD-Grafikkarten in diesem Zusammenhang hat, sind Berichte sehr willkommen.

2 Like
#2

Danke für den Artikel! Ich werde einige Dinge ausprobieren.

Im Herbst habe ich mich für eine Ryzen CPU entschieden. Intel hatte zwar On Board Graphic (Quick Sync), die auch große Hardwarebeschleunigung brachte, aber dann hatte ich doch die Wahl: Permanent schneller oder nur beim Rendern schneller? Mein Budget lieferte die Antwort. Dementsprechend bin ich sehr interessiert meine Graphikkarte anzuzapfen! Immerhin sollte die 1080Ti schon etwas hergeben.

Übrigens: Wer kennt einen zarxGUI vergleichbares GUI für HVEC? Ich bin im Moment von HVEC in Premiere Pro nicht überzeugt bei AMVs und würde jetzt gerne wissen, was es da für gute Alternativen gibt :slight_smile:

Eigentlich habe ich überhaupt erst einmal HVEC verwendet: Ich musste einem Kunden ein 2 Stunden Weihnachtskonzert schicken und da war mir die h.264 Datei einfach zu groß.

1 Like
#3

Sehr interessantes Thema.

Würdest du bei AMV-Encodes von x265 abraten? Hatte zuletzt alle finalen Encodes meiner AMVs mit BakaEncoder in x265 gemacht. Handbrake hatte sich bei meinem letzten AMV als deutlich schneller herausgestellt, hat aber auch meine Hardware zum brummen gebracht. Kann mich aber nicht dran erinnern, bewusst Hardware Encoding ausgewählt zu haben. Da mein Encode derzeit für Org zu groß ist werde ich dieser Tage noch einmal ein paar dieser Varianten durchprobieren.

Was du der Vollständigkeit halber noch ergänzen könntest wären grundlegende/empfohlenen Einstellungen für Handbrake/Adobe zum encodieren von AMVs. Handbrake gibt einem schon ziemlich gute Tipps, aber zuerst habe ich mich da etwas verloren gefühlt. Die Settings werden sich wahrscheinlich nicht von denen in anderen Guides unterscheiden (Constant Framerate 16-22, Animation, Slow, usw.), aber so bräuchte man als Einsteiger nur diesen Guide lesen.

Vielen Dank dafür!

#4

Mir stellt sich dabei eher folgende Frage: Wie konsumieren Zuschauer AMVs und wofür ist der Encode?
Die meisten auf Youtube. Also ergeben sich drei (3) Encoding-Szenarien:

  • Encode für Youtube-Upload: Youtube wünscht sich h264.
  • Encode für persönliche Archivierung: h265 erzeugt kleinere Dateien bei gleicher Qualität.
  • Encode für Events, und downloadende Leute: Abhängig von gewünschter Inklusion unterschiedlicher Playback-Hardware. h264 kann in der Regel hardwarebeschleunigt von allem abgespielt werden. h265 braucht mehr Power zum Dekodieren (Gefahr für minderwertiges Playback), hat aber den Dateigrößen-Vorteil.
#5

Die Frage stellt sich mir nicht. Mach das schon seit Jahren so. Yt bekommt eine hochskalierte x264 mit wenig kompression. Cons bekommen dumme x264 die sie abspielen können. Sollte man aber bei finalen encode für den heim Bereich auch von x265 absehen? Die Argumentation würde mich von @ceddic interessieren.

#6

Ich sehe aktuell eigentlich kein Einsatzgebiet für x265. Für x264 liegt es ja in der Veröffentlichung von Videos:

Bei HEVC Dateien stößt man leider immer noch viel zu häufig auf Kompatibilitätsprobleme und für die persönliche Archivierung wird wohl jeder einen lossless Codec benutzen.

Den größten Nutzen hat man von HEVC vermutlich wenn man mit deutschem Qualitätsinternet detaillierte Videos an wenige Leute verteilen möchte (also nicht über YT oder ähnliches). An dieser Stelle bietet sich dann aber wieder ein Hardware-Encoder an weil x265 elendig langsam ist und der Prozess damit wohl eher länger dauern würde als bei einem h264 encode.

Vielleicht hat jemand anderes einen wirklichen praktischen Nutzen von x265.
Persönlich encodiere ich meine letzte Final in der Regel mit x265 weil ich es kann, nicht weil es irgendwem wirklich nutzt. :upside_down_face:

1 Like