Skip to content

Доставка в сеть

Главный выход головной станции — транспортный поток, отправленный в сеть: в мультикаст-группу кабельного оператора, на модулятор, на юникаст-адрес приёмника. Станция здесь активная сторона: она сама шлёт, никто к ней не подключается.

Направление доставки называется пушем, и у каждого пуша есть Имя. Имя — это идентичность: по нему направление находят в настройках, в статистике и в метриках. Панель предупреждает об этом прямо под полем: смена имени создаёт новый пуш, и счётчики начнутся с нуля.

Отправьте поток в группу

Вкладка Исходящий поток, блок Пуши, кнопка + Добавить пуш. Протокол — MPEG-TS/UDP.

Поле Что задаёт Умолчание
Имя идентичность направления —
Хост мультикаст-группа или юникаст-адрес приёмника —
Порт порт получателя —
TTL мультикаста сколько маршрутизаторов переживёт датаграмма 10
Исходящий интерфейс с какой сетевой карты уходит мультикаст выбирает система
Адрес привязки локальный адрес, к которому привязан сокет выбирает система

UDP-пуш в мультикаст-группу

Переключатель Включён рядом с именем выключает направление, не удаляя его. Для юникаста укажите адрес приёмника. TTL мультикаста и Исходящий интерфейс применяются только к мультикасту.

Выбор интерфейса отправки

На вкладке Исходящий поток у пуша MPEG-TS/UDP или MPEG-TS/RTP задайте Исходящий интерфейс: имя сетевой карты, например eno4, или её локальный IPv4-адрес, например 192.168.40.10. Укажите в Хосте группу 239.255.2.77, в Порте — 5500, затем нажмите Сохранить. Мультикаст уйдёт через выбранную карту независимо от маршрута по умолчанию.

Входящий и исходящий интерфейсы задаются независимо: поток можно принимать через eno2, а отправлять через eno4. У каждого пуша свой исходящий интерфейс. Пустое поле оставляет выбор таблице маршрутов ОС; очистка поля и сохранение возвращают это поведение. Настройка применяется к IPv4-мультикасту. Для юникаста исходящий интерфейс выбирает маршрутизация; поле Адрес привязки задаёт локальный адрес сокета и имеет другое назначение.

Интерфейс должен существовать на отправляющем стримере и иметь IPv4-адрес. Если имя или адрес неверны, пуш не запустится и покажет ошибку. При смене исходящего интерфейса пуш перезапускается. В кластере проверьте доступность интерфейса на каждом стримере, который может отправлять этот поток.

Приём настраивается отдельно — см. выбор интерфейса приёма.

Мультикаст в реальной сети

Три вещи, на которых спотыкается доставка, и все три решаются полями выше.

  • Не та сетевая карта. На машине с несколькими интерфейсами система выбирает исходящий интерфейс по таблице маршрутов, и для мультикаста этот выбор часто оказывается не тем. Если сигнал «отдаётся», но приёмник его не видит, первым делом задайте Исходящий интерфейс явно.
  • TTL. Умолчание 10 позволяет пакету пережить маршрутизацию — принятый в ядре TTL 1 не выпустил бы поток даже за пределы подсети. Через несколько маршрутизаторов TTL поднимают, при жёсткой изоляции сегмента — опускают.
  • Приёмник должен подписаться. Станция шлёт в группу независимо от того, слушает ли её кто-нибудь: пакеты уходят и без подписчиков. «Ничего не приходит» на стороне приёмника — это, как правило, его собственная подписка или IGMP snooping на коммутаторе, а не станция.

RTP вместо голого TS

Часть приёмников ждёт MPEG-TS, упакованный в RTP по RFC 2250 / SMPTE ST 2022-2, а не голым потоком поверх UDP. Это тот же выход, отличается инкапсуляция: выберите протокол MPEG-TS/RTP вместо MPEG-TS/UDP.

Датаграмма получает RTP-заголовок, всё остальное — адресация, TTL, интерфейс, счётчики — общее с обычным UDP-пушем.

Соседний вариант в том же списке — RIST, когда принимающая сторона ждёт именно его.

Несколько направлений сразу

У стрима столько пушей, сколько нужно, и работают они независимо: упавший приёмник одного направления не задевает остальные.

Направления с одинаковыми эффективными настройками выхода делят один побайтово идентичный поток: сто одинаковых пушей стоят столько же, сколько один. Разными их делают только собственные служебные таблицы — свой PNR и свои PID у направления; тогда для него переписываются таблицы и PID, а раскладка пакетов, PCR и счётчики непрерывности остаются от общего выхода.

Поведение при обрыве

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

Отсюда практическое следствие: отправка на недоступный адресат не сдаётся и не требует ручного перезапуска. Она будет подниматься, пока направление включено.

Реконнектом не считаются:

  • правка настроек — пушер тоже перезапускается, но это решение оператора, а не отказ канала;
  • выключение и включение — выключение не удаление: настройки и накопленные счётчики остаются, отправки нет.

Удаление направления удаляет и его статистику: счётчики привязаны к имени.

Что проверять

Под каждым пушем идёт строка живой статистики: статус — Отдаёт, Ошибка или Выключен — скорость в кбит/с, ошибки в секунду, реконнекты, а у отказавшего ещё и причина. Разбор всех полей и рецепты алертинга — на странице Контроль доставки.

Статус Отдаёт при нулевой скорости означает, что отправлять нечего: проблема на входе, а не на выходе.

Что дальше