Ad insertion
Server-side ad insertion puts the break inside the media timeline. There is no separate ad request from the browser, so there is nothing for a blocker to intercept and nothing to buffer awkwardly between content and commercial.
Uploading an ad
Section titled “Uploading an ad”curl -b jar -X POST \ http://localhost:9001/api/v1/apps/default/ads/promo-a \ --data-binary @promo.mp4Ads are conditioned like VOD assets, so the splice is clean. GET /api/v1/apps/default/ads reports readiness.
Triggering a break
Section titled “Triggering a break”curl -b jar -X POST \ http://localhost:9001/api/v1/apps/default/streams/channel1/ad-break \ -H 'content-type: application/json' \ -d '{"ad":"promo-a","duration_secs":30}'Omit duration_secs and the ad plays in full. Give a shorter value and the
break is cut to that length, which is what you want when the slot is fixed.
The default when the field is absent comes from
[ssai].default_break_secs.
The dashboard has the same control under each live stream, with a menu to pick the ad and set the duration.
Scheduled breaks
Section titled “Scheduled breaks”For a playout channel, set ads and ad_every on the playlist and breaks
happen at item boundaries automatically. See
VOD and playout.
What viewers see
Section titled “What viewers see”The break is signalled with a stream discontinuity, so conforming players handle the transition the way they were designed to. To the player it is one continuous stream that happens to change encoding parameters partway through.
Clean feed for partners
Section titled “Clean feed for partners”If you restream to another platform, that partner usually should not receive your ad breaks. Jadarit keeps a clean copy of the pre-insertion feed available at the same time, so partners get the programme while your own audience gets the commercial. It is produced only when something is actually consuming it, so it costs nothing when unused.
Per-target control lives in the restream configuration; see Recording and restreaming.