Проигрывание архива¶
Записанный архив доступен через те же протоколы, что и лайв: HLS и DASH. Дополнительно есть API для запроса записанных диапазонов и превью.
Проигрывание архива работает только у потоков с включенной записью (dvr) — иначе запрос отклоняется с понятной ошибкой.
Rewind — отмотка назад¶
Плейлист, отмотанный на N секунд назад от текущего момента:
http://server/streaming/v/<stream>/rewind/<секунд>/index.m3u8
Например, rewind/3600/ — часовой timeshift. Rewind бесшовно склеивает архив с живым краем: плейлист начинается в архиве и продолжается лайвом без дублей и дырок на стыке, LL-HLS (blocking reload, дельта-обновления) продолжает работать. Дырки в записи оформляются стандартным EXT-X-DISCONTINUITY.
Проигрывание по абсолютному времени¶
Интервал архива задается параметрами from/to (UTC в миллисекундах) на обычных URL:
http://server/streaming/v/<stream>/index.m3u8?from=<utc_ms>&to=<utc_ms>
http://server/streaming/v/<stream>/Manifest.mpd?from=<utc_ms>&to=<utc_ms>
HLS-плейлист архива — закрытый VOD-плейлист. У DASH дырки записи оформляются периодами, а таймлайн выбирается параметром ?timeline=compact|wallclock — см. DASH.
Какие диапазоны записаны¶
Записанные интервалы отдает HTTP API:
http://server/streaming/dvr-range/<stream>
http://server/streaming/dvr-ranges/<stream>
Note
TODO: формат ответов dvr-range / dvr-ranges.
Превью кадров архива¶
- JPEG-кадр из дорожки скриншотов:
http://server/streaming/dvr-preview-jpeg/<stream>/<track>/image/<utc_ms>.jpg - MP4-фрагмент момента архива:
http://server/streaming/dvr-preview-mp4/<stream>/<utc_ms>— короткий фрагмент от ключевого кадра; для превью сервер сам выбирает дорожку наименьшего разрешения.