VP9-Bitratenmodi im Detail
Einführung
Auf unseren Seiten zur einfachen Codierung finden Sie zwar allgemeine Informationen zu Bitratenmodi, aber nur zum CQ-Modus (Constrained Quality, eingeschränkte Qualität).
In diesem Dokument werden weitere praktische Möglichkeiten beschrieben, wie Sie VP9-Bitraten anpassen können, um sie für verschiedene Szenarien zu optimieren. In den folgenden Beispielen wird FFmpeg verwendet.
Komprimierung
Videokomprimierungstechnologien wie VP9 sollen die Datenmenge reduzieren, die erforderlich ist, um Endnutzern ein verständliches Bild und ein Gefühl von Bewegung zu vermitteln.
Eine der wichtigsten Techniken, die dabei zum Einsatz kommen, ist die Quantisierung. Ein Quantisierer vereinfacht verschiedene digitalisierte Elemente des Bildes mathematisch. So kann beispielsweise der verwendete Farbbereich reduziert werden. Außerdem können mathematische Funktionen auf die Daten angewendet werden, um den wahrgenommenen Mangel an feiner Auflösung im reduzierten Farbbereich auszugleichen. Es gibt viele solcher Funktionen.
Die Quantisierung (oder „Q“) wird im entsprechenden Wikipedia-Artikel gut beschrieben.
In VP9 wird die Quantisierung auf die Transformationskoeffizienten angewendet. Dadurch wird die erforderliche Bitrate reduziert, um die wahrgenommene Qualität aufrechtzuerhalten.
Je höher die Quantisierungszahl (Q-Zahl), desto mehr Details gehen verloren und desto geringer ist die Qualität. Allerdings werden auch weniger Daten zum Speichern des Frames benötigt. In den meisten Fällen erreicht der VP9-Encoder seine Bitratenziele, indem er den Q-Wert im Laufe der Zeit ändert, je nach Komplexität der einzelnen Frames.
Optimierung von Anwendungsfällen
Damit der Nutzer die VP9-Komprimierung an seine spezifischen Anforderungen anpassen kann, ist es möglich, das Verhältnis von Qualität und Bitrate bei der ersten Komprimierung über eine Reihe von Programmierschnittstellen anzupassen.
Der Encoder bietet einen gleitenden Kompromiss zwischen Geschwindigkeit, Qualität und Bitrate.
Wenn ein Nutzer Wert auf Qualität legt, muss er entweder mit längeren Codierungszeiten rechnen oder schnellere und umfangreichere Verarbeitungsressourcen bereitstellen.
Wenn ein Nutzer darauf achtet, dass die VP9-codierte Ausgabedatei klein ist und schnell ausgeliefert werden kann, muss er die Zeit reduzieren, die der Quantizer für die Verarbeitung des Bildes benötigt. Dies führt zu einer geringeren Detailtiefe, mit der der Quantizer arbeiten kann.
Wenn ein Nutzer sich ausschließlich auf die Übertragungsgeschwindigkeit konzentriert (z. B. bei einem Live-Webcast oder einer bidirektionalen Videokonferenz), kann die Quantisierung vollständig den Einschränkungen der Rate untergeordnet sein, mit der nutzbare Datenbytes über ein Netzwerk übertragen werden können (d. h. „Bitrate“).
Die richtige Wahl hängt stark 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) | Sie können einen festen Quantisierungsfaktor angeben. Die Bitrate variiert. |
Eingeschränkte Qualität (Constrained Quality, CQ) | Damit können Sie eine maximale Qualitätsstufe festlegen. Die Qualität kann innerhalb der Bitratenparameter variieren |
Variable Bitrate (VBR) | Gleicht Qualität und Bitrate im Zeitverlauf innerhalb von Bitratenbeschränkungen aus |
Konstante Bitrate (CBR) | Die Bitrate wird möglichst konstant gehalten, während die Qualität variiert. |
Q
Der Modus „Konstanter Quantizer“ ist eine gute Wahl für Szenarien, in denen Bedenken hinsichtlich Dateigröße und Bitrate völlig nachrangig gegenüber der endgültigen Qualität sind.
Anwendungsfälle für Q-Einstellungen finden sich in digitalen Kinos, digitalen Schnittplätzen oder Digital-Signage-Anwendungen, in denen die Inhalte auf einem physischen Speichermedium oder über einen unbegrenzten Zeitraum bereitgestellt werden können – weit im Voraus, bevor die Inhalte tatsächlich verwendet werden, und in denen die gewünschte Ausgabe von höchster visueller Qualität sein muss.
Bitratenoptimierung im VP9-Q-Modus
Der Modus „Konstanter Quantizer“ erfordert nur eine minimale Konfiguration. Wie der Name schon sagt, liegt der Fokus des Q-Modus darauf, den Quantisierer auf einem bestimmten „Qualitätsniveau“ zu halten und ihm zu erlauben, den Datenfluss zu bestimmen, den er verarbeiten möchte. Der Nutzer muss nur die Zielqualität festlegen.
Weitere Informationen zur Zielqualität aus Sicht der Bildverarbeitung (nicht der Bitrate) finden Sie im Artikel Einfache Codierung.
Verwenden Sie die folgenden FFmpeg-Befehlszeilenparameter für die Bitratenoptimierung im Q-Modus:
ffmpeg | |
---|---|
-b:v 0 |
Wenn Sie die Videobitrate als 0 markieren, wird der Modus „Q“ explizit festgelegt. |
-g <arg> |
Legt das Keyframe-Intervall in Frames fest (Standardwert: 240). |
-crf <arg> |
Legt die maximale Qualitätsstufe fest. Gültige Werte sind 0–63. Niedrigere Zahlen stehen für höhere Qualität |
-quality good -speed 0 |
Standardeinstellung und für die meisten Anwendungen empfohlen. best ist eher ein Recherchetool, das nur geringfügig besser als -quality good -speed 0 ist. |
-lossless |
Verlustfreier Modus |
Bitrate im Q-Modus : FFmpeg-Beispiele
Das erste Beispiel ist eine sehr extreme Einstellung für den Q-Modus und dient nur zur Veranschaulichung. Selbst die Verarbeitung des 120-Sekunden-Clips in diesen Beispielen dauert mehrere Stunden und die erstellte Ausgabedatei ist in der Regel viel größer als die ursprüngliche Quelle.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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
Um die Auswirkungen von -crf
zu vergleichen, wird in den folgenden Beispielen nur -crf
variiert. -g
ist nicht definiert und wird daher standardmäßig auf 240
gesetzt. In der Praxis wird -crf
standardmäßig auf 10
gesetzt. Wir hätten also dasselbe Ergebnis erhalten, ohne einen der beiden Parameter im zweiten der drei Beispiele anzugeben:
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 libvpx-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 libvpx-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 unterscheidet sich in der Größe auf der Festplatte. Mit -crf
auf 0
eingestellt hatte die Datei eine Größe von 711,8 MB, mit -crf
auf 10
eingestellt 125,3 MB und mit -crf
auf 63
eingestellt 4,5 MB. Einfach ausgedrückt bedeutet das, dass wir die Qualität der resultierenden VP9-codierten Datei reduziert haben, indem wir den Wert des Arguments -crf
erhöht haben. Eine vollständige Zusammenfassung aller Ausgabedateien finden Sie in der Tabelle mit den Ergebnissen unten.
Sehen wir uns nun an, wie sich eine Änderung der Einstellung -g
auswirkt.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 libvpx-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 libvpx-vp9 -g 480 -b:v 0 -quality good \
-speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm
Wir haben festgestellt, dass die Einstellung -g 1
eine sehr große Datei mit einer Größe von 25,9 MB erzeugt.
Vergleichen Sie dies mit der Änderung von -g 240
(explizites Festlegen des Standardwerts), bei der wir eine 4,5 MB große Datei erhalten, und -g 480
, bei der wir eine 4,4 MB große Datei erhalten.
CQ
CQ ist ein empfohlener Modus für dateibasierte Videos.
Für die meisten Inhaltstypen empfehlen wir den Modus „Constrained Quality“ (CQ) mit Bitratenbegrenzungen. Die meisten Videos enthalten eine Mischung aus Szenen mit viel Bewegung (z.B. Actionsequenzen) und Szenen mit weniger Details (z.B. Gespräche). Im CQ-Modus kann der Encoder bei längeren, einfacheren Szenen ein angemessenes Qualitätsniveau beibehalten (ohne Bits zu verschwenden) und gleichzeitig mehr Bits für schwierige Sequenzen zuweisen.
Dennoch müssen wir den Prozess einschränken, indem wir einen oberen Bereich angeben, da sonst möglicherweise überhaupt keine Komprimierung erfolgt. Wir können auch einen niedrigeren Bereich festlegen. Selbst wenn das Bild schwarz ist und der Codierungsprozess fast nichts zu tun hat, werden die Daten trotzdem übertragen. Das ist zwar möglicherweise weniger effizient, aber das Endergebnis ist, dass auch das Schwarz nicht wesentlich komprimiert wird und „sehr schwarz“ aussieht.
Außerdem müssen wir auch den Quantizer-Schwellenwert festlegen. In VP9 kann der Quantizer-Schwellenwert zwischen 0
und 63
variieren.
Die folgenden FFmpeg-Befehlszeilenparameter werden für den CQ-Modus verwendet:
ffmpeg | |
---|---|
-b:v <arg> |
Legt die Zielbitrate fest (z. B. 500 k). |
-minrate <arg> -maxrate <arg> |
Legt die Mindest- und Höchstbitrate fest. |
-crf <arg> |
Legt die maximale Qualitätsstufe fest. Gültige Werte sind 0 bis 63 . Niedrigere Zahlen stehen für eine höhere Qualität. |
Bitratenmodus „Konstante Qualität“: FFmpeg-Beispiele
Das erste Beispiel enthält eine relativ breite Einschränkung. Im Vergleich zu den oben genannten Beispielen für Q werden die Bitraten jedoch in einen höheren Bereich gezwungen und die Ausgabequalität ist deutlich höher. Die Dateigröße ist deutlich größer.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 hatte in diesem Fall eine Größe von 20,2 MB auf der Festplatte – deutlich kleiner als die Q-Modus-Codierung in den obigen Beispielen.
Im Gegensatz dazu haben wir im nächsten Beispiel die Bitrate auf einen viel engeren Bereich beschränkt.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 Ausgabedateigröße 24, 1 MB.Bei hoher Komplexität und Bewegung ist die Videoqualität im Vergleich zum vorherigen Beispiel sichtbar reduziert.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 1000k \
-minrate 750k -maxrate 1400k -crf 10 -c:a libvorbis \
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm
In diesem letzten Beispiel wurde die Größe der Ausgabe erheblich reduziert und beträgt nur noch 13,2 MB auf der Festplatte.
VBR
Der Modus mit variabler Bitrate (VBR) wird für das Streamen von Video-on-Demand-Dateien mit Inhalten mit vielen Bewegungen (z. B. Sport) empfohlen. Es eignet sich gut für die HTTP-basierte Bereitstellung.
Bei einem VBR-Modell werden Actionszenen möglicherweise mit einer höheren Bitrate codiert als „einfachere“ Szenen, die mit dem Keyframe übereinstimmen.
Bei großen Streaming-Bereitstellungsmodellen können sich die VBR-Vorteile sowohl in Bezug auf die Verteilung als auch auf die Infrastruktur erheblich summieren. Wenn viele VBR-Streams über dieselbe Infrastruktur bereitgestellt werden, kann dies Vorteile für alle Zuschauer bieten, die das System nutzen.
VP9 VBR wird auch für die Codierung von Sport- und anderen Inhalten mit viel Bewegung empfohlen. Bei solchen Inhalten mit hoher Komplexität wird mit VBR in Phasen mit geringer Bewegung eine höhere Qualität erzielt.
Die folgenden FFmpeg-Befehlszeilenparameter werden für den VBR-Modus verwendet:
ffmpeg | |
---|---|
-quality good |
Die good -Qualität ist für Video-on-Demand geeignet. |
-speed <arg> |
Für VIDEO ON DEMAND sind die gültigen Werte 0–5, wobei 0 die höchste und 5 die niedrigste Qualität ist. Beim Livestreaming liegt der Bereich zwischen 5 und 9 (siehe CBR unten). |
VBR-Bitratenmodus: FFmpeg-Beispiele
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 libvpx-vp9 -b:v 2000k \
-minrate 1500k -maxrate 2500k -quality good -speed 5 -c:a libvorbis \
VBR_good_5_120s_tears_of_steel_1080p.webm
CBR
Für Livestreams mit VP9 wird der Modus „Konstante Bitrate“ (CBR) empfohlen.
Bei CBR wird die obere Bitrate als „harte Obergrenze“ festgelegt. Das bedeutet, dass beim Codieren keine Daten mit einer Rate erzeugt werden können, die das Netzwerk nicht bewältigen kann.
Bei Streams für die Echtzeitkommunikation (Videokonferenzen) ist es beispielsweise wichtig, dass die Codierungsanwendung das Netzwerk nicht mit mehr Daten überflutet, als es übertragen kann. Wenn dies der Fall ist, beeinträchtigen Probleme mit der Audio-/Videosynchronisierung oder eingefrorene Frames die Nutzerfreundlichkeit erheblich, mehr als eine geringere Komprimierungseffizienz. Wenn die Obergrenze definiert ist, wird die Qualität durch VP9 reduziert, sobald diese erreicht ist.
Die folgenden FFmpeg-Befehlszeilenparameter werden für den CBR-Modus verwendet:
ffmpeg | |
---|---|
-quality realtime |
Die Qualität von realtime ist für Livestreams geeignet |
-speed <arg> |
Für Livestreams sind die Werte 5 bis 9 gültig, wobei 5 die höchste und 9 die niedrigste Qualität ist. Bei Video-on-Demand sind das 0 bis 5. Siehe oben.) |
-minrate <arg> -maxrate <arg> |
Legt die Mindest- und Höchstbitrate fest. ** Diese müssen für den CBR-Modus auf denselben -b:v -Bitratenwert festgelegt werden.** |
Vereinfacht gesagt legen wir die Ziel-, Mindest- und Höchstbitrate auf denselben Wert fest und teilen dem Quantisierer mit, dass die Vorgänge zeitkritisch sind.
CBR-Bitratenmodus: FFmpeg-Beispiele
In den folgenden Beispielen wird die Bitrate auf 2 Mbit/s und 500 kbit/s festgelegt:
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 libvpx-vp9 -b:v 500k \
-minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
-minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm
Ergebnisse
Jede der oben genannten Codierungen wurde auf einem Ubuntu Linux-System mit den folgenden Spezifikationen durchgeführt:
- Prozessor: 4 × Intel(R) Core(TM) i5-6500 CPU @ 3,20 GHz
- Arbeitsspeicher (RAM): 8060 MB (1492 MB verwendet)
- Grafik: Intel HD Graphics 530 (Skylake GT2)
- Betriebssystem: Ubuntu 16.04 LTS
Die Quelldatei war in allen Fällen ein 1:20 Minuten langer Clip aus dem Film Tears Of Steel.
Datei | Codierte Min. | Dateigröße auf dem Datenträger |
---|---|---|
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 |
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 | 21 MB |
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm | 1 | 8,5 MB |
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm | 1 | 7,1 MB |
Es war auffällig, dass die Verarbeitung von VP9 bei -speed
-Werten über 5
schneller erfolgt. Das ist zwar eine erhebliche Steigerung der Quantisierung (die sich im stark „geditherten“ Effekt bei den sehr niedrigen Bitraten mit geringer Qualität zeigt), aber VP9 kann trotzdem eine sehr gute 1080p-Ausgabe mit niedriger Bitrate erzeugen, die sich jedoch besser für kleinere Mobilgeräte als für größere Displays eignet.
Überlegungen zu Anwendungsfällen mit Reskalierung (Größenänderung)
Die Bitratenmodi von VP9 sind natürlich nicht isoliert und können mit vielen anderen Argumenten und Parametern kombiniert werden, um bestimmte Anwendungsfälle zu berücksichtigen. Ein typischer Anwendungsfall ist das Anpassen der Abmessungen des Ausgabevideos für ein bestimmtes Gerät.
Ein klassisches Beispiel hierfür ist die Änderung eines HD-Streams in eine SD-Ausgabe. Auch dies hat erhebliche Auswirkungen auf die Verarbeitungszeit und die Ausgabebitrate. Wenn zwei FFmpeg-Befehle ansonsten identisch sind, ändert sich durch die Anpassung der Größe des Ausgabevideos die Größe der resultierenden Datei und tatsächlich auch die Bitrate in einem Streamingmodell.
Zur Veranschaulichung haben wir für jeden Bitratenmodus ein Beispiel aus der Mitte des Bereichs ausgewählt und einfach Reskalierungsparameter hinzugefügt.
Q‑Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 libvpx-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 libvpx-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 libvpx-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
Ergebnistabelle für die Neuskalierung
Datei | Codierte Min. | Dateigröße auf dem Datenträger |
---|---|---|
640x480_Q_crf_10_120s_tears_of_steel_1080p.webm | 5 | 3,4 MB |
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm | 2 | 22,4 MB |
640x480_VBR_good_5_120s_tears_of_steel_1080p.webm | 1 | 22,6 MB |
640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm | 4 | 23 MB |
Zur besseren Vergleichbarkeit sind dies dieselben FFmpeg-Befehle wie in unseren vorherigen Beispielen, jedoch ohne die Skalierung:
Datei | Codierte Min. | Dateigröße auf dem Datenträger |
---|---|---|
Q_crf_10_120s_tears_of_steel_1080p.webm | 56 | 126 MB |
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, ist die Ausgabedateigröße in allen Fällen deutlich geringer. In den meisten Beispielen ist auch die Codierungszeit kürzer, im Q-Modus hat sie sich jedoch verlängert. Das Komprimieren eines Videos erfordert mehr Aufwand. Auch wenn die Ausgabedatei bei uneingeschränkter Qualität (wie im Q-Modus) kleiner sein sollte, kann sich die Zeit für die Erstellung der Ausgabedatei dadurch verlängern. Gehen Sie nicht davon aus, dass eine kleinere Datei durch die Codierung immer schneller bereitgestellt werden kann.
Kombination aus Reskalierung und Reduzierung der Bitrate
Zum Schluss werden die Beispiele für CQ, VBR und CBR noch einmal ausgeführt, aber dieses Mal wird die Zielbitrate auf 500 kbit/s begrenzt – etwa ein Viertel (entsprechend der Verkleinerung der Bildgröße).
CQ-Modus
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-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 libvpx-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 libvpx-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
Ergebnistabelle für das Reskalieren und Senken der Zielbitrate
Datei | Codierte Min. | Dateigröße auf dem Datenträger |
---|---|---|
640x480_CQ_500_crf_0_120s_tears_of_steel_1080p.webm | 1 | 7 MB |
640x480_VBR_500_good_5_120s_tears_of_steel_1080p.webm | 1 | 7 MB |
640x480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm | 1 | 7,6 MB |
Wie Sie sehen, wurde die Codierungszeit noch weiter verkürzt.