VP9-Bitrate-Modi im Detail

Einführung

Auf den Seiten Grundlegende Codierung bieten wir allgemeine Informationen zu Bitratenmodi. Bei diesen handelt es sich aber nur um den Modus „Eingeschränkte Qualität“.

In diesem Dokument werden weitere praktische Möglichkeiten für die Anpassung von VP9-Bitraten beschrieben, um sie für verschiedene Szenarien zu optimieren. In den folgenden Beispielen wird FFmpeg verwendet.

Komprimierung

Technologien zur Videokomprimierung, z. B. VP9, reduzieren die Datenmenge, die für ein verständliches Bild und einen lebendigen Bewegungsfluss erforderlich ist.

Eine der wichtigsten Methoden hierfür ist die Quantisierung. Ein Quantierer vereinfacht verschiedene digitalisierte Elemente des Bilds mathematisch. So kann er beispielsweise die Reichweite von verwendeten Farben reduzieren und mathematische Berechnungen an den Daten weiter ausführen, um die Bildauflösung zu reduzieren. Es gibt viele solcher Funktionen.

Die Quantisierung wird auch in diesem Wikipedia-Artikel beschrieben.

In VP9 wird die Quantisierung für die Transformationskoeffizienten ausgeführt. Dies reduziert die erforderliche Bitrate, um die wahrgenommene Qualität beizubehalten, da sie der Codierung hinzugefügt wird.

Wenn mehr Quantisierung erforderlich ist (eine höhere Q-Nummer), gehen die Details verloren und die Qualität ist geringer. Zum Speichern des Frames sind jedoch weniger Daten erforderlich. In den meisten Fällen erreicht der VP9-Encoder seine Bitratenziele je nach Komplexität der einzelnen Frames im Lauf der Zeit.

Anwendungsfall optimieren

Damit der Nutzer die VP9-Komprimierung an seine spezifischen Anforderungen anpassen kann, kann er das Verhältnis zwischen Qualität und Bitrate zum Zeitpunkt der ersten Komprimierung über mehrere Schnittstellen programmieren.

Beim Encoder gibt es einen Kompromiss zwischen Geschwindigkeit, Qualität und Bitrate.

  • Wenn sich ein Nutzer auf Qualität konzentriert, muss er entweder für eine längere Codierungsdauer oder für eine schnellere und umfassendere Verarbeitungsressourcen vorbereitet sein.

  • Wenn sich ein Nutzer auf die VP9-codierte Datei konzentriert und diese schnell bereitstellen kann, muss er darauf vorbereitet sein, die Zeit zu reduzieren, die das Bild vom Quantisierer verarbeitet werden kann. Dies führt zu niedrigeren Details, zu denen der Quantierer beitragen kann.

  • Wenn sich ein Nutzer ausschließlich auf die Bereitstellungsgeschwindigkeit konzentriert (z. B. in einem Live-Webcast oder eine Zweiwege-Videokonferenz), kann die Quantisierung vollständig der Beschränkung der zulässigen Byte eines Datennetzwerks über ein Netzwerk (d. h. "bitrate") untergeordnet sein.

Welche Option geeignet ist, hängt vom jeweiligen Anwendungsfall ab. Damit Sie dieses Gleichgewicht einfacher an Ihren Anwendungsfall anpassen können, unterstützt VP9 die einfache Konfiguration in vier Bitratenmodi.

VP9-Bitratenmodi

Sehen wir uns zuerst die wichtigsten Bitratenmodi an, die von VP9 unterstützt werden:

Modus
Konstanter Quantizer (Q) Hiermit können Sie einen festen Quantisatorwert angeben. Die Bitrate variiert.
Beschränkte Qualität Hiermit können Sie eine höchste Qualitätsstufe festlegen. Die Qualität kann innerhalb der Bitratenparameter variieren.
Variable Bitrate (VBR) Schafft ein Gleichgewicht zwischen Qualität und Bitrate im Zeitverlauf innerhalb von Bitratenbeschränkungen.
Konstante Bitrate (CBR) Versuche, die Bitrate recht konstant zu halten, während die Qualität variiert

F

Diagramm für den Q-Modus

Der Modus „Konstanter Quantizer“ ist eine gute Wahl für Szenarien, in denen Bedenken hinsichtlich Dateigröße und Bitrate vollständig der Endqualität untergeordnet sind.

