Skip to content

DASH playback

Every Sapsan stream is available over MPEG-DASH: both live and archive.

Playback URLs

What URL
Live manifest http://server/streaming/v/<stream>/Manifest.mpd
Archive by absolute time http://server/streaming/v/<stream>/Manifest.mpd?from=<utc_ms>&to=<utc_ms>

Live manifest

A dynamic MPD (isoff-live profile): all qualities of an MBR stream live in one video AdaptationSet as separate Representations sorted by ascending bandwidth — players build the ABR ladder correctly. The timeShiftBufferDepth window and suggestedPresentationDelay are derived automatically (the delay is about two segments behind the live edge).

Archive manifest

The archive MPD is static. Recording gaps become separate <Period>s, and the timeline is selectable with the ?timeline= parameter:

  • compact (default) — gaps are collapsed, the archive plays back continuously;
  • wallclock — gaps are preserved, the timeline matches real time.

Each Representation's bandwidth is measured from the actual data of the requested range. If the archive has a JPEG screenshot track, it is exposed as a standard thumbnail tile AdaptationSet.

Diagnostics

The built-in DASH validator checks a manifest: start-time alignment of ABR ladder tracks, gaps and overlaps in the SegmentTimeline between refreshes, audio/video live-edge drift. The mode (static/live) is auto-detected from the manifest @type.

Note

TODO: how to run the validator, verified players (dash.js, ExoPlayer).

Next steps