SCTE-35 ad markers from live sources
Updated 14 Oct 2026Many professional sources (satellite, contribution encoders, a broadcaster's playout) announce ad breaks right in the MPEG-TS stream as SCTE-35 markers: “a 2-minute break starts in 6 seconds”. Castreon reads them and writes them into the channel's HLS playlist, exactly on their picture — the format used by server-side ad insertion (SSAI) and by players that replace or mark breaks.
Available from Castreon 1.6.0, in the Enterprise edition. For file-based channels, SCTE-35 breaks come from the channel's schedule — see Schedule, live takeover and as-run report.
Switching it on
In the channel editor, at the source (URL, UDP, SRT, RIST or DVB), tick SCTE-35 ad markers from the source and save. The channel restarts with the markers.
The source must carry the SCTE-35 track (on the channel's Tracks tab it appears as data · scte_35). If it does not, the channel runs normally, without markers.
What reaches the playlist
For each break, in the channel's HLS playlist (index.m3u8):
#EXT-X-DATERANGEwith the exact time of the break (START-DATE), the announced duration (PLANNED-DURATION) and the original SCTE-35 section (SCTE35-OUT);#EXT-X-CUE-OUTat the start of the break,#EXT-X-CUE-OUT-CONTon the segments inside it and#EXT-X-CUE-INon the return.
Castreon understands splice_insert (a break with a duration or with a separate return, cancellation) and time_signal with segmentation descriptors (start and end of a break or of a placement opportunity). A break without an announced duration stays open until the return arrives.
Checking
- The channel page shows the Ad breaks (SCTE-35) card: the latest breaks, when they arrived, their duration and whether the return came.
- The channel log records every break (“120 s ad break”).
- API:
GET /api/v1/channels/<id>/scte35.
Good to know
- With the option on, the channel keeps the source timestamps (so the markers land exactly on the picture). If the source encoder restarts and its timestamps jump, Castreon notices the stalled output and restarts the channel by itself. That is why the option is off by default — switch it on for professional sources that send SCTE-35.
- HLS segments are cut at keyframes. For a break that starts exactly at a segment boundary, the source encoder must place a keyframe at the break (common practice for encoders with SCTE-35). Otherwise
START-DATEis still exact and the break starts inside the marked segment. - The markers go into HLS with TS segments. UDP / SRT / RIST outputs do not pass the SCTE-35 track on.