Anwendungsfälle für Q-Einstellungen gibt es z. B. in Digitalkino, Digital-Suite-Anwendungen oder Digital-Signage-Anwendungen, in denen die Inhalte auf einem physischen Speichermedium oder über einen zeitlich begrenzten Zeitrahmen bereitgestellt werden können – und zwar schon lange vor dem tatsächlichen Gebrauch und wenn die gewünschte Ausgabe von höchster visueller Qualität sein muss.

Bitratenoptimierung durch VP9-Q-Modus

Der Modus „Konstanter Quantizer“ erfordert eine minimale Konfiguration. Wie der Name schon vermuten lässt, konzentriert sich der Q-Modus auf die Beibehaltung des Quantifizierers auf einer Zielebene und auf diese Weise kann der Quantierer den Datenfluss bestimmen, den er verarbeiten möchte. Der Nutzer muss lediglich die Zielqualität festlegen.

Weitere Informationen zur Einzelheiten der Zielqualität aus einem Bildverarbeitungsfokus (nicht einem Bitrate-Fokus) findest du im Artikel zu grundlegenden Codierungen.

Verwenden Sie die folgenden FFmpeg-Befehlszeilenparameter für die Bitratenoptimierung im Q-Modus:

ffmpeg
-b:v 0 Wenn du die Video-Bitrate als 0 markierst, wird der Modus „Q&quot“ explizit festgelegt
-g <arg> Legt das Keyframe-Intervall in Frames fest (standardmäßig 240)
-crf <arg> Legt die maximale Qualitätsstufe fest. Gültige Werte sind: 0–63. Niedrigere Zahlen sind von höherer Qualität
-quality good -speed 0 Standardeinstellung und empfohlen für die meisten Anwendungen. best ist mehr ein Tool zur Recherche, das sich im Vergleich zu -quality good -speed 0 geringfügig verbessert hat
-lossless Verlustfreier Modus

Bitrate im Q-Modus : FFmpeg-Beispiele

Das erste Beispiel ist eine sehr extreme Einstellung im Q-Modus. Sie wird nur zur Veranschaulichung verwendet. (Das Verarbeiten des 120-Sekunden-Clips in diesen Beispielen dauert mehrere Stunden und die ausgegebene Ausgabedatei ist normalerweise viel größer als die ursprüngliche Quelle.)

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9 -g 1 -b:v 0 -crf 0 -quality good \
  -speed 0 -lossless 1 -c:a libvorbis Q_g_1_crf_0_120s_tears_of_steel_1080p.webm.webm

Für einen Vergleich der Auswirkungen von -crf variieren die folgenden Beispiele nur um -crf. Beachten Sie, dass -g nicht definiert ist. Standardmäßig wird 240 also auf -crf gesetzt. In der Praxis ist die Standardeinstellung 10, sodass das gleiche Ergebnis ohne den zweiten Parameter der folgenden drei Beispiele erzielt worden wäre:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9 -b:v 0 -crf 0 -quality good \
  -speed 0 -c:a libvorbis Q_crf_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -c:a libvorbis Q_crf_10_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9 -b:v 0 -crf 63 -quality good \
  -speed 0 -c:a libvorbis Q_crf_63_120s_tears_of_steel_1080p.webm

Die Ausgabe dieser Beispiele variiert je nach Größe des Laufwerks. Für -crf wurde 0 auf 711,8 MB festgelegt, für -crf auf 10 125,3 MB und für -crf auf 63 4,5 MB. In sehr einfachen Worten hebt dies hervor, dass wir die Qualität der resultierenden VP9-codierten Datei verringert haben, indem der Wert des Arguments -crf erhöht wurde. Eine vollständige Zusammenfassung aller Ausgabedateien findest du in der Tabelle der Ergebnisse unten.

Vergleichen wir nun die Auswirkung der Einstellung „-g“.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -g 1 -b:v 0 -quality good \
  -speed 0  -c:a libvorbis Q_g_1_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -g 240 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_240_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -g 480 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm

Mit der Einstellung -g 1 wird eine sehr große Datei mit 25, 9 MB erstellt. Vergleichen Sie dies mit dem Ändern von -g 240 (explizit dasselbe wie die Standardeinstellung), wobei die Datei 4,5 MB groß ist und die Datei -g 480 mit 4,4 MB.

Conversion-Rate

Die Befehlszeile ist ein empfohlener Modus für dateibasierte Videos.

Diagramm zum CQ-Modus

