Skip to main content
Solutions · SSAI / Ad Insertion

Broadcast-grade dynamic ad insertion: Kaster's packet-level seamless SSAI

Built to eliminate black frames and stutter during live ad breaks. Kaster uses dynamic TS-layer restamping to align timestamps and continuity counters in real time, keeping both live-to-ad and ad-to-live transitions completely smooth — with built-in generic VAST integration that works with your existing ad stack, no ad-server replacement required.

Where SSAI Implementations Usually Break

Ad insertion problems usually come down to three technical details

01

Black frames from PTS/DTS/CC discontinuity

Most SSAI implementations simply splice ad segments into the live stream without properly handling the timeline and continuity counter join — the moment insertion happens, players often misread the stream as discontinuous, and viewers see a black frame or stutter.

02

Incompatible ad creative formats

If the encoding, resolution, or container format returned by the ad server doesn't match the broadcast stream, and there's no automatic transcoding or caching in place, insertion fails outright and the break goes dark.

03

Lock-in to a single ad platform

Many SSAI solutions are built around one ad tech stack. Switching or adding an ad server or SSP means redoing the integration from scratch, and maintenance cost grows with every new partner.

Technical Architecture

How the dynamic restamp engine works

STEP 1 — Signal detection

SCTE-35 parsing

Continuously listens to and parses cue-out/cue-in signals in the upstream live stream, automatically determining ad break start and end times — no manual marking required.

STEP 2 — Ad request

Generic VAST dispatch

Calls the ad server in real time using a configurable Ad Decision Server URL template, and parses the returned VAST 2.0/3.0/4.x ad description (auto-unwrapping up to 3 levels of Wrapper ads).

STEP 3 — Packet rewriting

TS-layer restamping

Rewrites video/audio PTS/DTS, the PCR reference, and each PID's Continuity Counter packet by packet, so the live→ad boundary is fully continuous in both timeline and continuity.

STEP 4 — Seamless output

Uninterrupted playout

Outputs a stream with a fully continuous timeline that players can't detect as discontinuous — the ad→live return is just as seamless, with no black frames or stutter.

Engineering Details, Not a Black Box

Compatibility, fault tolerance, and observability — all built in

01

Dynamic ADS parameter pass-through

Ad requests use a URL template mechanism that passes channel, session, ad duration, device type, and other parameters to your existing Ad Server in real time. Integration specs stay consistent, so you don't need separate wiring logic for each ad server.

02

Automatic fill on missing ads

If the Ad Decision Server times out or has no ad available, the system automatically fills the break duration with Slate creative — no dead air, no playout interruption.

03

Every insertion is traceable

Every break automatically retains the stream segments and playlists before and after insertion, paired with timeline analysis tools — so insertion anomalies don't have to be guessed at.

Integration with Existing Modules

From scheduling to viewer playback, one continuous signal chain

Break Rules (ad windows, spacing, duration, and insertion points) are configured centrally in the FAST TV scheduling module, and the SSAI engine inserts ads at the stream layer in real time according to those rules — no separate configuration to maintain for ad insertion.

01 — Scheduling

FAST TV scheduling engine

Generates the program schedule based on Break Rules and writes SCTE-35 cue-out/cue-in signals at the corresponding times.

02 — Output

Live stream output

The live stream (HLS/TS) carrying SCTE-35 markers is handed off to the SSAI engine for processing.

03 — Insertion

SSAI requests ads from the SSP/Ad Server

On detecting a signal, it requests a VAST ad description from the SSP/Ad Server in real time and seamlessly splices it into the live stream at the TS layer.

04 — Viewing

Viewer playback

The player receives a stream with a fully continuous timeline — live→ad→live plays without drops or black frames.

FAQ

What you might still want to know about SSAI and ad insertion

Q1Which VAST versions are supported?

VAST 2.0, 3.0, and 4.x are supported, with automatic unwrapping of up to 3 levels of Wrapper ads. VMAP is not currently supported.

Q2Do I need to redevelop anything to switch ad servers or SSPs?

No. Ad integration uses a configurable URL template — as long as the target Ad Server returns compliant VAST, switching or adding an ad server doesn't require redeveloping the integration logic.

Q3Does Kaster SSAI affect the quality of the original live signal?

No. The SSAI engine only rewrites transport-layer timeline and continuity information during the ad break window when an SCTE-35 signal is detected — the original live video/audio is never re-transcoded or re-compressed. Only the ad creative is transcoded as needed; the source and path of the live signal are completely unaffected.

Q4What happens if the ad server doesn't respond or has no ad to serve?

The system automatically falls back to Slate filler creative after a timeout to fill that break, avoiding dead air.

Q5How do I troubleshoot an insertion anomaly?

Every break retains the stream segments and playlists from before and after insertion, along with timeline analysis tools to help pinpoint where the issue occurred.

No lock-in to a single ad platform, no gambling on whether the stream drops