Überblick
Brightcove Live bietet einen zuverlässigen Service für die Erstellung von Live-Streaming-Events oder Live-Streams rund um die Uhr. In diesem Leitfaden werden Best Practices zur Optimierung Ihrer Livestreams beschrieben.
Inhaltskontext
Die Art des gestreamten Inhalts muss berücksichtigt werden, da er sich auf die erforderlichen Einstellungen zur Aufrechterhaltung der Qualität der Eingabe auswirkt. Beachten Sie, dass es Kompromisse gibt und die Verwendung der höchstmöglichen Einstellungen zu Problemen wie übersprungenen Frames führen kann.
Basierend auf den folgenden Informationen empfehlen wir Ihnen, vor Ihrem Live-Event verschiedene Einstellungskombinationen auf Qualität und Leistung zu testen.
Die wichtigsten Eingabeparameter sind in der folgenden Tabelle aufgeführt:
Parameter | Hinweise |
---|---|
Eingabebitrate | Die Bitrate, die der Encoder sendet. Höhere Raten sind anfälliger für Netzwerkverluste und sollten daher so niedrig wie möglich gehalten werden. |
Eingangsauflösung | Dieser sollte mit dem Quellinhalt übereinstimmen. Es hat keinen Vorteil, dies größer als die ursprüngliche Quelle zu machen, und je höher dieser Wert ist, desto höher ist die Bitrate, die zur Unterstützung erforderlich ist. |
Eingangsbitrate zu Top-Profil-Verhältnis |
Die Eingangsbitrate sollte höher sein als die Rate des Top-Profils, aber zu viel höher kann zu ausgelassenen Frames oder anderen Problemen führen - wenn Ihre Top-Rate zB 1080p 30fps beträgt, sollte die Eingabe idealerweise etwa 4 MBPS betragen. Beachten Sie, dass dies vom Profil beeinflusst wird.
Wenn Sie eine Top-Ausgabe mit hoher Bitrate benötigen, lohnt es sich, die |
Profile |
Die verschiedenen Profile (Baseline, Main, High) komprimieren die Daten in aufsteigenden Mengen (Baseline: niedrigste, hoch: höchste). Eine stärkere Komprimierung verbessert die Übertragungsrate, erfordert jedoch auch größere CPU-Ressourcen, um die Daten zu decodieren. Sofern der Encoder nicht in Bezug auf die verfügbaren Ressourcen stark eingeschränkt ist, sollte das Baseline-Profil vermieden werden. Andererseits führt die Verwendung von High Profile bei hohen Bitraten eher zu übersprungenen Frames aufgrund der erhöhten erforderlichen Decodier-CPU-Ressourcen.
Siehe auch GOP-Struktur unter. |
Bildrate |
Dies sollte mit der Quelle übereinstimmen.
Höhere Raten erfordern proportional höhere Eingangsbitraten, z. B. bei Actionsport-Inhalten enthält ein Eingangsstrom von 60 fps wesentlich mehr Daten als ein Stream mit 30 fps. Bei hohen Raten wie 60 fps treten bei komplexen Inhalten bei hohen Bitraten eher Probleme mit überspringenden Frames auf. |
Keyframe-Rate |
Die effizienteste Einstellung hierfür ist die Segmentdauer x Bildrate. Wenn Sie beispielsweise 6-Sekunden-Segmente und 30 fps haben, würde eine Schlüsselbildrate von 180 (6x30) zur niedrigsten Decoderlast führen.
Um Schwankungen auszugleichen, wird diese jedoch auf das 2-fache der Bildrate eingestellt - beispielsweise 60 für eine Bildrate von 30 fps. |
GOP-Struktur | Sehen GOP-Struktur unter. |
Hauptprobleme beim Streaming
Im Allgemeinen treten mehrere Probleme auf, die sich auf Probleme mit der Streaming-Erfahrung vom Encoder zu Brightcove beziehen:
-
Netzwerkinstabilität, die den Eingang beeinflusst:
- Obwohl das Internet im Allgemeinen recht zuverlässig ist, ist es nicht unfehlbar und es treten Probleme auf. Probleme werden bei höheren Bitraten eher bemerkt.
- Wenn das Hochladen des Videos länger dauert als in Echtzeit, kann dies zu einer Eingangsdrift führen (der Zeitpunkt, zu dem das Video empfangen wird, liegt wesentlich später als beim Senden).
- Transcoder-Überlastung, die zu Überspringen von Frames führt: Während wir alles tun, um sicherzustellen, dass unsere Transcoder genügend Overhead haben, können manchmal plötzliche Spitzen in der Inhaltskomplexität, Netzwerk-Hiccups / Catchups oder andere Unterbrechungen unserer Transcoder zu Überspringen-Frames führen. Je komplexer die Eingabe ist, desto wahrscheinlicher sind übersprungene Frames. Es gibt auch ein bekanntes Problem, bei dem Änderungen von einem Standbild über einen längeren Zeitraum, z. B. länger als 5 Minuten, und eine plötzliche Änderung des Aktionsinhalts zu einer Überlastung führen können.
- Encoder sendet variable Framedauern: Die Framerate sollte konstant sein und ein konstantes Keyframe-Intervall ermöglichen. Bei einer Bildrate wie 29,97 aka 30000/1001 oder 23,976 aka 24000/1001 ist es beispielsweise nicht möglich, einen Keyframe in regelmäßigen Abständen zu setzen und sollte daher vermieden werden.
- Wenn der Encoder Keyframes sendet, deren Dauer nicht konstant ist, sollte die Keyframe-Rate mindestens das Zweifache der Bildrate in Sekunden betragen. Bei einer Bildrate von 30 Bildern pro Sekunde sollte das Keyframe-Intervall beispielsweise 60 Bilder betragen, was 2 Sekunden entspricht, und sollte ein maximales Intervall von einmal pro Segment sein. Wenn Sie beispielsweise ein 6-Sekunden-Segment haben, beträgt das maximale Intervall 180 Bilder bei 30 fps
Inhaltstypen
Im Allgemeinen erfordern komplexere Inhalte die Verwendung der höheren dieser Einstellungen und sind daher anfälliger für übersprungene Frames. Die folgende Tabelle zeigt einige Beispiele in der Reihenfolge ihrer Komplexität. Beachten Sie, dass dies nur Beispiele sind und fast jedes Encoder-Setup anders ist. Es sollten Tests und Verifizierungen durchgeführt werden.
Inhaltstyp | Beispieleinstellungen |
---|---|
Webkamera |
|
Webkonferenz |
|
Animationsfilm |
|
Sprechender Kopf / Nachrichten |
|
Live-Konzert |
|
Live-Sport |
|
Live-Sport mit hoher FPS |
|
Verifizierung und Prüfung
Idealerweise sollten Kunden mit den niedrigsten möglichen Einstellungen für ihre komplexesten (sich am meisten ändernden Inhalte) beginnen und mit ihren Inhalten testen, indem sie die verschiedenen Einstellungen erhöhen, bis die Ausgabe akzeptabel ist. Dies liegt daran, dass im Allgemeinen, je höher die Einstellungen sind, desto wahrscheinlicher Probleme im Netzwerk oder bei der Transcodierung auftreten.
GOP-Struktur
Die Group of Pictures (GOP)-Struktur des Videos hängt zunächst von dem Profil ab, das verwendet wird als:
- Basislinie Profil unterstützt nur I- und P-Frames und CAVLC-Entropie-Codierung
- Hauptsächlich und Hoch unterstützt I-, B- und P-Frames und CABAC-Entropie-Codierung
Main- und High-Profile führen im Allgemeinen zu einer besseren Komprimierung bei besserer Qualität, erfordern jedoch auch zusätzliche Berechnungen zum Kodieren und Dekodieren, da solche anfälliger für übersprungene Frames sein können. Da diese Profile außerdem B (bidirektionale) Frames verwenden, führen sie zu einer gewissen Verzögerung beim Codierungsprozess.
Das Baseline-Profil erfordert weniger CPU zum Kodieren und Dekodieren, aber da es weniger Komprimierung bietet, erfordert es eine höhere Bitrate, um die Qualität beizubehalten, und ist daher anfälliger für Netzwerkprobleme.
Hinweise zu Frame-Typen und deren wahrscheinlichen Auswirkungen auf die Leistung:
- I frames: verwendet die meiste Bandbreite. Am besten bei kompletten Szenenwechseln oder an den Segmentgrenzen hinzugefügt - dh je mehr sich der Inhalt ändert, desto mehr davon benötigen Sie (kürzere GOP-Länge)
- P-Frames: sind die Basiseinheit zwischen I-Frames
- B-Frames: Verwenden Sie sowohl vorherige als auch zukünftige Frames, je mehr Sie hinzufügen, desto besser wird die Komprimierung sein, aber desto höher ist die CPU und Latenz
Die Verwendung von ich rahmen sollte idealerweise auf den Anfang von Segmenten (kritisch bei Verwendung von Passthrough) oder Szenenwechsel beschränkt sein. Alle oder eine hohe Anzahl von I-Frames sollten vermieden werden, da dies zu einer Überlastung führen kann, die zu übersprungenen Frames führt.
Zusätzliche Bemerkungen:
- Verwenden Sie Optionen, um eine dichte Platzierung von Keyframes zu verhindern (Beispiel:
min_keyin
= 3+). - Verwenden Sie Optionen, die eine regelmäßige Einfügung von Keyframes sicherstellen. Anstatt beispielsweise die GOP-Länge in Sekunden anzugeben, geben Sie sie in exakten Brüchen oder Frames an.
Bitrate
- Minimale Eingangsbandbreite: 2,5 Mbit/s
- Maximale Eingangsbandbreite: 10 Mbit/s
- Mache den Stream „fast CBR“ — mit
max_bitrate
= 1,1 * target_bitrate. - Verwenden Sie, falls verfügbar, einen strikten HRD-konformen Ratensteuerungsmodus.
Protokoll
Es ist wichtig zu beachten, dass das Internet kein garantiertes Bereitstellungsnetzwerk ist und dass eine Internetverbindung zwar als "gut" angesehen werden kann, aber für zuverlässiges Live-Videostreaming in hoher Qualität möglicherweise nicht gut genug ist. Eine kleine Unterbrechung des Pfads zwischen dem Kunden-Encoder und der Brightcove-Transkodierungsplattform, wie beispielsweise eine geringe Überlastung bei einem ISP, ein ungeplanter Failover zwischen Routern oder ähnliche Probleme, können eine Unterbrechung der Videoausgabe verursachen. Bei Live-Übertragungen mit hohen Einsätzen ist es üblich, mehrere dedizierte Netzwerke zu haben, die entweder aus dedizierter Glasfaser, gebuchter Satellitenbandbreite oder zugesicherter Bandbreite in einem verwalteten Netzwerk bestehen. Dies ist mit erheblichen Kosten verbunden, und in den meisten Fällen ist es möglich, über das Internet ein ausreichend gutes Ergebnis zu erzielen. Wenn es jedoch wichtig ist, einen fehlerfreien Transport aufrechtzuerhalten, ziehen Sie AWS Direct Connect oder einen ISP in Betracht, der ein gewisses Maß an dedizierter Bandbreite bereitstellen kann.
Die von uns empfohlenen Optionen sind (in der Reihenfolge):
- SRT - bietet eine gute Kombination aus Transportgeschwindigkeit (UDP) mit einer gewissen Kontrolle und Fehlerresistenz. Nicht auf allen Encodern verfügbar, obwohl es Tools gibt, die vom lokalen RTP übersetzen können, wie z. B. srt-transmit.
- RTMP - Da es TCP-basiert ist, bietet es eine gute Fehlerresistenz, Nachteile sind, dass dies mit einem erheblichen Overhead verbunden ist. Beachten Sie, dass bei RTMP nicht alle Funktionen wie z. B. mehrere Audiospuren verfügbar sind.
- RTP-FEC - bietet schnellen UDP-basierten Transport mit einer gewissen Fehlerresistenz
- RTP - bietet schnellen Transport und erweiterte Funktionen ohne Fehlerresistenz
Unterstützte Encoder
Sehen Unterstützte Encoder für Live-Events für eine Liste der Encoder, von denen bekannt ist, dass sie mit Live funktionieren. Beachten Sie, dass auch andere Encoder funktionieren können, aber nicht getestet wurden.
Unterstützte CDNs
- Akamai
- Amazon CloudFront
Wiederholungen
Wir empfehlen, Wiederholungsversuche für die RTMP-Verbindung vom Encoder zu aktivieren. Eine große Anzahl von Wiederholungsversuchen mit einem 5-Sekunden-Wiederholungsintervall mildert alle zeitweiligen Verbindungsprobleme zwischen dem Encoder und dem Einstiegspunkt.
Job-Einstellungen
Empfohlene Jobeinstellungen
Feld | Empfohlener Wert |
---|---|
ad_audio_loudness_level |
-23 (EBU R.128-Norm) |
Eingabeanforderungen
Die folgende Tabelle zeigt die Anforderungen für den Eingabe-Livestream.
Artikel | Erfordernis |
---|---|
Protokoll | rtmp , rpt rtp-fec , oder srt (alle außer rtmp für MPEG2-TS-Eingänge)[1-1] |
Videoformat | h.264 |
Audio Format | AAC |
Maximale Audio-Abtastrate | bis 48000 Hz (Brightcove Support kann diesen Wert auf Anfrage erhöhen) |
Auflösung | Bis zu 1080p (Breite: 1920 Pixel; Höhe: 1080 Pixel) |
Bitrate | Muss mindestens so hoch sein wie die höchste Ausgabebitrate - maximal: 10 MB/s.
In fast allen Fällen hat der Brightcove-Support festgestellt, dass die Verwendung einer konstanten Bitrate für den Eingabedatenstrom die Wahrscheinlichkeit von Problemen erheblich verringert. |
Bildrate | 30 fps (Sie können eine Unterstützungsanfrage um das Limit auf 60fps anzuheben) |
Scheiben | Wenn Ihr Encoder über diese Option verfügt, stellen Sie sie auf 1 |
Hinweise
- [1-1] Wenn Ihr TS-Eingang mehrere Video- / Audiospuren enthält, wählen wir jeweils die erste aus. Wir empfehlen auch dringend, FEC zu verwenden, da reines TS über UDP über das Internet sehr unzuverlässig ist. Für FEC konnten wir feststellen, dass die kleiner Je mehr Werte Sie für Zeilen / Spalten verwenden, desto zuverlässiger ist die Fehlerkorrektur (auf Kosten einer erhöhten Bandbreite).
Empfehlungen für Slate-Quelldateien
- Auflösung: (am besten in deiner Codierleiter)
- FPS: (wie Ihre Quelle)
- Bitrate: (am besten in deiner Codierleiter oder besser)
- Audio: (gleiche Bitrate, Kanäle, Abtastfrequenz und Bits pro Sample wie Ihre beste Wiedergabe oder wie Ihre Eingabe)
Ausgabeempfehlungen
Nachfolgend sind die empfohlenen Ausgabeeinstellungen aufgeführt. Beachten Sie jedoch, dass der RTMP-Eingang bei vielen Encodern auf 10 MBPS (Video + Audio) und eine Bildrate von 30 fps begrenzt ist.
Artikel | Empfehlung |
---|---|
Video-Codec | h264 ist derzeit die einzige Möglichkeit |
Audio-Codec | aac ist derzeit die einzige Möglichkeit |
Breite | Wenn nein width oder height geliefert wird, werden die Quelldimensionen verwendet. Wenn entweder width oder height geliefert wird, wird die andere Dimension berechnet, um das Seitenverhältnis der Quelle beizubehalten. |
Höhe | Wenn nein width oder height geliefert wird, werden die Quelldimensionen verwendet. Wenn entweder width oder height geliefert wird, wird die andere Dimension berechnet, um das Seitenverhältnis der Quelle beizubehalten. |
Bitrate | Kleiner oder gleich der Eingangsbitrate |
Keyframe-Rate | 2 Sekunden |
Siehe die Live-API-Übersicht.
FAQ
- Wie schnell müssen Sie mit dem Streamen beginnen, nachdem Sie einen Live-Job erstellt haben?
- In Brightcove Live gibt es zwei Bedingungen, wenn der Status von
waiting
zufinishing
:- wenn der Job in der warten Zustand (noch nicht gestartet) und die
max_waiting_time_ms
abgelaufen ist, ist der Job beendet/deaktiviert. - Wenn der Job in der getrennt Zustand (gestartet, aber getrennt) und die
reconnect_time
abgelaufen ist, ist der Job beendet/deaktiviert.
Wenn die
event_length
größer als 30 Minuten ist, wird der Job in 30 Minuten beendet. Wenn dieevent_length
weniger als 30 Minuten beträgt, endet der Job inevent_length
.Zum Beispiel, wenn die
event_length
60 Minuten beträgt, wird der Live-Job in 30 Minuten beendet. Wenn dieevent_length
15 Minuten beträgt, wird der Live-Job in 15 Minuten beendetDie
reconnect_time
hat keine Auswirkung auf den Wartezustand. - wenn der Job in der warten Zustand (noch nicht gestartet) und die
- Welche Einschränkungen gibt es für gleichzeitige Live-Jobeinstellungen?
-
Maximal 5 aktive wartend, nicht gestartet Arbeitsplätze sind jederzeit erlaubt.
Zusätzliche Einschränkungen für gleichzeitige Jobs:
- Die Anzahl der
channel
(24x7) Jobs ist auf 0 oder eine geringe Anzahl pro Region begrenzt (je nach Kontotyp). - Die Anzahl der gleichzeitig Laufen
event
Arbeitsplätze sind regional begrenzt, in der Regel auf 100. - Die Anzahl der gleichzeitig warten auf die Verbindung
event
Arbeitsplätze sind auf 5 begrenzt. - Die Anzahl der SEP-Jobs pro Region ist auf 3 oder 10 begrenzt (siehe Unterstützte AWS-Regionen).
Jedes dieser Limits kann auf Kontoebene vom Support angepasst werden. Wenden Sie sich an Ihren Customer Success Manager, wenn Sie zusätzliche Kapazitäten benötigen.
- Die Anzahl der
- Kann Brightcove Live die 1080p-Qualität verbessern, wenn die Eingangsbandbreite ausreichend ist?
- Ja, die 1080p-Eingabe ist für alle Konten aktiviert.
- Ist DRM verfügbar?
- Jawohl! Wenden Sie sich an Ihren Customer Success Manager, wenn Sie Ihr Live-Konto um DRM-Unterstützung erweitern möchten.