GUIDE

What is SCTE-35? The ad break, written into the stream itself.

SCTE-35 is the broadcast standard for marking moments inside a video stream, above all where an ad break starts and ends. The cue travels with the picture itself, frame-accurate, so an ad server, a distributor or a recorder knows exactly where the break lives without being told separately. No cues, no automated ad money.

Definition

A cable-era standard that outlived cable's monopoly on it

SCTE-35 was written for American cable in the 1990s, when the problem was splicing local car-dealer ads into a national feed at exactly the right frame, thousands of times a day, across systems run by different companies. The solution was to put the cue inside the stream itself: a small binary message riding alongside the video that says a splice point is coming, when, and for how long. Equipment from any vendor could read it, and nobody had to coordinate anything by phone.

Streaming inherited the standard because the problem survived the technology shift intact. Server-side ad insertion needs to know where breaks are. Distributors stitching a channel into their storefront need to know where they may sell. A downstream recorder needs to know where the programme actually starts. All of them read SCTE-35, which has made it the shared vocabulary between a channel and everyone who handles it after playout.

What trips newcomers is that SCTE-35 marks opportunities rather than inserting anything. The cue says "a 120 second break opens here". Something else, an ad server, a splicer, a downstream distributor, decides what fills it. A channel with clean cues and no ad demand shows its slate; a channel with demand and no cues shows nothing, because the machines were never told where the shelf is.

Anatomy

What a cue actually tells the world

Strip the binary framing away and every ad cue answers four questions. Get any of the four wrong and the failure is visible on screen.

  1. Warning, ahead of time

    A cue announces the splice before it happens, typically a few seconds of pre-roll, so an ad server has time to run its auction and have the replacement content ready. A marker that arrives exactly at the break is a marker that arrived too late.

  2. The exact splice point

    The cue pins the splice to a precise presentation timestamp in the stream, frame-accurate. This is the property everything downstream depends on: an ad spliced against a sloppy cue clips dialogue on the way out or strands a second of ad on the way back.

  3. How long the break is

    Duration rides in the cue, so the filler knows how much time it is bidding into and the player knows when to expect the return. A 120 second break can be filled with four 30s spots, two 60s, or whatever the auction produces.

  4. The way back

    The return is signalled too, either as an explicit cue-in or an auto-return baked into the out cue. Whichever form it takes, the channel resumes at a defined frame rather than whenever the ad happens to end.

The pipeline

A cue's journey from schedule to ad

The cue is born in playout, at the boundary the schedule defines: this item ends, a two minute break opens, the next item follows. The engine writes the SCTE-35 message into the transport stream at that frame. From there it has to survive every hop. The encoder must pass it through, and the packager must translate it into terms the delivery format understands, which for HLS means EXT-X-CUE-OUT and EXT-X-CUE-IN tags, or EXT-X-DATERANGE entries carrying the original payload, written into the playlist at the right segment.

Only then does anything commercial happen. A server-side ad inserter reads the manifest markers, runs its auction during the pre-roll the cue provided, and splices the winning spots into each viewer's stream at the cue's timestamp. A FAST distributor does its own version of the same read. Both are trusting the cue completely: its placement is the edit point, its duration is the inventory.

The chain is only as good as its weakest hop, and the classic failure is silent. A transcoder that was never told about the cue PID drops it without an error, and the channel arrives downstream perfectly watchable, with nothing left for anyone to sell. When a distributor bounces a channel for cue problems, this is usually where the cues went.

The vocabulary

The terms that come up in every spec.

Three distinctions cover most of what a carriage tech spec will ask about. The full cue-type detail, as our engine actually emits it, is on the SCTE-35 product page.

The pair

splice_insert vs time_signal

Two command forms, one job. splice_insert is self-contained and says "break here, this long". time_signal delegates the meaning to segmentation descriptors, which can say much more: programme boundaries, chapters, blackout windows, placement opportunities. Modern distributor specs lean time_signal; older gear speaks splice_insert. A channel that emits both correctly clears either bar.

The descriptors

Segmentation types