Für die meisten Inhaltstypen empfehlen wir den Modus „Eingeschränkter Qualität“ (CQ) mit Bitratenbeschränkungen. Die meisten Videos enthalten eine Mischung aus beweglichen Szenen (z.B. Actionsequenzen) und Szenen mit weniger Details (z.B. Unterhaltungen). Im CQ-Modus kann der Encoder für längere, einfachere Szenen (ohne Verschwendung von Bits) ein angemessenes Qualitätsniveau beibehalten, während für schwierige Sequenzen mehr Bits zugewiesen werden.

Dennoch müssen wir den Prozess im oberen Bereich einschränken, da sonst möglicherweise keine Komprimierung erforderlich wird. Wir können auch einen unteren Bereich festlegen, in dem selbst dann, wenn das Bild schwarz ist und der Codierungsprozess etwas nichts tut, den Datendurchsatz ignoriert. Das kann zwar weniger effizient sein als möglich, aber am Ende sehen Sie, dass auch das Schwarz nicht komprimiert ist und in Schwarz gehalten wird.

Zusätzlich muss der Quantisierergrenzwert festgelegt werden. In VP9 kann der Quantizer-Schwellenwert von 0 bis 63 variieren.

Die folgenden FFmpeg-Befehlszeilenparameter werden für den CQ-Modus verwendet:
ffmpeg
-b:v <arg> Legt die Zielbitrate fest (z. B. 500.000)
-minrate <arg>
-maxrate <arg>
Legt die minimale und maximale Bitrate fest.
-crf <arg> Legt die maximale Qualitätsstufe fest. Gültige Werte sind: 0 bis 63. Niedrigere Zahlen sind von höherer Qualität.
CQ-Bitrate-Modus: FFMPEG-Beispiele

Das erste Beispiel ist eine recht allgemeine Einschränkung. Im Vergleich zu den oben aufgeführten Beispielen für Q stellt er fest, dass er so den Bitratenbereich erhöht und die Ausgabequalität deutlich höher ist. Die Datei ist deutlich größer.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1000k -maxrate 4000k -crf 10  -c:a libvorbis \
  CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm

Die Ausgabedatei in dieser Instanz war auf dem Laufwerk 20,2 MB groß.Das ist deutlich geringer als bei der Codierung des Q-Modus in den Beispielen oben.

Im Gegensatz zum nächsten Beispiel haben wir die Bitrate auf einen deutlich genaueren Bereich beschränkt.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10  -c:a libvorbis \
  CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm

In diesem Fall betrug die Größe der Ausgabedatei 24, 1 MB.Bei hoher Komplexität und Bewegung ist die Videoqualität im Vergleich zum vorherigen Beispiel deutlich geringer.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 1000k \
  -minrate 750k -maxrate 1400k -crf 10  -c:a libvorbis \
  CQ_1400_750_crf_10_120s_tears_of_steel_1080pp.webm

In diesem letzten Beispiel wurde die Ausgabe deutlich reduziert, wodurch sie auf dem Laufwerk auf 13, 2 MB gesunken ist.

Vbr-

Der Modus „Variable Bitrate“ (VBR) wird für das Streamen von On-Demand-Dateien mit High-Motion-Inhalten (z. B. Sport) empfohlen. Sie eignet sich gut für HTTP-basierte Auslieferung.

Diagramm für VBR-Modus

In einem VBR-Modell können Actionszenen mit einer höheren Bitrate codiert werden als einfachere Szenen, die mit dem Keyframe konsistent sind.

Bei großen Streaming-Bereitstellungsmodellen können sich die VBR-Vorteile sowohl in Bezug auf den Vertrieb als auch in Bezug auf die Infrastruktur erheblich addieren. Wenn viele VBR-Streams von derselben Infrastruktur bereitgestellt werden, bietet dies Vorteilen für alle Zuschauer, die das System verwenden.

VP9 VBR wird auch für die Codierung von Sport und anderen Inhalten mit hoher Bewegung empfohlen. Bei solchen komplexen Inhalten wird durch VBR eine höhere Qualität in Phasen niedrigerer Bewegung erreicht.

Die folgenden FFmpeg-Befehlszeilenparameter werden für den VBR-Modus verwendet:
ffmpeg
-quality good Ist das der Fall, berücksichtigt FFmpeg die nachfolgende Einstellung -speed.
-speed <arg> Für VIDEO ON DEMAND sind gültige Werte 0–4, wobei 0 die höchste Qualität und 4 der niedrigste Wert ist. (Für Livestreaming liegt der Bereich zwischen 5 und 8 – siehe CBR unten.)
VBR-Bitrate: FFMPEG-Beispiele
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 0  -c:a libvorbis \
  VBR_good_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5  -c:a libvorbis \
  VBR_good_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 8  -c:a libvorbis \
  VBR_good_8_120s_tears_of_steel_1080pp.webm

