Empfohlene Einstellungen
In diesem Abschnitt finden Sie Empfehlungen zur VP9-Codierung für verschiedene gängige Profile:
- Hochgradig optimierte Videos für Web und Mobilgeräte (VOD)
- Verbreitung von Premium-Inhalten (VOD)
- Sport, Animation, 10‑Bit-Inhalte (VOD)
- Livecodierung
- WebRTC
Einführung
Beim Codieren von Videos sind einige Aspekte zu berücksichtigen:
- Erstellen Sie eine einzelne Version Ihrer Media oder mehrere Versionen mit unterschiedlichen Bitraten und Auflösungen?
- Erstellen Sie einen Live-Videostream oder On-Demand-Videodateien?
- Welche Art von Medien codieren Sie? Gibt es viele Bewegungen? Detail? Animation?
- Codierst du für maximale Qualität (z.B. Premium-Inhalte) oder Geschwindigkeit (z.B. Webkonferenzen)?
In diesem Abschnitt werden zuerst die Einstellungen für eine einfache On-Demand-Videodatei beschrieben und dann Empfehlungen für alle diese Fragen gegeben.
Grundlegende Einstellungen
Konversation zur Lösung des Problems.Bitraten für die Codierung
Die folgenden Bitraten werden als Mindestanforderungen für die Web- und Mobilgerätebereitstellung empfohlen. Diese Vorschläge minimieren die Bitrate und sorgen gleichzeitig für eine Videoqualität, die für die Web- und Mobilgeräteverteilung geeignet ist. Sie können als Empfehlung für eine „niedrige“ Bitrate betrachtet werden, mit der sich immer noch eine angemessene Qualität erzielen lässt.
Vorgeschlagene Zielbitraten
Framegröße/‑rate | Durchschnittliche Bitrate (VOD, kbit/s) | Durchschnittliche Bitrate (Live, kbit/s) |
---|---|---|
320 × 240p bei 24,25,30 | 150 | 250 |
640 × 360p bei 24,25,30 | 276 | 386 |
640 × 480p bei 24,25,30 | 512 (LQ), 750 (MQ) | 720 (LQ), 1024 (MQ) |
1280 × 720p bei 24,25,30 | 1024 | 1440 |
1280 × 720p bei 50,60 | 1800 | 2.500 |
1.920 × 1.080 Pixel bei 24,25,30 fps | 1800 | 2.500 |
1.920 × 1.080p bei 50,60 | 3000 | 4200 |
2560 × 1440 p bei 24,25,30 | 6000 | 8400 |
2560 × 1440 p bei 50,60 | 9000 | 12600 |
3.840 × 2.160 Pixel bei 24,25,30 fps | 12.000 | 16800 |
3840 × 2160p bei 50,60 | 18000 | 25200 |
Abbildung 2a: Zielbitraten
VOD-Codierungseinstellungen
Einstellungen für die meisten Arten von Inhalten
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 in längeren, einfacheren Szenen ein angemessenes Qualitätsniveau beibehalten, ohne Bits zu verschwenden, und gleichzeitig mehr Bits für schwierige Sequenzen zuweisen.
Wir empfehlen außerdem, den Bitratenbereich von 50% bis 150% des Zielwerts zuzulassen und die im Diagramm unten angegebenen Qualitätswerte zu verwenden. Für diesen Modus ist die Codierung in zwei Durchgängen erforderlich. Für HD und höher werden schnellere Einstellungen empfohlen, wie unten angegeben.
Encoder-Einstellungen für die CQ-Codierung
Frame-Höhe | Zielqualität (CQ) | Codierungsmodus |
---|---|---|
240 | 37 | TWO_PASS_MEDIUM |
360 | 36 | TWO_PASS_MEDIUM |
480 | 34 (geringe Qualität) oder 33 (mittlere Qualität) | TWO_PASS_MEDIUM |
720 | 32 | TWO_PASS_FAST |
1080 | 31 | TWO_PASS_FAST |
1440 | 24 | TWO_PASS_FAST |
2160 | 15 | TWO_PASS_FAST |
Abbildung 2b: Von CQ empfohlene Einstellungen
Wir empfehlen, zwischen Keyframes 240 Videoframes zu verwenden. Bei Inhalten mit 30 fps entspricht das 8 Sekunden. Schlüsselbilder sind Videoframes, die in sich geschlossen sind. Sie sind nicht auf andere Frames angewiesen, um gerendert zu werden. Weitere Informationen finden Sie unter GOP-Struktur. Bei der Wiedergabe im Web und auf Mobilgeräten lassen wir viel Spielraum zwischen Keyframes, da der Encoder so die „beste“ Platzierung von Keyframes auswählen kann, um die Qualität zu maximieren.
Beispiel für Befehlszeilenparameter: 640 × 360-Video
Daraus ergeben sich folgende Empfehlungen für 360p-Videos:
- CQ-Stufe 36 (siehe Abbildung 2b)
- Zielbitrate von 276 kbit/s (siehe Abbildung 2a)
- Zulässige Mindestbitrate von 138 Kbit/s (50% des Zielwerts)
- Die maximal zulässige Bitrate beträgt 414 Kbit/s (150% des Zielwerts).
- Maximaler Keyframe-Abstand von 240 Sekunden
- Zwei Durchgänge, Profil „Mittel“
Daraus ergeben sich die folgenden Befehlszeilenparameter für libvpx und FFmpeg:
libvpx
--end-usage=cq --cq-level=36 --target-bitrate=276 --minsection-pct=50 \
--maxsection-pct=150 --kf-max-dist=240 --passes=2 --good --cpu-used=2
FFmpeg
-crf 36 -b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2
Einstellungen für Premium-Inhalte
In den obigen Beispielen haben wir relativ schnelle Codierungseinstellungen verwendet, um unsere Videostreams effizient zu erstellen. Bei einigen Inhalten (z. B. Premiumfilmen) lohnt es sich jedoch, mehr Zeit für die Codierung aufzuwenden, um eine höhere Ausgabequalität zu erzielen.
Für Premium-Inhalte empfehlen wir die gleichen Einstellungen wie oben, aber mit anderen Voreinstellungen, die den Encoder anweisen, mehr Zeit für die Optimierung der Qualität aufzuwenden:
Codierungsmodi und Befehlszeilenparameter für Premium-Inhalte
Frame-Höhe | Codierungsmodus | libvpx | FFmpeg |
---|---|---|---|
240 | TWO_PASS_VERY_SLOW |
--good --cpu-used 0 |
-good -speed 0 |
360 | TWO_PASS_VERY_SLOW |
--good --cpu-used 0 |
-good -speed 0 |
480 | TWO_PASS_VERY_SLOW |
--good --cpu-used 0 |
-good -speed 0 |
720 | TWO_PASS_SLOW |
--good --cpu-used 1 |
-good -speed 1 |
1080 | TWO_PASS_MEDIUM |
--good --cpu-used 2 |
-good -speed 2 |
1440 | TWO_PASS_MEDIUM |
--good --cpu-used 2 |
-good -speed 2 |
2160 | TWO_PASS_MEDIUM |
--good --cpu-used 2 |
-good -speed 2 |
Abbildung 2c: Codierungsmodi für Premium-Inhalte
Einstellungen für Sportinhalte und Inhalte mit schnellen Bewegungen
Wir empfehlen die VBR-Codierung für Sportinhalte. Bei Sportinhalten gibt es in der Regel ein ziemlich gleichbleibendes Maß an Bewegung und Komplexität. Mit VBR wird in Phasen mit weniger Bewegung eine höhere Qualität als bei der QP-Codierung erreicht.
Der Hauptunterschied zwischen dem QP- und dem VBR-Modus in der Befehlszeile besteht darin, dass Sie kein CQ-Level angeben. Ansonsten sind die empfohlenen Einstellungen dieselben.
Beispiel für VBR-Befehlszeilenparameter: 640 × 360-Video
libvpx
--end-usage=vbr --target-bitrate=276 --minsection-pct=50 --maxsection-pct=150 \
--kf-max-dist=240 --passes=2 --good --cpu-used=2
FFmpeg
-b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2
Einstellungen für Animationen und Spiele
Einstellungen für Inhalte mit Rauschen / minderwertige Inhalte
Bei verrauschten Inhalten empfehlen wir, die Anzahl und Stärke der Alt-Ref-Frames zu erhöhen. Alternative Referenzframes sind „unsichtbare“ Frames, die dem Nutzer nie angezeigt werden, aber als Referenz beim Erstellen der finalen Frames verwendet werden (weitere Informationen).
Die folgenden Parameter werden empfohlen, um VP9 anzuweisen, mehr Alt-Ref-Frames zu verwenden:
libvpx
--auto-alt-ref=1 --lag-in-frames-16 --arnr-maxframes=5 --arnr-strength=3
FFmpeg
10‑Bit-/HDR-Codierung
Für die 10-Bit-Codierung sollten Sie VP9 Profile 2 verwenden. Für die 10-Bit-Codierung sind nicht mehr Bits erforderlich. Die restlichen Parameter sind also gleich:
libvpx
--profile=2
FFmpeg
-profile 2
Live-Codierungseinstellungen
Livestreaming
Die Live-Codierung erfolgt in der Regel als CBR, was die Fähigkeit des Encoders einschränkt, die Qualität zu maximieren. Aus diesem Grund verwenden wir höhere Bitraten, wie in Abbildung 2a dargestellt.
Auch bei der Live-Codierung möchten wir die Anzahl der Threads maximieren. Dies läuft so ab:
- VP9 darf das Video in Spalten aufteilen, die mindestens 256 Pixel breit sein und eine Zweierpotenz darstellen müssen.
- Dadurch wird VP9 angewiesen, mehr CPU-Leistung zu verwenden. In der folgenden Tabelle finden Sie Empfehlungen für jede Auflösung.
Empfehlungen für Kacheln und Threads
Encoder-Einstellungen für die CQ-Codierung
Framegröße | Anzahl der Kachelspalten | Anzahl der Threads |
---|---|---|
320 x 240 | 1 | 2 |
640 x 360 | 2 | 4 |
640 x 480 | 2 | 4 |
1.280 x 720 | 4 | 8 |
1.920 x 1.080 | 4 | 8 |
2560x1440 | 8 | 16 |
3.840 x 2.160 | 8 | 16 |
Abbildung 2d: Empfohlene Kachelung und Threading für die Live-Codierung
Bei der Live-Codierung wird die Frist auch auf „Echtzeit“ festgelegt, um die Leistung zu optimieren. Außerdem wird festgelegt, dass Alt-Ref-Frames nicht in die Zukunft blicken sollen, da dies zu Latenz führen würde:
Daraus ergeben sich die folgenden Empfehlungen für Live-360p-Videos:
- CBR, Zielbitrate von 386 kbit/s (siehe Abbildung 2a)
- 2 Kachelspalten (siehe Abbildung 2d)
- 4 Fäden (siehe Abbildung 2d)
- Echtzeitleistung
- Keine Latenz aufgrund alternativer Frames (keine Frame-Verzögerung)
Daraus ergeben sich die folgenden Befehlszeilenparameter für libvpx und FFmpeg:
libvpx
--end-usage=cbr --target-bitrate=386 --cpu-used=4 --tile-columns=2 --rt --lag-in-frames=0
FFmpeg
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -r 29.97 -b:v 386k \
-minrate 386k -maxrate 386k -c:v libvpx-vp9 -c:a libopus output.webm