Мультикаст-источник¶
Типовая картина кабельного оператора: головная станция или энкодер раздаёт стримы транспортными потоками MPEG-TS в мультикаст-группы локальной сети — по группе на стрим. Эта страница подключает такую группу к стриму Catena.
Подключите группу¶
Создайте стрим и на вкладке Источники нажмите + Добавить источник. Выберите протокол MPEG-TS/UDP и заполните:
- Хост — адрес мультикаст-группы, например
239.255.1.77. - Порт — порт группы, например
5500. - Входящий интерфейс — имя сетевого интерфейса или его локальный IPv4-адрес; пустое поле оставляет выбор системе.
- Таймаут пира (мс) — сколько молчания в группе терпеть до перезапуска приёма. Пустое поле — разумное умолчание.
Нажмите Сохранить. Стример подпишется на группу, захватит поток, и статус стрима загорится зелёным; карточка здоровья покажет битрейт и дорожки.

Выбор интерфейса приёма¶
Если мультикаст приходит через отдельную сетевую карту, укажите её в поле Входящий интерфейс на вкладке Источники у входа MPEG-TS/UDP. Например, задайте Хост 239.255.1.77, Порт 5500 и Входящий интерфейс eno2. Вместо имени можно указать IPv4-адрес этой карты, например 192.168.20.10. Подписка на группу будет создана на выбранном интерфейсе, даже если маршрут по умолчанию проходит через eno1.
Поле работает для IPv4-мультикаста, в том числе при приёме от конкретного отправителя (SSM). Для IPv6 оставьте его пустым: явный выбор интерфейса для IPv6 не поддерживается. Для юникаста это поле не выбирает интерфейс приёма. Чтобы вернуть выбор по таблице маршрутов ОС, очистите поле и сохраните настройки. Смена интерфейса пересоздаёт подписку и кратковременно прерывает приём.
Имя или адрес должны принадлежать стримеру, который принимает поток. Если интерфейс не найден или у него нет IPv4-адреса, источник не запустится; причина появится в состоянии входа. В кластере проверьте настройку на каждом стримере, где может быть размещён этот стрим.
Если источник задаётся URL, используйте udp://239.255.1.77:5500?interface=eno2. Также поддерживается формат udp://eno2@239.255.1.77:5500; если задан и параметр interface, он имеет приоритет.
Интерфейс для отправки мультикаста задаётся отдельно у каждого пуша.
Приёмный буфер¶
Ядро ОС держит у UDP-сокета очередь входящих датаграмм: пока стример занят другим, пакеты ждут в ней, а не пропадают. Поле Приёмный буфер (байт) у входа задаёт размер этой очереди. Пустое поле — умолчание 4 МиБ, около секунды целого мультиплекса в 30–40 Мбит/с; стоковых 212 КиБ хватило бы лишь на 40–50 мс, и любая заминка планировщика оборачивается потерями, которые в счётчиках выглядят как CC-ошибки.
Что важно знать:
- Сокет один на адрес. Все стримы с одной группой и портом делят и буфер: действует последняя явная настройка любого из них, а смена применяется на лету, без пересоздания подписки.
- Ядро может урезать запрос. Без прав
CAP_NET_ADMINразмер ограничен системным параметромnet.core.rmem_max— под полем появится предупреждение с фактическим размером. Поднимитеrmem_maxдо запрошенного или дайте стримеруCAP_NET_ADMIN: тогда запрошенное применяется целиком. - Карточка здоровья называет причину. Если ядро начало терять датаграммы, вход помечается проблемой «Приёмный буфер мал», а под полем появляется подсказка «не меньше N» — сколько байт держат 200 мс текущего битрейта. CC-ошибки и разъезд дорожек рядом с ней — следствия: сначала поднимайте буфер.


Что должно быть верно в сети¶
- Мультикаст не ходит через интернет. Стример, принимающий группу, должен сидеть в том же сегменте сети, что и её источник, — или сеть между ними должна маршрутизировать мультикаст.
- Подписку делает стример. Он шлёт IGMP-запрос на вступление в группу; коммутаторы с IGMP snooping доставляют поток только подписчикам. Ничего настраивать на стримере для этого не нужно — важно, чтобы сеть подписку пропускала.
- Один вход — одна группа и порт. Каждому стриму — своя группа: так их раздаёт и головная станция.
Дальше по задачам¶
- Поток из группы обычно уже сжат (H.264 или MPEG-2). H.264/AAC играется как есть; если головная станция отдаёт MPEG-2 — добавьте транскодер, иначе браузерные плееры поток не прочитают.
- У TS-входов есть счётчик ошибок непрерывности: порог Лимит CC-ошибок переводит источник в «деградировал» при потерях пакетов — см. Резервирование источников.
- Мультикаст-группа может быть и резервом: второй вход с приоритетом ниже основного.
Если группа не захватилась¶
- Карточка «Мёртв», битрейта нет. До стримера не доходят пакеты: неверная группа или порт, другой VLAN, IGMP-запрос не пропущен коммутатором, файрвол режет UDP. Проверяйте с машины стримера — подписывается именно он.
- Битрейт есть, стрим не зелёный. Поток приходит, но в нём не находится ожидаемых дорожек — смотрите карточку здоровья: что стример разобрал из потока.
- Источник моргает: работает — деградировал. Потери пакетов в сети; счётчик CC-ошибок в карточке растёт. Это сетевая проблема, а не проблема стрима.