SCTE-35 ad markers, explained
SCTE-35 is the signal that tells a streaming system where an advertisement is allowed to go. It is carried inside the stream itself rather than alongside it, and if it is absent or wrong, the hours you deliver run without advertising in them.
What it actually is
A standard from the Society of Cable Telecommunications Engineers, older than streaming, originally built so cable operators could splice local advertising into a national feed. It survived the move to streaming because the problem did not change: something has to say "an ad can start here, and it can last this long".
A marker is a small binary message embedded in the transport stream at a precise point. It carries a splice command — the intent, such as the start or end of a break — an identifier tying a start to its corresponding end, and usually a duration. Downstream, an ad server sees the marker and decides what to insert.
How it differs from an MRSS cue point
These get conflated constantly and they operate at different layers.
- An MRSS cue point is metadata about a file, delivered in the feed entry that describes it: "this asset has breaks at 00:02:14 and 00:05:41." The scheduler reads it before the file plays. See the MRSS guide.
- An SCTE-35 marker is inside the media, at the frame in question, and is read as the stream plays.
Which one a platform wants depends on its pipeline, and plenty of workflows need both — the metadata so the schedule can be planned, the in-band signal so insertion actually fires. Assuming one covers the other is a common and expensive mistake.
Where the breaks are allowed to go
Not wherever you like. Platforms and playout partners impose rules, and they are enforced at ingest: a minimum gap before the first break, a minimum spacing between breaks, a minimum tail after the last one, and often a cap on how many a given duration may carry.
The reasoning is viewer experience — a break ninety seconds in, or two breaks a minute apart, is how a channel loses an audience. The consequence for a supplier is that break placement is a constraint to be satisfied automatically, not a judgement call made per asset.
What goes wrong
- No markers at all. The file plays, the channel looks fine, and it earns nothing. Discovered at the first revenue report.
- Unmatched start and end. A break that opens and never closes, which downstream systems handle badly and visibly.
- Markers that violate spacing rules and fail QC, sending you back to re-deliver against a launch date.
- Frame-accuracy drift after a transcode, where the marker no longer sits where the edit does.
Where MediaBlaze fits
MediaBlaze places ad breaks as part of producing the package rather than as a manual step afterwards: breaks are positioned at segment boundaries that respect the spacing rules your platform enforces, marked in the delivered media and declared in the metadata that travels with it. The file and the feed entry agree, because both are generated from the same edit.