Einrichtung Ihres Streams-Ausgangs

In diesem Artikel erfahren Sie, wie Sie Ihren Output Streams für verschiedene Zwecke einrichten können.

In diesem Artikel:
Einleitung
Verwendung von Parametern und Konfigurationsstrings
Konfigurationsbeispiele
AAC – Hochwertige Audioqualität Streams
Farbraum und Chroma-Unterabtastung und Interlace
Mehrere Audiospuren
Untertitel und SCTE
Weiterleitung von Streams über eine bestimmte IP-Adresse
Überwachung und Fehlerbehebung


1. Einleitung

Sie können für jede Quelle – sei es ein Kanal, ein Eingang oder die Director-Ansicht – 15 verschiedene Stream-Konfigurationen einrichten. Standardmäßig wird das Videoformat beim Start des Stream von der Quelle übernommen, Sie können jedoch eine Transkodierung in eine beliebige Auflösung vornehmen.

Sobald Sie Ihr Protokoll ausgewählt haben, passen sich die anderen Felder für Video-/Audio-Codec und URL entsprechend Ihrer Auswahl an, d. h.: Nicht jeder Video-/Audio-Codec ist für jedes Stream-Protokoll verfügbar.

INFO: NVIDIA-Encoder unterstützen keine Interlaced-Formate mehr. Verwenden Sie stattdessen Intel QuickSync.

Ihre URL enthält einen Vorschlag für das erforderliche URL-Format. Klicken Sie auf “URL-Info”, um weitere Beispiele anzuzeigen, z. B. wie Sie Benutzername und Passwort einbinden können. Die Vorschau-URL wird von PLAYDECK nicht verwendet; sie dient lediglich dazu, dass sich Ihr Internetbrowser öffnet, wenn Sie auf “Vorschau” klicken.


2. Verwendung von Parametern und Konfigurationen

Für das Protokoll und die Codecs können weitere Parameter festgelegt werden, die für Ihre Auswahl spezifisch sind. Diese können zur Feinabstimmung Ihrer Einstellungen verwendet werden, z. B. um Ihr Stream auf CBR umzustellen oder Metadaten hinzuzufügen.

Wenn Sie auf “Parameter” klicken, öffnet sich ein Editor, der nur die für Ihre Auswahl möglichen Einstellungen anzeigt. Alle Werte, die vom Standardwert abweichen, werden hervorgehoben.

Der “Config-String” ist eine Darstellung aller Ihrer Protokoll-/Codec-Auswahlen sowie der jeweiligen Parameter. Der Konfigurationsstring funktioniert in beide Richtungen: Sie können auch einen Konfigurationsstring kopieren und in das Textfeld einfügen und dann auf “Aus String aktualisieren” klicken, um die Werte zu übernehmen. Auf diese Weise können Sie Einstellungen ganz einfach zwischen Stream-IDs kopieren oder mit anderen Benutzern teilen.


3. Konfigurationsbeispiele

Hier findest du eine kurze Auswahl empfohlener Konfigurationen für verschiedene Zwecke. Kopiere sie in PLAYDECK und klicke auf “Aus Zeichenfolge aktualisieren”.


DVB Stream mit CBR- und GOP-B-Frames. Keine PCR-, PTS-DTS- oder Puffer-Underrun-Fehler

format='dvb' protocol='udp://' mpegts_start_pid='60' video::streamid='80' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7,5M' video::bufsize='1,25M' video::g='32' video::bf='2' video::ref_frames='3' audio::streamid='81' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' pmt_start_pid='100' mpegts_flags='-system_b' rc_buffers='4' pcr_period='35' pat_period='0,1' sdt_period='0,5' tdt_period='10' start_pcr='0' service_name='TEST' service_provider='PD' service_id='1' original_network_id='1' transport_stream_id='201' service_type='advanced_codec_digital_hdtv'


Oder kurz gesagt:

format='dvb' protocol='udp://' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7,5M' video::bufsize='1,25M' video::g='32' video::bf='2' video::ref_frames='3' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' service_type='advanced_codec_digital_hdtv'


INFO: Jeder DVB-Empfänger ist anders, und möglicherweise sind unterschiedliche Einstellungen erforderlich. Bei manchen Empfängern sind KEINERLEI Abweichungen von offizielle Richtlinien, und zeigt SCHWARZ an. Die zuverlässigste Lösung zur Codierung von DVB-Signalen sind Hardware-Encoder, z. B. Haivision.

