Brightcove Live: Empfohlene Vorgehensweise
Überblick
Brightcove Live bietet einen robusten Service zum Erstellen 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. Wir empfehlen generell eine Eingabebitrate, die 2x (zweimal) der Bitrate Ihrer Live-Wiedergabe mit der höchsten Bitrate entspricht.
Wenn Sie eine Spitzenausgabe 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. |
Eingabebeschränkungen
Um die höchste Qualität und das beständigste Streaming-Erlebnis zu gewährleisten, beschränkt Brightcove Live die Einstellungen für den Eingabestream auf:
- Protokoll:
rtmp
,rtp
rtp-fec
, odersrt
(alle außerrtmp
für MPEG2-TS-Eingänge)[1-1] - Auflösung: Maximal 1920 x 1080
- Maximal 30 fps, was typisch ist. Brightcove unterstützt bis zu 60 fps, dies ist jedoch erforderlich Wenden Sie sich an den Brightcove-Support das Limit erhöhen lassen. Bei Verwendung von 60 fps empfiehlt Brightcove, die Bitrate zu erhöhen, um die gewünschte visuelle Qualität für den Inhalt und eine konstante Bildrate zu erzielen.
- Weniger als 10 Mbit / s
- Konstante Bitrate (CBR) reduzieren die Wahrscheinlichkeit von Problemen erheblich
- Videocodec muss H.264 sein
- Scheiben: Wenn Ihr Encoder diese Option hat, setzen Sie sie auf
1
- Audio-Codec muss sein
AAC
- Audio-Abtastrate: 44,1 kHz und 48 kHz sind die empfohlenen Beispiel-Audioraten
- Keyframe Rate oder GOP (Gruppe von Bildern) ausgerichtet:
- EIN Schlüsselbild sollte immer alle 2 Sekunden auftreten für Eingänge und Ausgänge (einschließlich 25fps-Video). Das heißt, alle zwei Sekunden des Streams selbst wird vom Encoder ein Keyframe an Brightcove gesendet. Dieser Prozess kann aber auf verschiedene Arten definiert werden Keyframe-Rate ist am häufigsten.
- Sie kann von verschiedenen Encodern auf unterschiedliche Weise berechnet werden. Zum Beispiel:
- Wirecast verwendet die Anzahl der durchgelassenen Frames. Für ein 30-fps-Video wäre die Einstellung also 60.
- Elementarcodierer verwenden Sekunden, damit die richtige Einstellung '2' ist.
- 60 FPS-Videos ändern sich nur, wenn diese Einstellung von den Frames gezählt wird. In diesem Fall entsprechen alle 120 Frames 2 Sekunden.
- Wenn es eine Option für Keyframe Aligned, Rep. synchronisieren, Keyframes ausrichten oder etwas in dieser Richtung gibt, stellen Sie sicher, dass Keyframes ausgerichtet sind. Wenn Keyframes nicht ausgerichtet sind, treten Synchronisationsprobleme bei der HLS-Segmentierung auf.
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).
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.
- Encoder, der Keyframes sendet, die keine konsistente Dauer voneinander entfernt sind, sollte die Keyframe-Rate mindestens das Doppelte 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 |
---|---|
Webcam |
|
Webkonferenz |
|
Animation |
|
Sprechender Kopf / Nachrichten |
|
Live-Konzert |
|
Live-Sport |
|
Live-Sport mit hoher FPS |
|
Transmux Live Aufträge
Stellen Sie die Einfügung von Schlüsselbildern so ein, dass sie mit den Einstellungen für die Anforderungssegmentierung übereinstimmt. Wenn die Bildrate beispielsweise 25 Bilder pro Sekunde beträgt und ein 6-Sekunden-Segment gewünscht wird, muss das Keyframe-Intervall auf mindestens alle 300 Bilder festgelegt werden.
Testen Sie die Encoder-Einstellungen/Ausgabe mit den gewünschten Zielgeräten. Dies ist besonders wichtig, wenn Sie einen Rundfunkbeitrags-Encoder verwenden, der möglicherweise erweiterte Einstellungen hat, die zu einem Stream führen, der nicht mit allen Verbrauchergeräten kompatibel ist. Es ist auch eine gute Idee, besonders fortgeschrittene Einstellungen zu vermeiden - es ist schwer zu sagen, was das genau ist, da es so viele mögliche Geber und Optionen gibt. Aber ein allgemeines Profil der Spitzenklasse sollte in etwa so aussehen:
- 6Mbps Spitzenbitrate
- H264 Hohes Profil
- B-Rahmen: 2
- 8bit 4:2:0 Farbe
Verifizierung und Prüfung
Idealerweise sollten Sie mit den niedrigstmöglichen Einstellungen für Ihre komplexesten (am meisten wechselnden Inhalte) beginnen und mit deren 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.
Testen der Bandbreite
Der erste Schritt, um zu den entsprechenden Einstellungen für den Eingabestream zu gelangen, besteht darin, die verfügbare Bandbreite vor Ort zu ermitteln. Es gibt einige Tools, die helfen können:
- SpeedOf.Me(https://speedof.me)- Die Ermittlung der für HTTP-Verbindungen verfügbaren Gesamtbandbreite ist ein guter erster Schritt. Da der Eingabe-Feed jedoch über RTMP anstelle von HTTP an das Live-Modul gestreamt wird, ist die tatsächlich für RTMP-Verbindungen verfügbare Bandbreite erheblich geringer.
- Speedtest(https://www.speedtest.net)- Online-Tool zur Ermittlung der aktuellen Upload- und Download-Geschwindigkeit.
Eingangsbandbreite
Die Bereitstellung eines qualitativ hochwertigen, stabilen Eingabestreams ist der einzige Weg, um den Zuschauern die bestmögliche Benutzererfahrung zu bieten. Ein guter Eingabestream bietet die beste Videoqualität bei der höchsten konsistent verfügbaren Bandbreite von einem Standort.
- Minimale Eingangsbandbreite: 2,5 Mbit/s
- Maximale Eingangsbandbreite: 10 Mbit/s
Bestimmen der Geberfähigkeiten
Es ist auch wichtig, die Funktionen der Software und Hardware zu verstehen, die zum Codieren des Live-Streams und zum Senden an das Live-Modul verwendet werden. Es kann viel Bitrate geben, um einen hochwertigen 1080p-Eingabestream zu senden, aber die Hardware muss auch in der Lage sein, schneller als in Echtzeit zu codieren. Einige Codierungstools zeigen Informationen über die gesamte CPU-Auslastung und die verwendete Bandbreite an. Telestream Wirecast zeigt zum Beispiel die Ausgabestatistiken am unteren Rand des Wirecast-Fensters an.
Diese Informationen sind nützlich, um den stabilsten Stream mit der höchsten Qualität zu ermitteln, der auf einer bestimmten Hardware möglich ist. Dinge, die Sie in Wirecast sehen sollten:
- Die CPU sollte weniger als 80% betragen
- Die Datenrate sollte in der Nähe der Zielbitrate liegen
- FPS sollte mit der Geschwindigkeit der Einstellungen des Eingabestreams übereinstimmen
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 zum Verhindern einer dichten Platzierung von Keyframes (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
- Mach den Stream "fast CBR" - mit
max_bitrate
= 1,1 * Zielbitrate. - 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.
Im Allgemeinen empfehlen wir, die doppelte Bandbreite der erwarteten Streamgröße des Encoders bereitzustellen, um bandbreitenbedingte Netzwerkprobleme vollständig zu vermeiden.
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.
Auftragseinstellungen (nur Live-API)
Empfohlene Jobeinstellungen
Feld | Empfohlener Wert |
---|---|
ad_audio_loudness_level |
-23 (EBU R.128-Standard) |
Starten Sie einen Live-Stream Empfehlungen
Vor dem Anschluss des Encoders muss ein Auftrag aktiviert werden. Auch das Aktivieren eines Auftrags nach dem Starten des Streams vom Encoder aus ist kein unterstütztes Verfahren und kann zu unerwartetem Verhalten führen.
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 Eingabebitrate (für beste Ergebnisse sollte die höchste Ausgabebitrate die Hälfte der Eingabebitrate betragen) |
Keyframe-Rate | 2 Sekunden |
FAQ
- 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. - 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).
- Die spezifischen Symptome, die der Stream hat. Spielt es zum Beispiel überhaupt nicht oder stottert oder friert es ein?
- Ob dieser Stream in der Vergangenheit richtig funktioniert hat
- Die Einstiegspunkt-URL, die Sie in Ihrem Encoder verwenden
- Die von Ihnen verwendete Codierungssoftware und -hardware
- Die URL zu dem Player, für den Sie das Live-Event veröffentlicht haben
- Die Video-ID Ihres Live-Assets
- Die Ergebnisse einer Trace-Route von Ihrem Encoder zum Publishingpoint-Host
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 vonwaiting
zu finishing
:
Wenn die event_length
größer als 30 Minuten ist, wird der Job in 30 Minuten beendet. Wenn die event_length
weniger als 30 Minuten beträgt, endet der Job in event_length
.
Zum Beispiel, wenn die event_length
60 Minuten beträgt, wird der Live-Job in 30 Minuten beendet. Wenn die event_length
15 Minuten beträgt, wird der Live-Job in 15 Minuten beendet
Die reconnect_time
hat keine Auswirkung auf den Wartezustand.
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:
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.
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.Für weitere Hilfe
Wenn Sie weitere Hilfe benötigen, damit Ihr Live-Event funktioniert, können Sie dies tun kontaktiere uns. Um sicherzustellen, dass Sie die schnellstmögliche Antwort erhalten, finden Sie unten eine Liste der Funktionen, die der Brightcove-Support zur Lösung des Problems benötigt.