Descriptors carry a type ID that says what the marked span is. Provider and distributor ad starts and ends (0x30 through 0x33), placement opportunities (0x34 through 0x37), programme start and end (0x10, 0x11). The IDs matter because ad servers key their behaviour off them: a placement opportunity invites replacement, a programme boundary does not.

The other standard

SCTE-104, the request side

In a traditional plant, automation speaks SCTE-104 to the encoder and the encoder writes SCTE-35 into the output. The pair are constantly confused because they describe the same break at different stages. If your channel is born in cloud playout, the engine writes 35 directly and 104 never enters the building.

The stakes

Why a marker standard decides whether you get paid

Everything automated in television advertising keys off these cues. No cues means server-side insertion has nothing to fill, a distributor has nothing to sell against, and your ad strategy is reduced to burning spots into the programme where nobody can replace, target or count them. That is why "emits standards-compliant SCTE-35" appears in every serious carriage spec, and why it is worth checking a playout vendor's answer before signing rather than after: it decides whether a FAST platform deal is a configuration task or a migration.

It is also why the cues belong to playout rather than to the ad stack. The system that runs the schedule is the only one that knows, to the frame, where the break truly is. Ours writes them at that boundary, in both command forms, and they ride the stream from the playout engine all the way to whoever fills them.

The spec sheet

Command forms, segmentation types, delivery restrictions and how the cues surface in HLS, as the engine actually emits them, are on the product page.

SCTE-35 ad insertion, the product
Questions

SCTE-35, answered.

What does SCTE-35 stand for?

SCTE is the Society of Cable Telecommunications Engineers, the US standards body, and 35 is the number of the standard: Digital Program Insertion Cueing Message. It was written so cable systems could splice local ads into national feeds without anyone faxing a rundown. The streaming industry then adopted it wholesale, because the problem it solves, telling downstream equipment exactly where a break lives, did not change when the transport did.

What is a splice_insert?

The older and simpler of the two SCTE-35 command forms. A splice_insert says: a splice point is coming at this exact moment, it lasts this long, and here is when we return. It carries an event ID so the out point and the in point can be matched up. Most ad servers and distributors accept it, and for straightforward ad breaks it remains the workhorse.

What is a time_signal?

The newer command form, and the more expressive one. A time_signal marks a moment in the stream and hands the meaning over to segmentation descriptors attached to it: this is an ad break opening, a programme starting, a chapter ending, a placement opportunity. Anything the descriptor vocabulary can say, a time_signal can mark, which is why distributor specs increasingly ask for it.

What is the difference between SCTE-35 and SCTE-104?

Which side of the encoder they live on. SCTE-104 is the request: automation or a switcher tells the encoder, over its own protocol, that a break is coming. The encoder translates that into SCTE-35, which is the message embedded in the compressed stream itself. In a cloud playout chain the playout engine writes SCTE-35 directly, so many streaming operators never touch 104 at all.

How does SCTE-35 work in HLS?

The packager translates the binary cue into manifest markers. In practice that means EXT-X-CUE-OUT and EXT-X-CUE-IN tags around the break, or EXT-X-DATERANGE tags carrying the original cue payload, written into the playlist at the segment where the splice lands. Downstream systems read the manifest rather than parsing the transport stream, which is what makes server-side ad insertion on HLS practical.

Do I need SCTE-35 for a FAST channel?

Yes, in any version of the business where the ads are sold by machines. Server-side ad insertion fills breaks it can find, and it finds them from the cues. Distributor tech specs for FAST carriage ask for SCTE-35 by name, and a channel that arrives without it goes back in the queue until it has it.

Who puts the cues into the stream?

The playout system, at the moment the schedule says a break starts. That is why frame accuracy is a playout property rather than an ad-server property: if the cue lands a second late, every ad spliced against it clips the programme. Here the cues are written by the engine itself, at the boundary the schedule defines, in both command forms.

Do SCTE-35 cues survive transcoding?

Only if every hop is built to carry them. The cues ride in their own PID in the transport stream, and a transcoder or packager that was not configured to pass them will silently drop them. It is the most common way a perfectly cued channel arrives at a distributor with no cues at all, and it is worth verifying at the output of every processing step, not just the first one.

GET STARTED

Your channel can be live in minutes.

No contract and cancel anytime, with a 7-day money-back guarantee on your first purchase.