Übertragung von SCTE-35 an Streams und Server

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 mitTrifft nicht zu
UDP, SRT, DVB-kompatibel (Format (mpegts/dvb), MPEG-TS-Dateiaufzeichnung, HLS SegmenteSDI, 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
TokenWas 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

  1. Kanal 1: Starten Sie UDP oder SRT mit embed_scte35='true'.
  2. Kanal 2: Die gleiche URL als Stream-Clip abspielen.
  3. 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 .m3u8 Manifest.
  • 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.

  1. 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

  1. In WMSPanel: MPEG-TS-Eingang (UDP) entsprechend den Vorgaben von PLAYDECK; MPEG-TS-Ausgang / HLS je nach Bedarf.
  2. PLAYDECK-Stream-URL → dieser UDP-Port; beliebiger Videocodec (z. B. H.264); embed_scte35='true'.
  3. 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 .ts Dateien oder Aufnahmen.
  • MediaInfo: ideal für CC-Titel; oft nicht SCTE-35 deutlich auflisten.

Verwandte Themen

ArtikelThema
Untertitel & SCTE – ÜberblickVollständige Matrix, Definitionsbereiche, Grenzwerte
Verwendung von SCTE-104 über SDISDI-VANC-Marker
Untertitel & BildunterschriftenCC-Einbrennen / Durchschleifen
Aufzeichnung von CC und SCTEMKV vs. TS, Sidecars, Wiedergabeproben