Ad cues, SCTE-35, and why live is different. The 300ms auction budget shrinks to near-zero — and the SSAI stitcher has to splice an ad into the manifest before the next segment ships.
VoD vs. live
VoD
Break positions known in advance
At packaging time the editor already knows where every ad break sits. The manifest can be built with cue markers baked in, ad pods pre-decisioned, and creatives transcoded to match the ladder.
Live
Encoder signals breaks in real time
A producer hits "go to break" — the encoder embeds an SCTE-35 marker into the transport stream. The packager, SSAI stitcher, and ad server have a few hundred milliseconds to decision and splice.
SCTE-35
SCTE-35 is the broadcast-derived standard for embedding ad-cue markers inside an MPEG-TS or CMAF/fMP4 stream. A splice_insert() descriptor tells every downstream system: "an ad break starts in N frames, lasting D seconds."
It's the same signal that triggered local ad insertion on cable for decades — repurposed for IP streaming. Packagers translate it into HLS EXT-X-CUE-OUT tags and DASH EventStream entries.
The shrinking time budget
In VoD a 300ms OpenRTB auction is comfortable. In live, the stitcher has to ship the next manifest window now — typically inside 50–150ms — or viewers see a stall.
option A Pre-fetch creatives from a warmed pool, run a cached auction, splice the chosen MP4.
option B Run a real-time auction with a tight tmax (≤120ms) and accept a higher slate-rate.
option C Cue arrives late or stitcher misses — fall back to a slate or branded filler for the break.