Die bewährte Vorgehensweise zum Testen von DVB Streams auf PCR-Fehler oder andere Probleme besteht darin, eines der folgenden Tools zu verwenden:
DVBControl DVBAnalyzer (Kosten: ca. 2000 EUR, ist jedoch äußerst zuverlässig und erkennt PTS-DTS-Fehler)
StreamGURU (Kosten: ca. 300 EUR, erkennt jeden ETR-Fehler und zeigt eine Bitrate-Grafik an)
TSAnalyzer (kostenlos, kann jedoch Stream-URLs verarbeiten, benötigt eine TS-Datei auf der Festplatte)
– Weitere erwähnenswerte Programme: DVBInspector, Elecard Stream Analyzer, StreamXpert

————————————————————

SRT Stream im CBR-Format für 25 Bilder pro Sekunde mit hoher Audioqualität

Das folgende Beispiel wird von mehreren Kunden in einer Multichannel-Stream-Konfiguration zur Übertragung von Musikvideo-Inhalten verwendet. Diese Konfiguration läuft reibungslos bei 4 parallelen Ausgängen + 1 TP25T-Kanal – und erzielt mit FHD-ACC-Audio eine optimale Ton- und Bildqualität.

format='mpegts' protocol='srt://' video::codec='n264' video::b='4M' video::rc_type='cbr' video::preset='p4' audio::codec='aac' audio::b='128K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='128K' audio::maxrate='128K' audio::bufsize='128K' audio::aac_coder='0'

————————————————————

RTMP Stream im CBR-Format für 60 FPS mit 2-Sekunden-Keyframes

Das nächste Beispiel bezieht sich auf YouTube. Nutzen Sie die YouTube-Analytics- und Stream-Health-Tools, um die Stabilität Ihres Stream zu testen:

format='flv' protocol='rtmp://' video::codec='n264' video::b='9000k' video::maxrate='9000k' video::bufsize='9000k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' audio::ar='44100'


Das nächste Beispiel ist für Twitch. Verwenden Sie Twitch Inspector Um die Stabilität Ihres Stream zu überprüfen, fügen Sie “?bandwidthtest=true” an Ihre Stream-URL an, um zu verhindern, dass der Dienst live geschaltet wird.

format='flv' protocol='rtmp://' merge_tracks='true' video::codec='n264' video::b='5800k' video::maxrate='5800k' video::bufsize='5800k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' video::tune='zerolatency' audio::codec='aac' audio::ar='44100' audio::b='128k'


————————————————————

Sony XDCAM HD422-Standard

Videoparameter – darunter 4:2:2-Chroma-Subsampling, eine bestimmte GOP-Struktur (M=3, N=15) und die Verarbeitung von Zeilensprungbildern – sowie professionelles 24-Bit-PCM-Audio mit einer Abtastrate von 48 kHz.

format='mxf' video::codec='mpeg2video' video::b='50M' video::interlace='1' video::top='1' video::g='15' video::v422='true' video::bf='2' video::flags='+ildct+ilme' audio::codec='pcm_s24le' audio::ar='48000'


4. AAC – Audio in hoher Qualität Streams

Die Standard-Einstellungen für AAC-Streaming schonen die CPU, können jedoch bei Musikkanälen zu einem flachen Klang führen. Für eine erstklassige Audioqualität wählen Sie je nach Zielgruppe und Ausgangsmaterial eines der beiden unten aufgeführten Profile aus.

Schnelle Zubereitung:
Quelle: Verwenden Sie 48-kHz-Clips (320 kbps oder verlustfreies PCM).
Video: Reduzieren Sie die Videoauflösung auf 720p30, wenn die Bandbreite gering ist. Verwenden Sie immer Hardware-Codierung.


Option 1: Maximale Kompatibilität und Stabilität (sichere Variante)

Am besten geeignet für: Standard-Streaming, Kabelbetreiber und DVB-T-Multiplexer. Dies ist das sicherste Profil, um Phasenprobleme bei verschiedenen Arten von Inhalten zu vermeiden.

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::aac_coder='0'


audio::profile=’aac_low’: Stellt AAC-LC für maximale Qualität und Kompatibilität mit dem Hardware-Decoder 100% ein.
audio::aac_coder=’0′: Erzwingt einen hochwertigen Zwei-Schleifen-Kodierungsdurchlauf für klare Transienten. (Stellen Sie den Wert auf 1, wenn es zu CPU-Spitzen kommt).
Dynamisches Stereo: Überlässt die Stereoverwaltung dem Encoder, wodurch das System äußerst widerstandsfähig gegenüber unvollkommenem Ausgangsmaterial ist.


