Skip to content

Воспроизведение стрима

Работающий стрим отдаёт себя всеми основными протоколами сразу — включать нечего, адрес зависит только от имени стрима. Зритель приходит на адрес инсталляции; в кластере до нужного стримера его доводит балансировщик проигрывания.

Адреса

Протокол Адрес
HLS /streaming/v/<имя>/index.m3u8 — основной путь для веба, мобильных приложений и Smart TV
DASH /streaming/v/<имя>/Manifest.mpd
MPEG-TS по HTTP /streaming/mpegts/<имя> — приставки и VLC
fMP4-поток /streaming/fmp4-stream/<имя> — непрерывный fMP4, удобен инструментам
Встроенный плеер /streaming/embed/<имя> — готовая страница-плеер
Сведения о потоке /streaming/info/<имя> — JSON с дорожками и битрейтами

Если у стрима настроен транскодер с лестницей качеств, HLS и DASH отдают все качества, и плеер переключается между ними сам.

Два способа воспроизведения живут на других страницах: раздача по SRT — на странице ретрансляции, просмотр архива с отмоткой — на странице DVR.

Воспроизведение в кластере

Адреса /streaming — это отдача конкретной машины: каждый стример обслуживает их сам, и балансировки на этом пути нет. В кластере прибивать зрителя к машине не нужно — у central есть балансировщик проигрывания: те же адреса, только с префиксом /playback вместо /streaming, на адресе central:

http://<адрес central>/playback/v/<имя>/index.m3u8
http://<адрес central>/playback/embed/<имя>

Балансировщик находит живой стример, на котором стрим размещён, и доводит зрителя одним из двух способов:

  • Редирект — плеер получает 302 на публичный payload URL стримера и дальше ходит на машину напрямую; central в трафике не участвует.
  • Прокси — публичный адрес стримеру не задан, и central переливает медиа через себя.

Способ выбирается настройками доставки стримера — см. Подключение и доставку.

Если в кластере есть эдж-стримеры, балансировщик предпочитает их: зрители уходят на эджи, а стримеры захвата раздают только внутрикластерные потоки. Стримеров в разных городах и сетях разводит по зрителям механизм CDN-зон.

Защита воспроизведения действует и на этом пути: политику применяет стример, до которого балансировщик довёл зрителя.

Встроенный плеер

/streaming/embed/<имя> — законченная страница с плеером: её можно открыть в браузере для быстрой проверки или встроить в свой сайт через iframe. Параметр ?autoplay=false отключает автозапуск.

Встроенный плеер с живым эфиром

Этот же плеер показывает стрим на вкладке основных настроек в консоли.

Проверьте отдачу

Самая быстрая проверка — плейлист:

curl -s http://<адрес>/streaming/v/<имя>/index.m3u8 | head

Живой стрим отвечает манифестом с качествами (#EXT-X-STREAM-INF). Пустой манифест из одного заголовка — стрим есть, но отдавать нечего: почти всегда это сырые кодеки без транскодера.

  • 404. Стрима с таким именем нет — имя входит в адрес буквально.
  • Манифест есть, плеер не играет. Смотрите кодеки в /streaming/info/<имя>: браузерные плееры читают H.264/AAC.
  • Стрим не зелёный. Сначала источник, потом воспроизведение.