Livesim2 URL generator

host=https://livesim2.dashif.org

SegmentTemplate variant
General timing ...
Multi-period ...
Low latency...
SSR
MPD Patch...
Provides delta DASH MPDs at a PatchLocation

Set a positive TTL in seconds

SCTE-35...
SCTE-35 emsg frequency
Start and stop...
Generate time subtitles...
Time subtitle region
Encryption and DRM
Encryption on-the-fly with keys via ECCP or commercial DRM systems. Pre-encrypted assets cannot be changed.
See /config for what commercial DRMs are configured.
For more about DASH-IF ECCP see DASH-IF IOP Part 6
Annex I URL Parameters...
Server-Guided Ad Insertion (SGAI, DASH Ed.6)...
Personalized live ad replacement via Alternative-MPD Replace events

The live stream is annotated with DASH 6th-edition Alternative-MPD Replace events. At each break the player resolves an ad-decisioning endpoint (default /sgai/ads), plays the returned ad pod (a List MPD), then resumes the live stream. Grammar:

( <off>:<dur>[,<off>:<dur>...] | p<period>:<dur> )[;key=val;...]
where each off:dur is one break, both in seconds:
  • off — break start, seconds from the period (availabilityStartTime) start
  • dur — break duration; also the maximum ad-pod duration (ads are trimmed to fit)
  • p<period>:<dur> — recurring breaks instead: a break of dur at every wall-clock multiple of period (e.g. p60:20 = 20 s at every start of a UTC minute, forever). Anchored to the wall clock, not the session start, so all viewers share the schedule and a late joiner can land in the middle of a break.
Optional ;key=val settings after the break list:
  • skipafter=<s> — ads become skippable after s seconds (default: not skippable)
  • nojump=<0|1|2> — restrict skipping the break by seeking (default 0)
  • clip=<0|1> — clip the replaced main content (default 1)
  • once=<0|1> — each event executes only once (default 1)
  • resolve=<s> — earliestResolutionTimeOffset: how many seconds before the break the player may resolve the ad (default 60)
  • ep=<path> — ad-decisioning endpoint path (default /sgai/ads)
Example:
30:15,90:15;skipafter=5;nojump=2
two 15 s breaks (at 30 s and 90 s), skippable after 5 s, not skippable by seeking.
During each break the underlying (clear AVC) video track serves a generated AD BREAK slate with a per-second countdown to the end of the break — the visible "ad to be replaced", i.e. the base ad. Players that execute the Replace event cover it with the personalized pod; others show the slate. Audio is untouched.
An ad pod is only returned for an interest-steered request: with no interests (or interests that match no creative) the decisioning answers 404, the Replace event is skipped, and every player keeps the AD BREAK slate (the base ad). This is the default when neither sessionId nor interests are given.
Cannot be combined with the multi-period / xlink / insertad options.

sessionId and interests are added as MPD-URL query parameters and propagated to the ad-decisioning request via Annex I, so each viewer can receive a different, interest-steered ad pod. With no interests the decisioning returns no pod and the viewer sees the base ad (the AD BREAK slate). Watch ad decisions and impression beacons live at /sgai/session_status.

Negative test cases...