CBR

Für das Livestreaming mit VP9 wird der Modus „Konstante Bitrate“ (CBR) empfohlen.

Diagramm zum CBR-Modus

Bei der CBR wird die obere Bitrate im Wesentlichen als „harte Decke“ festgelegt. Das bedeutet, dass der Codierungsprozess keine Daten mit einer Geschwindigkeit erzeugen kann, die das Netzwerk nicht bewältigen kann.

Bei Echtzeit-Kommunikation (Videokonferenzen) ist es beispielsweise wichtig, dass die Codierungsanwendung das Netzwerk nicht mit mehr Daten überflutet, als es kann. Ist das der Fall, wirken sich Probleme bei der Synchronisierung von Audio oder Video erheblich oder stark auf die Nutzerfreundlichkeit aus – nicht nur auf die Komprimierung. Durch die Definition der festen Decke wird die Qualität beim Erreichen der Obergrenze verringert.

Die folgenden FFmpeg-Befehlszeilenparameter werden für den CBR-Modus verwendet:
ffmpeg
-quality realtime Ist das der Fall, berücksichtigt FFmpeg die nachfolgende Einstellung -speed.
-speed <arg> Gültige Werte für das Livestreaming sind 5 bis 8, wobei 5 die höchste Qualität und 8 die niedrigste Qualität ist. Für Video-on-Demand liegen sie zwischen 0 und 4. Siehe „VBR“ oben.
-minrate <arg>
-maxrate <arg>
Mindest- und Höchstbitrate festlegen ** Diese Zeichen müssen für den CBR-Modus auf denselben Bitratenwert von -b:v festgelegt sein.**

Sehr einfach korrigieren wir das Ziel, die minimale und die maximale Bitrate auf denselben Wert und teilen dem Quantierer mit, dass die Vorgänge zeitkritisch sind.

CBR-Bitratemodus: FFMPEG-Beispiele

In den folgenden Beispielen wird erläutert, wie du die Bitrate auf 2 Mbit/s und 500 kbit/s festlegst:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 0 -c:a libvorbis \
  CBR_2000_realtime_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
  CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 8 -c:a libvorbis \
  CBR_2000_realtime__8_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 0 -c:a libvorbis \
  CBR_500_realtime__0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
  CBR_500_realtime_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
  CBR_500_realtime_8_120s_tears_of_steel_1080p.webm

Ergebnisse

Jeder der oben genannten Codierungen wurde auf einem Ubuntu-Linux-System mit den folgenden Spezifikationen ausgeführt:

  • Prozessor: 4x Intel(R) Core(TM) i5-6500 CPU mit 3,20 GHz
  • Arbeitsspeicher (RAM): 8.060 MB (1.492 MB verwendet)
  • Grafik: Intel HD Graphics 530 (Skylake GT2)
  • Betriebssystem: Ubuntu 16.04 LTS

Die Quelldatei war in allen Fällen ein 1, 20 Sekunden langer Clip aus Tears of Steel gekürzt.

Datei Minuten codieren Dateigröße auf Festplatte
Q_g_1_crf_0_120s_tears_of_steel_1080p.webm. 81 1,06 GB
Q_crf_0_120s_tears_of_steel_1080p.webm. 131 711,8 MB
Q_crf_10_120s_tears_of_steel_1080p.webm. 118 125,3 MB
Q_crf_63_120s_tears_of_steel_1080p.webm. 27 4,5 MB
Q_g_1_120s_tears_of_steel_1080p.webm. 51 25,9 MB
Q_g_240_120s_tears_of_steel_1080p.webm. 28 4,5 MB
Q_g_480_120s_tears_of_steel_1080p.webm. 10 4,4 MB
CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm 11 20,2 MB
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm / 9 24,1 MB
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm 50 13,2 MB
VBR_good_0_120s_tears_of_steel_1080p.webm. 3 23,4 MB
VBR_good_5_120s_tears_of_steel_1080p.webm. 4 23,9 MB
VBR_good_8_120s_tears_of_steel_1080p.webm. 1 23,9 MB
CBR_2000_realtime_speed_0_120s_tears_of_steel_1080p.webm 98 21MB
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 2 24,8 MB
CBR_2000_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 21MB
CBR_500_realtime_speed_0_120s_tears_of_steel_1080p.webm 73 6,2 MB
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 8.5MB
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 7,1 MB

