Skip to content

Проигрывание по DASH

Любой поток Sapsan доступен по MPEG-DASH: и лайв, и архив.

URL проигрывания

Что URL
Живой манифест http://server/streaming/v/<stream>/Manifest.mpd
Архив по абсолютному времени http://server/streaming/v/<stream>/Manifest.mpd?from=<utc_ms>&to=<utc_ms>

Живой манифест

Динамический MPD (профиль isoff-live): все качества MBR-потока лежат в одном видео-AdaptationSet отдельными Representation, отсортированными по возрастанию битрейта — плееры корректно строят ABR-лесенку. Окно timeShiftBufferDepth и suggestedPresentationDelay рассчитываются автоматически (задержка — около двух сегментов от живого края).

Архивный манифест

Архивный MPD статический. Дырки в записи оформляются отдельными периодами (<Period>), и таймлайн можно выбрать параметром ?timeline=:

  • compact (по умолчанию) — дырки схлопываются, архив проигрывается подряд;
  • wallclock — дырки сохраняются, таймлайн соответствует реальному времени.

bandwidth каждой Representation считается по фактическим данным запрошенного диапазона. Если в архиве есть JPEG-дорожка скриншотов, она отдается как стандартный thumbnail tile AdaptationSet.

Диагностика

Встроенный валидатор DASH проверяет манифест: выравнивание стартовых времен дорожек ABR-лесенки, дырки и наложения в SegmentTimeline между обновлениями, дрейф живого края аудио/видео. Режим (static/live) определяется по @type манифеста автоматически.

Note

TODO: как запускать валидатор, проверенные плееры (dash.js, ExoPlayer).

Что дальше