Option 2: High-Fidelity Streaming (optimierte Stereo-Variante)

Am besten geeignet für: Spezielle Musikkanäle mit makellosen Quelldateien in Studioqualität. Dieses Profil nutzt eine enge VBR-Hüllkurve und eine erzwungene Mid/Side-Stereoverarbeitung.

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='200K' audio::maxrate='320K' audio::bufsize='640K' audio::aac_coder='0'


audio::stereo_mode=’ms_force’: Ermöglicht eine Mid/Side-Stereoverarbeitung und maximiert die Bandbreiteneffizienz für tiefe, breite Stereoklangbilder.
minrate=’200K’ / maxrate=’320K’ / bufsize=’640K’: Eine straffe VBR-Hüllkurve, die Qualitätsverluste in leisen Passagen verhindert und gleichzeitig Spielraum für starke musikalische Spitzen lässt.
Hinweis: Falls Ihrem Ton bei bestimmten Clips der “Biss” fehlt oder er hohl klingt, wechseln Sie zurück zu Option 1, da Ihr Ausgangsmaterial möglicherweise Phasenabweichungen aufweist.


5. Farbraum, Chroma-Subsampling und Zeilensprung

Die Unterstützung bestimmter Farbräume, z. B. 4:2:2 für DVB oder Interlaced-Kodierung, hängt stark von der verwendeten Intel-CPU oder NVIDIA-GPU ab.

Hier ist eine Seite für NVIDIA NVenc und 422 Support und hier für Intel Quick Sync und 422 Support.

Einfach ausgedrückt:

1. NVidia-Unterstützung für Interlaced-Kodierung:
– Pascal (GTX 10-Serie): Letzte Architektur mit Interlace-Unterstützung
– Turing / Ampere / Ada (RTX 20/30/40): Die Hardwareunterstützung für die Interlaced-Kodierung wurde entfernt
– Blackwell (RTX 50-Serie): Die Interlaced-Kodierung für H.264 (8-Bit und 10-Bit) wurde wieder eingeführt

2. NVidia-Unterstützung für den 4:2:2-Farbraum:
– Blackwell (RTX 50-Serie)

3. Intel-Unterstützung für den 4:2:2-Farbraum
– Prozessoren der 10. Generation und neuerer bieten über Quick Sync Unterstützung für die hardwarebeschleunigte Codierung und Decodierung des HEVC-Codecs bei einer Farbabtastung von 4:2:2.
– Frühere Grafikcontroller bei Intel® Core™-Prozessoren der 9. Generation und älteren Modellen waren bei der hardwarebeschleunigten Codierung und Decodierung auf den HEVC-Codec mit 4:2:0-Farbabtastung beschränkt.

Dies ist ein kurzes Konfigurationsbeispiel für die 4:2:2-Kodierung mit Intel Quick Sync (10. Generation und höher)

format='dvb' protocol='udp://' video::codec='hevc_qsv' video::b='5M' audio::codec='aac' audio::b='128K' video::pix_fmt='yuyv422'


Hinweis: Funktionen wie Interlacing und der 4:2:2-Farbraum sind auch in den x264-CPU-Encodern verfügbar. Da wir eine LGPL-Version von FFmpeg ohne GPL-Teile (z. B. libx264) verwenden, sind diese Funktionen nicht aktiviert. Es ist möglich, die FFmpeg-Bibliotheken durch eigene Versionen zu ersetzen.


6. Mehrere Audiospuren

Wenn Sie mehrere Audiospuren senden müssen, z. B. für verschiedene Sprachen oder für Regie-Audio, ist dies mit allen unterstützten Protokollen (DVB, RTMP, UDP und einigen weiteren) möglich. Sie können auch verschiedene Audio-Codecs verwenden.

Das funktioniert so: Sie haben bereits ALLE Audiospuren in Ihrem Kanal aktiviert und TEILEN dann die Audiospuren für Ihren Stream-Ausgang beispielsweise in Stereopaare auf.

Stellen Sie zunächst sicher, dass Ihr Kanal auf mehr als 2 Audiokanäle eingestellt ist:

