At the contribution encoder or live packager, inject SCTE-35 splice_insert() messages into the MPEG-TS program as a dedicated PID at the desired ad break start and end points.
Configure the packager (MediaPackage, Wowza, Unified Streaming, etc.) to parse the SCTE-35 PID and map splice messages to HLS EXT-X-CUE-OUT / EXT-X-CUE-IN tags in the media playlist; the break duration from the SCTE-35 message populates the EXT-X-CUE-OUT duration attribute.
For more precise segment boundaries, configure the packager to force a segment split at the splice_insert trigger point so the ad break begins on a clean segment boundary.
Pass the HLS stream with SCTE-35 cues to a server-side ad insertion (SSAI) service such as AWS MediaTailor, which replaces the cue-out window with ad content before delivering personalized manifests to viewers.
Verify cue propagation by inspecting the live HLS manifest for EXT-X-CUE-OUT and EXT-X-DATERANGE tags at the expected timecodes.
For DASH delivery, the packager should emit DASH Event Stream elements (schemeIdUri aligned to the SCTE-35 DASH ESAM specification) in the MPD at the corresponding positions.
Known gotchas
SCTE-35 time_signal() with segmentation descriptors is the more modern approach and supports richer event types beyond simple ad breaks; splice_insert is widely supported but considered legacy.
SCTE-35 markers must arrive at the packager ahead of the target timecode (typically at least 2× the segment duration in advance) to allow clean segment splitting.
Ensure the SSAI service has ad slate or filler content available to fill breaks that are not fully populated by ad inventory; empty breaks cause player errors.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp