Skip to content

HLS

media.play.hls

Транспорт

HTTP или HTTPS; плейлисты и фрагменты передаются отдельными запросами по TCP.

Поддерживаемые кодеки

Видео

  • H.264
  • HEVC
  • AV1

Аудио

  • AAC
  • MP3
  • MP2
  • AC-3
  • E-AC-3
  • Opus

Список относится к выдаче Sapsan; возможность декодирования зависит от плеера. Дорожке также нужны корректные параметры кодека для упаковки в выбранный контейнер.

Любой поток Sapsan сразу доступен по HLS (fMP4/CMAF) без дополнительной настройки. Для лайва по умолчанию включен LL-HLS с частичными сегментами.

Сформированные Sapsan структурные текстовые дорожки выдаются как WebVTT; наличие исходного телетекста или растровых DVB-субтитров само по себе не означает готовую текстовую дорожку — сначала требуется соответствующее извлечение или распознавание.

При наличии текстовой субтитровой дорожки LL-HLS отключается для всего стрима: HLS выдаётся обычными сегментами. Поддержка кодека плеером и возможность получить LL-HLS — отдельные условия.

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

Что URL
Мастер-плейлист (все качества) http://server/streaming/v/<stream>/index.m3u8
Плейлист одной дорожки http://server/streaming/v/<stream>/variant/<track>/index.m3u8
Отмотка назад (rewind) http://server/streaming/v/<stream>/rewind/<секунд-назад>/index.m3u8
Архив по абсолютному времени http://server/streaming/v/<stream>/index.m3u8?from=<utc_ms>&to=<utc_ms>

В мастер-плейлисте: качества с RESOLUTION, FRAME-RATE и CODECS, аудио выносится в rendition-группы (EXT-X-MEDIA). Аудио G.711 (PCMA/PCMU) в HLS не отдается — такие потоки сначала транскодируйте в AAC.

HLS поверх MPEG-TS

Для приставок, которые не играют fMP4, тот же поток отдаётся HLS с сегментами MPEG-TS. Адреса — те же, что выше, с сегментом формы после имени потока:

Форма Мастер-плейлист Для кого
звук отдельными дорожками http://server/streaming/v/<stream>/ts/index.m3u8 приставки, которые понимают EXT-X-MEDIA
звук внутри видеосегмента http://server/streaming/v/<stream>/ts/mux/index.m3u8 приставки: видео и звук одной программой в каждом сегменте

Архив в обеих формах выбирается параметрами ?from=<utc_ms>&to=<utc_ms>. Отмотка доступна для раздельного TS: http://server/streaming/v/<stream>/ts/rewind/<seconds>/index.m3u8. У смешанного ts/mux/ отдельного URL отмотки нет.

В ts/mux/ каждое видео образует свой вариант, в который включён весь опубликованный звук, не более десяти аудиодорожек. Субтитры не включаются. LL-HLS для MPEG-TS не поддерживается. Список кодеков для обеих форм TS HLS уже, чем для непрерывной выдачи MPEG-TS:

  • H.264
  • HEVC
  • AAC
  • MP3
  • MP2
  • AC-3
  • E-AC-3

Какая форма отдаётся по адресам Flussonic (/<stream>/index.m3u8, video.m3u8 и другие), описано на странице совместимости с Flussonic. Неполные сегменты ts/mux/ и сборки мимо кэша видны в статистике.

Токены в плейлистах

Если проигрывание защищено токеном, ?token= автоматически дописывается во все вложенные URL плейлиста: варианты, init-сегменты, сегменты, части и preload-хинты. Плееру достаточно открыть мастер-плейлист с токеном.

Количество сегментов

Длина живого плейлиста задается параметром потока segments:

Настройки задавайте через central в конфиге стримера.

streams:
  - name: tv1
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    segments: 6

Что дальше