Die Einstellung von -speed für die Werte über 5 ändert die VP9-Verarbeitungsgeschwindigkeit. Zwar ist dies eine deutliche Erhöhung der Quantisierung, d. h. die starke Auswirkung auf die Bitrate von 1.080p ist sehr gering, aber VP9 ist immer noch eine sehr niedrige Bitrate von 1.080p und dennoch besser für kleinere Mobilgeräte geeignet als für größere Displays.

Hinweise zu Anwendungsfällen mit automatischer Skalierung (Größenänderung)

Die Bitratenmodi von VP9-Videos sind offensichtlich nicht isoliert. Sie können mit vielen anderen Argumenten und Parametern kombiniert werden, um sie gezielt auf Anwendungsfälle auszurichten. Ein typischer Anwendungsfall kann darin bestehen, die Größe des Ausgabevideos zu ändern und ein bestimmtes Gerät als Ziel zu verwenden.

Ein klassisches Beispiel hierfür ist die Änderung eines HD-Streams in eine SD-Ausgabe. Auch hier hat dies erhebliche Auswirkungen auf die Verarbeitungszeit und die Ausgabebitrate. Wenn zwei FFmpeg-Befehle ansonsten identisch sind, wird durch die Anpassung der Größe des Ausgabevideos die Größe der resultierenden Datei und auch die Bitrate in einem Streamingmodell geändert.

Als Beispiel haben wir für jeden der Bitratenmodi ein Mittelfeld verwendet und einfach neue Parameter für die Skalierung hinzugefügt.

Q-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -vf scale=640x480 -c:a libvorbis 640x480_Q_crf_10_120s_tears_of_steel_1080p.webm
CQ-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
VBR-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
CBR-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

Tabelle mit Ergebnissen für die Neuskalierung

Datei Minuten codieren Dateigröße auf Festplatte
640 x 480_Q_crf_10_120s_tears_of_steel_1080p.webm 5 3,4 MB
640 x 480_CQ_crf_0_120s_tears_of_steel_1080p.webm 2 22,4 MB
640 x 480_VBR_good_5_120s_tears_of_steel_1080p.webm 1 22,6 MB
640 x 480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm 4 23MB

Der Einfachheit halber sind das die gleichen FFmpeg-Befehle wie in den vorherigen Beispielen, aber ohne die Skalierung:

Datei Minuten codieren Dateigröße auf Festplatte
Q_crf_10_120s_tears_of_steel_1080p.webm. 56 126
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm / 9 24,1 MB
VBR_good_5_120s_tears_of_steel_1080p.webm. 4 23,9 MB
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 24,8 MB

Wie Sie sehen, gibt es eine erhebliche Verringerung der Ausgabedatei für jede Datei. In den meisten Beispielen gibt es eine Reduzierung der Codierungszeit, im Q-Modus hat sich die Codierung jedoch tatsächlich erhöht. Das Komprimieren eines Videos – mehr – erfordert mehr Aufwand. Selbst wenn zu erwarten ist, dass die Ausgabedatei kleiner ist, wenn die Qualität nicht eingeschränkt ist (wie im Q-Modus), kann dies tatsächlich den Vorgang der Produktion der Ausgabedatei verlängern. Nehmen Sie nicht an, dass eine kleinere Datei durch den Codierungsprozess immer schneller bereitgestellt werden kann.

Neuskalierung und Reduzierung in Kombination

In einem letzten Vergleich werden in den folgenden Beispielen die Beispiele für erneute Skalierung von CQ, VBR und CBR noch einmal ausgeführt. Dieses Mal wird die Zielbitrate auf ein Level von 500 kBit/s beschränkt, also ungefähr ein Viertel (in Übereinstimmung mit der Skalierung der Bildgröße).

CQ-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 350k -maxrate 550k -crf 10 -vf  scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
VBR-Modus
ffmpeg -i "120s_tears_of_steel_1080p.webm" -c:v vp9  -b:v 500k \
  -minrate 350k -maxrate 500k -quality good -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
CBR-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

Tabelle mit Ergebnissen für die Neuskalierung und Verringerung der Zielbitrate

Datei Minuten codieren Dateigröße auf Festplatte
640 x 480_CQ_500_crf_0_120s_tears_of_steel_1080p.webm 1 7MB
640 x 480_VBR_500_good_5_120s_tears_of_steel_1080p.webm 1 7MB
640 x 480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm 1 7,6 MB

Wie Sie sehen, wurde die Codierungszeit verkürzt.