“Füllen” Sie diese Audiokanäle anschließend mit Audioinhalten, z. B. indem Sie alle Audiospuren eines Clips aktivieren oder alle Spuren über SDI einlesen (bis zu 16 Audiospuren). Sie können auch Audio-Mapping verwenden, um Ihre Audiospuren zu mischen, oder den Audiofilter nutzen, um bestimmte Audiospuren zu kopieren und zu verzögern.

Öffnen Sie anschließend die Einstellungen Ihres Stream, insbesondere die Parameter des Stream-Protokolls, und aktivieren Sie die Audio-Spuraufteilung:

INFO: Die Anzahl der Audiokanäle in Ihren Stream-Einstellungen muss auf 2 eingestellt bleiben.

Bei Bedarf können Sie für die zusätzlichen Audiospuren verschiedene Audio-Codecs verwenden. Bitte beachten Sie die fortlaufenden Nummern für jede weitere Audiospur nach der ersten:

audio::codec='aac' audio.1::codec='ac3' audio.2::codec='libmp3lame' audio.3::codec='mp2'


Sie können außerdem für jede Audiospur einen Sprachdeskriptor festlegen:

audio::metadata::language='eng' audio.1::metadata::language='ita' audio.2::metadata::language='fra' audio.3::metadata::language='ger'


INFO: Sprachcodes müssen den folgenden Anforderungen entsprechen ISO 639-2

Anschließend können Sie Ihre fertigen Audiospuren beispielsweise in StreamGURU testen:


7. Untertitel und SCTE

Beide Optionen können in den Parametereinstellungen Ihres Protokolls aktiviert werden:

INFO: SCTE-35 ist nur für folgende Protokolle verfügbar: SRT, DVB, UDP (beliebiger Videocodec). Untertitel funktionieren nur mit den folgenden Videocodecs: MPEG-2, H.264 (alle Protokolle)

Dazu müssen beide Funktionen bereits in Ihrem Kanal aktiviert und verfügbar sein. Weitere Informationen zu SCTE und/oder Untertiteln finden Sie in den folgenden Artikeln:

Übertragung von SCTE-35 an den Stream-Server
Untertitel


8. Weiterleitung von Streams über eine bestimmte IP-Adresse

Für Ihre Produktion müssen Sie Ihre Streams über bestimmte Netzwerke übertragen. Dies dient in erster Linie dazu, eine dedizierte bzw. reservierte Leitung für das Streaming zu nutzen, damit der reguläre Netzwerkverkehr nicht beeinträchtigt wird.

Falls Sie UDP Streams Füge diesen Parameter einfach direkt in die URL ein:
udp://ip:port?localaddr=172.20.10.2

Falls Sie SRT Streams Füge diesen Parameter einfach direkt in die URL ein. Das funktioniert nur in Rendezvous-Modus:
srt://ip:port?mode=rendezvous&localip=172.20.10.2

Bei Verwendung von RTMP Streams gibt es leider keinen entsprechenden Parameter. Sie müssen den gesamten ausgehenden RTMP-Datenverkehr manuell weiterleiten. Dazu verwenden wir Proxifier. Gehen Sie zu “Profil”, „Proxifizierung-Regeln“, „Neue Regel hinzufügen“, bearbeiten Sie sie wie folgt und verschieben Sie sie an den Anfang der Regeln. Wählen Sie den gewünschten Adapter über „Erweitert“ aus.


Wenn Sie lokal einen Testlauf ohne die zweite Leitung durchführen möchten, aktivieren Sie sowohl den Ethernet-Adapter als auch das WLAN auf Ihrem PC, starten Sie dann einen neuen Hotspot auf Ihrem Mobiltelefon und verbinden Sie das WLAN Ihres PCs mit diesem Telefon. Öffnen Sie anschließend die Eingabeaufforderung (“cmd”) und geben Sie “ipconfig” ein. Die benötigte IP-Adresse finden Sie dort:

Sie können Ihren Netzwerkverkehr mit Wireshark.


9. Überwachung und Fehlerbehebung

Wenn Ihre Streams-Geräte verzögert reagieren oder sogar ganz ausfallen, wissen Sie oft nicht, was genau passiert ist. Hier finden Sie einige Hinweise, die Ihnen helfen sollen, das Problem zu identifizieren.

1. Bitrate

