How the break gets filled
Every step runs on open standards, so the same engine works on a laptop, a single VM, or Kubernetes, with no vendor lock-in.
Signal in
A live HLS manifest arrives with SCTE-35 cues (and DATERANGE metadata).
Detect
The cue detector extracts ad avails from splice_insert and time_signal markers.
Apply policy
Passthrough policy honors delivery restrictions and trims program-boundary markers (ESAM/POIS configurable, off in this demo).
Decide
The engine calls a real VAST tag (Google's public IMA sample) and gets back a real MP4 creative.
Condition
The creative is conditioned with ffmpeg to the stream's rendition ladder, cached and prefetched.
Render
Stitched into the manifest (SSAI), delivered as an HLS Interstitial (SGAI), inserted as DASH multi-period (demo-dash), or spliced into encrypted content (demo-drm): one conditioned CMAF segment set serves HLS and DASH alike.
Prove
Impression and quartile beacons fire; every break is logged for reconciliation against the ad server.
What you are watching
No mock and no stand-in: the creative is a live response from Google's ad infrastructure.
- A real Google IMA sample ad (a roughly 10 second MP4), fetched live over VAST at session start.
- Inserted into a 30 second break signalled by SCTE-35. The ad fills the first 10 seconds; slate pads the rest.
- Never dead air: on no-fill or an origin hiccup the break degrades to slate and last-good, never to a black screen or a 5xx.
- Plays as SSAI in any hls.js browser; Safari and iOS additionally render the SGAI interstitial variant.
Inspect it live
The same instance exposes its audit trail and metrics, the parts an ad-operations team actually checks.
