warum benutzt Adobe Media Encoder meine GPU nicht?

3 Antworten

Deine Grafikkarte kann nichts dafür...

Videorendering kann nur wenig von CUDARechenleistung profitieren, da hierbei vorwiegend Vergleiche zwischen verschiedenen Frames angestellt werden. Gerade diese Vergleichsoperationen (um festzustellen welche Bildbereich sich veändern/"wohin verschoben werden") sind der Flaschenhals in der gesamten Operation. Vergleichsoperationen sind nicht gerade die Stärke von Shaderprozessoren. Erst wenn klar ist wo ein Makroblock "hinwandert" könnte (theoretisch) eine Shadereinheit den Bewegungsvektor berechnen. Praktisch wäre der Aufwand für die Übergabe der nötigen Parameter jedoch höher als diese gleich in der CPU zu berechnen.

...Ergo lässt man die GPU aus dem Spiel.

Das hat nichts mit den in der Grafikhardware integrierten Hardwarevideoencodern zu tun. Diese haben lediglich 1..2 "festverdratete" Videoprofile zur Verfügung welche auf schnelle Renderinglösungen im Hintergrund ausgelegt sind. Schnell bedeutet in diesem Fall jedoch einen Spagat zwischen Qualität und Datenrate.

Andersherum ist es das Decodieren per Hardware kein großes Problem, da vorhandene Vektoren für Makroblöcke nur wiederzu einem Gesamtbild zusammengestellt werden müssen.

Wenn Du Dich mit Videoencoding beschäftigst, solltest Du auch wissen wie es (in etwa) intern funktioniert. Videokompression ist ein äußerst komplexer Prozess.

Ich kenne Zeiten, da benötige man bei extrem höher Qualität bis zu einer Stunde für ein Paar Minuten Video...

RengokuKyojuro 
Fragesteller
 09.07.2023, 10:41

Vielen Dank für die Aufklärung! Ich habe schon das problem gefunden und es ist wirklich dumm ohne ende😅. Ich habe die Adjustment layer nicht getrimmt und das hat dass rendern bzw. das arbeit so sehr erschwert. Ich habe das Video jetzt in 5min. rendern können.

1
Erzesel  09.07.2023, 10:53
@RengokuKyojuro

Wenn Du die Sache beschleunigen willst, teile Dein Video in Abschnitte bevorzugt bei Szenewechseln, spart unnötige I-Frames) und lass Diese von mehreren unabhängigen Instanzen deines Encoders parallel rendern. Je nach Anzahl deiner CPU-Kerne liefert das einen extreme Geschwindigkeitsgewinn. Die einzelnen "Abschnitte" kannst du anschließend im Videocontainer aneinanderhänngen.

1