Beachten Sie folgende Regel: Die Einstellung für die Video- und Audio-Bitrate (für Ihren Stream) sollte niemals die Bitrate der Clip-Kodierung überschreiten. Überprüfen Sie dies, indem Sie mit der rechten Maustaste auf Ihren Clip in der Wiedergabeliste klicken und „MediaInfo“ öffnen. Stellen Sie in diesem Fall die Video-Bitrate auf 3 M und die Audio-Bitrate auf 128 K ein.


2. Überwachung

Öffnen Sie das Monitorfenster in PLAYDECK oder öffnen Sie die Stream-Protokolle.

50/60 FPS (Durchschnittliche/angestrebte Bildrate)
Vergleicht die aktuelle und die durchschnittliche Codierungsbildrate mit dem Sollwert. Ein Rückgang deutet darauf hin, dass das System mit der Echtzeit-Codierung nicht Schritt halten kann.

Verstrichen (Wartezeit pro Bild in Sekunden)
Zeigt die Zeit an, die seit der Verarbeitung des letzten Frames verstrichen ist. Steigt dieser Wert an, können keine Frames verarbeitet werden, da die Quelle fehlt, falsche Einstellungen vorliegen oder keine Verbindung besteht.

Übersprungen (Ausgelassene Bilder)
Der wichtigste Indikator für Leistungsengpässe. Steigt dieser Wert an, lässt der Encoder absichtlich Frames weg, da er diese nicht schnell genug verarbeiten kann.

Pausen (Verlorene Bilder)
Wenn die Netzwerkverbindung langsam ist, werden Unterbrechungen angezeigt, da der Server möchte ein neuer Frame, der jedoch nicht rechtzeitig eintrifft (bei Protokollen, die eine Bestätigung erfordern, wie RTMP oder SRT). Unterbrechungen können auch auftreten, wenn die Quelle einen Frame nicht rechtzeitig übermittelt.

Puffer (Warten auf Frames)
Überwacht die Anzahl der Frames, die in der internen Warteschlange warten. Ein stetig wachsender Puffer ist in der Regel ein Vorbote für übersprungene Frames oder Unterbrechungen. Hoch übersprungen, tief gebrochen: Das bedeutet in der Regel, dass dein CPU-/GPU-Encoder ist zu langsam. Hohe Unterbrechungen, wenige/keine Übersprünge: Das bedeutet in der Regel, dass die Netzwerk oder Quelle ist der Engpass. Der Autor ist bereit zum Codieren, aber die Frames kommen nicht an oder werden aufgrund der Verbindungsverzögerung nicht in den richtigen Zeitintervallen “abgeholt”.


3. Netzwerk-/Bandbreitenprobleme

Schalten Sie alle Ihre Streams-Geräte aus, öffnen Sie die Windows-Eingabeaufforderung (“cmd” im Startmenü) und geben Sie Folgendes ein:

tracert


Verwenden Sie den Hostnamen oder die IP-Adresse Ihrer Ziel-URLs. Sollten Sie Werte >100 ms feststellen, deutet dies auf eine langsame Verbindung zu Ihrem Stream-Ziel hin.

Beachten Sie auch, dass die Download-Geschwindigkeiten bei Glasfaser-, Kabel- oder DSL-Verbindungen heutzutage zwar meist sehr hoch sind (>100 Mbit/s), die Upload-Geschwindigkeit jedoch deutlich geringer ausfallen kann. Verwenden Sie ein Tool wie Geschwindigkeitstest um Ihre tatsächliche Upload-Geschwindigkeit zu ermitteln.

Verwenden Sie außerdem den Bandwidth Profiler auf dem Stream-Server, um zu überprüfen, ob die gewünschte Bitrate auch auf dem Server empfangen wird. Die meisten Anbieter oder Softwareprogramme stellen Tools zur Messung der empfangenen Bitrate zur Verfügung. Im Idealfall wird diese als Grafik dargestellt, die eventuelle Lücken während der Übertragung aufzeigen kann. Falls Sie kein entsprechendes Tool zur Hand haben, empfehlen wir Ihnen, auf YouTube zu streamen, da diese Plattform über einen integrierten Stream-Analysator verfügt, der sich hervorragend zur Diagnose instabiler Verbindungen eignet.

Erkundigen Sie sich bitte außerdem bei Ihrem Anbieter oder Dienst, ob dieser lokale Stream-Ingest-URLs für Ihre Region oder Ihr Land bereitstellt. Twitch stellt beispielsweise solche URLs zur Verfügung. Twitch-Ingest-Endpunkte.