SCTE-35 Marker bewegen sich in MPEG-Transportströme. In PLAYDECK bedeutet das UDP, SRT, DVB-kompatibel Streaming, MPEG-TS Aufnahmen und HLS-Segmente — weder SDI noch MKV/RTMP.
Am SDI, verwende SCTE-104 stattdessen: Verwendung von SCTE-104 über SDI.
Vollständige „Von→Bis“-Matrix: Untertitel & SCTE – Überblick.
Mit PLAYDECK können Sie Ihre eigenen SCTE-35-XML-Dateien erstellen (flexibel für jeden Empfänger). Platzhalter füllen die Zeitangaben und IDs für Clips und Blöcke aus.
In diesem Artikel:
→ SCTE-35 aktivieren
→ Wo sollen die Markierungen angebracht werden?
→ XML-Beispiele und Platzhalter
→ Test der lokalen Stream-Schleife
→ Weiterleitung zwischen Streams
→ HLS-Ausgabe
→ Test mit Nimble Streamer
→ Protokollierung und Tools
→ Verwandte Themen
SCTE-35 aktivieren
SCTE-35 ist nicht standardmäßig für Streams/Aufzeichnungen aktiviert. Öffnen Parameter und festlegen:
embed_scte35='true'
| Kompatibel mit | Trifft nicht zu |
|---|---|
UDP, SRT, DVB-kompatibel (Format (mpegts/dvb), MPEG-TS-Dateiaufzeichnung, HLS Segmente | SDI, NDI, MKV, RTMP/FLV |
Die Der Videocodec spielt keine Rolle für SCTE-35 (im Gegensatz zu Untertiteln / embed_cc).
Tipp zur UDP-URL: Verwenden Sie Ihre LAN-IP-Adresse (z. B. udp://192.168.x.x:5000?pkt_size=1316). Lieber nicht 127.0.0.1.
Bei Bedarf können Sie dies mit Bildunterschriften kombinieren:
embed_scte35='true' embed_cc='true'
Es wurde kein Konflikt zwischen SCTE-35 und embed_cc bei MPEG-TS-Streams (im Gegensatz zu SCTE-104 + aktiver CC/ASS-Spur bei SDI – siehe Übersicht über die Grenzwerte).
Wo sollen die Markierungen angebracht werden?
SCTE-Befehle an folgende Elemente anhängen:
- Clips (jede Spielposition)
- Blöcke (Anfang / Ende)
- Überlagerungen (anzeigen / ausblenden)
- Aktionsschaltflächen
Stellen Sie den Befehlstyp auf SCTE-35 (nicht SCTE-104), wenn es sich bei der Zieldatei um einen Stream oder eine TS-Datei handelt.
XML-Beispiele und Platzhalter
Die Formate variieren je nach Empfänger. Die folgenden Beispiele entsprechen den SCTE-35 Aus / Diese Schaltflächen im Dialogfeld „Befehle“ sind für typische „splice_insert“-/SSAI-Arbeitsabläufe (einschließlich Nimble) vorgesehen. Erkundigen Sie sich bei Ihrem Anbieter, ob ein anderes XML-Format erforderlich ist.
Eins Werbeunterbrechung Ausstrahlung = eine spliceEventId. Das Zeichen, das die Pause einleitet ({eventid}) und das schließende Tag ({eventlastid}) muss dieselbe Nummer tragen. Die nächste Pause erhält eine neue ID. PLAYDECK erhöht einen kanalbezogenen Zähler, wenn {eventid} / {eventidhex} steht im XML; {eventlastid} / {eventlastidhex} den letzten Wert wiederverwenden und nicht erhöhen. Der Zähler ist nicht wird in der Playlist-Zeile gespeichert (bei einer Schleife oder am nächsten Tag darf die ID von gestern nicht erneut verwendet werden). Sie wird beim Neustart von PLAYDECK zurückgesetzt.
Tun nicht setzen {timestamp} in spliceEventId — Parser interpretieren das Jahr (z. B. 2026) häufig als Ereignis-ID.
Platzhalter für die Dauer werden nur ausgefüllt, solange der Kanal spielen. Für einen Blockumbruch verwende {blockduration} (90-kHz-Ticks: Sekunden × 90000). {clipduration} ist der aktuelle Ausschnitt, nicht die gesamte Pause.
Schnitt mit Dauer (automatische Rückführung)
Verwendung bei Blockstart (oder eine Aktion, die die Pause einleitet). autoReturn="1" lässt den Empfänger nach Ablauf der Dauer zurückkehren; du kannst weiterhin ein „In“ auslösen mit {eventlastid} falls Ihr Rad ein explizites CUE-IN benötigt.
Einfügen (Rückkehr)
Gleiche Pause, Blockende (oder eine zweite Aktion). Keine Dauer. Gleiche ID über {eventlastid}.
outOfNetworkIndicator 1 = Programm verlassen (CUE-OUT), 0 = Zurück (CUE-IN). Schließen </SpliceInsert> — Fehlende End-Tags führen bei vielen Parsern zu Fehlern.
Platzhalter
| Token | Was Sie erhalten |
|---|---|
{eventid} | Neue Ereignis-ID (dezimal). Wird bei jedem Befehl, der Folgendes enthält, um eins erhöht: {eventid} / {eventidhex}. |
{eventlastid} | Letzte Ereignis-ID, keine Erhöhung. Verwendung bei „In“. |
{eventidhex} / {eventlastidhex} | Gleiche IDs wie 8-stellige Hexadezimalzahlen (SCTE-104 ). |
{blockduration} | Blocklänge, 90 kHz dezimal (SCTE-35). |
{clipduration} | Aktuelle Clip-Länge: 90 kHz. |
{blockduration10} / {clipduration10} | Gleiche Länge in Zehntelsekunden (SCTE-104). |
{blockduration10hex} | Zehntel als 4-stellige Hexadezimalzahl, max. FFFF. |
{blockduration+6} / {blockduration10hex+6} | Ganze Sekunden hinzufügen/abziehen (z. B. Start-/Endzeit). Leerzeichen innerhalb der Angabe sind zulässig { }. |
{timestamp} {timestampunix} {airtimenext} {plannednext} {clipid} {blockid} | Zeitangaben / Playlist-IDs — nicht für spliceEventId. |
Der Befehlstyp muss SCTE-35 (nicht SCTE-104), wenn es sich bei der Zieldatei um einen Stream oder eine TS-Datei handelt.
Test der lokalen Stream-Schleife
- Kanal 1: Starten Sie UDP oder SRT mit
embed_scte35='true'. - Kanal 2: Die gleiche URL als Stream-Clip abspielen.
- Aktion auf Kanal 1 mit SCTE-35-XML → Ereignisprotokoll:
>>auf Kanal 1,<<SCTE-35 auf Kanal 2.
Optional: Aufzeichnung auf einem .ts Datei mit embed_scte35='true', während der Aufnahme Marker setzen und diese anschließend im DVB Inspector sowie durch Abspielen der Datei in PLAYDECK bestätigen (<<). Siehe Aufzeichnung von CC und SCTE.
Weiterleitung zwischen Streams
PLAYDECK kann SCTE-35 über Stream-Ein- und -Ausgänge weiterleiten (z. B. SRT → UDP oder Kanal 1 → Kanal 2 → Kanal 3 über UDP).
Empfänger anzeigen << bei jedem Hop, wenn embed_scte35 ist für jeden ausgehenden MPEG-TS-Stream aktiviert.
Wird nicht unterstützt: automatisch SCTE-104 → SCTE-35 wenn eine SDI-Quelle über IP gestreamt wird. Senden Sie stattdessen SCTE-35 über den Streaming-Kanal.
HLS-Ausgabe
Wenn Sie „Apple HLS“ auswählen, erstellt PLAYDECK eine lokale .m3u8 (+ Segmente), jedoch keine eigenständige Live-Veröffentlichung über ein CDN.
- PLAYDECK tut nicht SCTE/CUE-Tags in die
.m3u8Manifest. - SCTE-35 / CC kann weiterhin vorhanden sein in Segmente. Beim Abspielen der m3u8-Datei in PLAYDECK können Untertitel angezeigt werden und
<<SCTE-35. - Für manifestbasierte Anzeigenmarker (z. B.
#EXT-X-CUE-OUT), verwenden Sie einen Server wie beispielsweise Wendig (unten) oder ein anderes Programm, das SCTE-35-Cues in HLS-Cues umwandelt.
Test mit Nimble Streamer
Typischer Pfad: PLAYDECK UDP + embed_scte35 → Nimble → HLS mit Cue-Tags.
- Nimble installieren; SCTE aktivieren in
nimble.conf(Beispiel):
Starten Sie den Nimble-Dienst nach der Bearbeitung neu.
scte35_processing_enabled = true
scte35_forwarding_enabled = true
hls_ad_scte35_forwarding_enabled = true
hls_ad_marker_format = cue
hls_ad_splice_out_cont_marker_enabled = true
- In WMSPanel: MPEG-TS-Eingang (UDP) entsprechend den Vorgaben von PLAYDECK; MPEG-TS-Ausgang / HLS je nach Bedarf.
- PLAYDECK-Stream-URL → dieser UDP-Port; beliebiger Videocodec (z. B. H.264);
embed_scte35='true'. - SCTE-35 an den Clip-Start (oder die Aktion) anhängen; Stream starten; Cues in den Nimble-Protokollen und in den HLS-Chunk-Playlists (Registerkarte „Netzwerk“ im Browser) überprüfen.
Protokollierung und Tools
- PLAYDECK SCTE-Ereignisprotokoll:
>>gesendet,<<erhalten. - DVB-Inspektor / TSDuck: SCTE-35 innen überprüfen
.tsDateien oder Aufnahmen. - MediaInfo: ideal für CC-Titel; oft nicht SCTE-35 deutlich auflisten.
Verwandte Themen
| Artikel | Thema |
|---|---|
| Untertitel & SCTE – Überblick | Vollständige Matrix, Definitionsbereiche, Grenzwerte |
| Verwendung von SCTE-104 über SDI | SDI-VANC-Marker |
| Untertitel & Bildunterschriften | CC-Einbrennen / Durchschleifen |
| Aufzeichnung von CC und SCTE | MKV vs. TS, Sidecars, Wiedergabeproben |