Warum ist die H.265-Kodierung von FFmpeg so viel effizienter als die von Adobe?

Warum ist die H.265-Kodierung von FFmpeg so viel effizienter als die von Adobe?

Ich habe eine 30 Sekunden lange 1080p-Videodatei, die von Premiere Pro/Media Encoder (Zielbitrate 10) gerendert und in H.265 kodiert wurde. Sie ist 36,6 MB groß. Wenn ich den Befehl ausführe

ffmpeg -i input -c:v libx265 -c:a copy output.mp4

die neue Datei hat nur 5,04 MB. mediainfozeigt, dass die neue Datei eine Bitrate von nur 1164 kb/s hat. Obwohl eines wesentlich kleiner ist als das andere, sehen beide Videos identisch aus (beide haben einen VMAF-Score von über 97 im Vergleich zur unkomprimierten Version).

Wählt es die libx265Bitrate intelligent und reduziert dadurch die Videogröße deutlich?

Antwort1

DuWillehaben beim erneuten Kodieren Daten verloren, unabhängig von der wahrgenommenen „Qualität“. Das ist einer der Gründe für die Größenreduzierung. Kleinere oder nicht wahrnehmbare Details gehen verloren oder werden durch die Algorithmen des Kompressors angenähert.

Der größte Unterschied wird jedoch darin bestehen, dass Adobe und andere ffmpegunterschiedliche Standardeinstellungen für Qualität und Bandbreite haben. Dass der „VMAF-Score“ ähnlich aussieht, zeigt lediglich, dass ein Mensch wahrscheinlich keinen Unterschied sehen wird, nicht, wie viele Daten verloren gegangen sind.

ffmpegdekodiert Frames und kodiert sie neu, wobei die Standardeinstellungen verwendet werden. Die Wahrscheinlichkeit ist groß, dass die Standardeinstellungen aggressiv sind undhttps://trac.ffmpeg.org/wiki/Encode/H.265Es wird standardmäßig das mediumQualitätsprofil verwendet.

Die Standardeinstellung ist „mittel“. Die Vorgabe bestimmt die Komprimierungseffizienz und beeinflusst somit die Kodierungsgeschwindigkeit. Gültige Voreinstellungen sind ultrafast, superfast, veryfast, faster, fast, , medium, slow, slower, veryslow, und placebo. Verwenden Sie die langsamste Vorgabe, für die Sie Geduld haben. Ignorieren Sie diese Vorgabe, placeboda sie nur unbedeutende Ergebnisse bei deutlicher Erhöhung der Kodierungszeit liefert.

Bei langsameren Komprimierungseinstellungen bleibt die ursprüngliche Qualität besser erhalten, allerdings sind die Dateien größer und die Komprimierungszeit länger.

ffmpegwird auch standardmäßig ein CRF von 28 verwendet, was eine relativ hohe Komprimierung darstellt

Wählen Sie ein CRF. CRF beeinflusst die Qualität. Der Standardwert ist 28 und sollte optisch dem libx264-Video bei CRF 23 entsprechen.

Es ist sogar möglich, dass ffmpegeinige erweiterte Komprimierungsfunktionen standardmäßig aktiviert sind. Adobe verzichtet möglicherweise auf einige Funktionen zur Codierungsannäherung zugunsten höherer Bitraten, um die Renderzeit zu verkürzen oder die Qualität oder andere Funktionen beizubehalten. Dies lässt sich nur schwer sagen, ohne genau zu wissen, welche Einstellungen verwendet werden.

Wenn Sie einen fairen Vergleich zwischen Adobe und den Ausgaben haben möchten, ffmpegsollten Sie in ein unkomprimiertes Format rendern, genau herausfinden, welche Einstellungen Adobe verwendet, und das dann komprimierenunkomprimiertDatei in beiden.

Das erneute Komprimieren einer bereits komprimierten Datei (Dekodieren und erneutes Kodieren) führt zuGenerationsverlustwas zwar bei einem einzigen Durchgang nicht signifikant aussieht, aber Daten und Qualität einbüßt. Nach mehreren Durchgängen ist der VerlustWillevon Bedeutung sein.

Antwort2

VMAFist für sehr hochwertige Kodierungen überhaupt kein gutes Maß. Selbst wenn Sie mathematisch identische Inhalte vergleichen, können Sie manchmal VMAF-Werte von nur etwa 97,4 erhalten, während nicht einmal VMAF 100 visuelle Transparenz garantiert.

Das bedeutet, dass VMAF-Werte fast nichts über die Qualität dieser spezifischen Kodierungen aussagen.

Zu dieser Zeit wäre die beste visuelle Metrik, die für nahezu transparente Videos geeignet wäre, eine Standbildmetrik wieButterauglioder SSIMULACRA.

verwandte Informationen