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