adgate

SCTE-35 vs SCTE 301 · live, side by side
▶ start the show doc admin

SCTE-35 · the marker · says when

A real live origin. adgate injects splice_insert cues into the transport and splices ads at the marked points. The cue is one binary message: "something happens here, for this long."
AD 0s
LIVE ORIGINencoder feed
SCTE-35 CUEsplice_insert
SPLICEone pod for all
EVERY VIEWERsame break
connecting…
Run a scenario below — this panel explains what the SCTE-35 side can (and cannot) do.

SCTE 301 · the assembly framework · says what, for whom, and how

A linear channel that does not exist as a transport stream. adgate assembles it per viewer from VoD files: SCTE 224-style schedules, ESAM-style decisions (SCTE 250), SCTE-35 on the wire — coordinated.
AD 0s
SCHEDULESCTE 224 / ESNI
DECISIONSCTE 250 / ESAM
ASSEMBLYmanifest, no encoder
PER SESSIONown manifest, own ads
connecting…
Each scenario lights up the stage this side performs at: schedule, decision, assembly.

Run the comparison — every button is a real action against both pipelines

👥 The same ad break, seen by two different viewers

SCTE-35 side — shared splice

SCTE 301 side — per-session decisioning

📚 What each "channel" actually is

SCTE-35 side

SCTE 301 side

Nothing on air yet

adgate can build the entire demo by itself with ffmpeg: a supervised sample live source, four generated ads, three generated programs, a SCTE-35 stream with auto-breaks and a SCTE 301 FAST channel.
The sample source keeps running until you stop it or shut the system down.