Skip to content

SRT-публикация

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

Так подключают внешних авторов: репортёра с телефоном, студию партнёра, камеру на событии. Им отдают одну строку подключения — всё остальное кластер решает сам.

Как кластер принимает звонок

  • Выделенный UDP-порт стрима слушают все ноды кластера — на какую ни позвони, дверь одна и та же.
  • Дозвонившийся проходит проверку passphrase прямо на рукопожатии; дальше стрим привязывается к ноде, принявшей звонок, и запускается на ней.
  • Оборвавшаяся публикация ждёт возвращения: через несколько секунд тишины соединение закрывается, стрим переходит в ожидание. Энкодер, перезвонивший на другую ноду, забирает стрим с собой — привязка следует за звонком.
  • Пока публикация идёт, порт занят: второй энкодер, позвонивший в ту же дверь, получает отказ «занято» и не роняет действующую трансляцию.

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

Один адрес для всех энкодеров

Энкодеру нужен один адрес, а нод в кластере несколько. Настройка Адрес публикации (меню Настройки central) — это имя или IP, который консоль подставляет в строку подключения. Что стоит за этим адресом — DNS-имя с несколькими A-записями, VIP или UDP-балансировщик — выбор инсталляции; здесь разобран DNS-вариант как не требующий дополнительного софта. Пустая настройка означает хост консоли и годится только для одиночной машины.

Адрес публикации и кандидаты в DNS

Сценарий: DNS-имя с несколькими A-записями

В SRT нет перенаправлений: клиент звонит по UDP на конкретный адрес, и «спросите на соседней ноде» протокол сказать не умеет. Зато SRT-клиенты — OBS, Larix, VLC — при недоступности адреса сами перебирают A-записи имени, тратя порядка трёх секунд на мёртвую. Имя с A-записями на каждую ноду даёт отказоустойчивость силами самого клиента: нода умерла — энкодер дозвонился до следующей.

Порядок настройки:

  1. Заявите публичные адреса нод. В карточке каждой ноды заполните Публичный адрес медиа — поле предлагает выбор из адресов, которые нода видит на своих интерфейсах; за NAT правильный адрес знаете только вы, впишите его руками.
  2. Сверьтесь с подсказкой. Под настройкой Адрес публикации консоль показывает кандидатов в DNS-записи — по одному адресу на живую ноду, с именем ноды. Это и есть список того, что нести в зону.
  3. Заведите A-записи. В своей DNS-зоне создайте имя — например, publish.example.com — с A-записью на адрес каждой ноды из списка.
  4. Впишите имя в «Адрес публикации» и сохраните. Кластер периодически резолвит имя и сверяет результат с реестром нод: у настройки видно, что имя ведёт на живые ноды. Имя, которое не резолвится или ведёт только на выключенные ноды, зажигает предупреждение — типовая ошибка сопровождения «ноду вывели, запись забыли» видна сразу, а не при первом сорванном эфире. Строки для энкодера у всех стримов с этого момента собираются с именем.

Две честные оговорки:

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

Настройка стрима

Откройте стрим на вкладке Стримы и найдите секцию SRT-публикация:

Поле Что задаёт
UDP-порт порт публикации; один порт — один стрим, на всех нодах сразу
Passphrase ключ шифрования AES, 10–79 байт; при несовпадении звонок отклоняется на рукопожатии

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

Добавление порта публикации: порт без passphrase — предупреждение об открытой двери

Под полями собирается готовая Строка для энкодераsrt://адрес:порт?passphrase=… — с кнопкой копирования и QR-кодом: адрес с ключом вбиваются в мобильный энкодер с камеры, а не с клавиатуры. Адрес в строке — тот самый Адрес публикации из раздела выше: задайте его до того, как раздавать строку, иначе энкодер унесёт адрес одной конкретной ноды.

Рядом с QR — вкладки Larix и Moblin: та же дверь готовой ссылкой импорта для этих приложений — сканируется их камерой, соединение появляется в настройках само.

Секция SRT-публикации в карточке стрима

Подключение энкодера

В OBS: Настройки → Трансляция → Служба: Настраиваемый, в поле Сервер — строка из карточки стрима целиком:

srt://publish.example.com:9000?passphrase=ваш-ключ

Мобильному энкодеру покажите QR из той же секции. После старта вещания стрим поднимется в течение пары секунд — это видно в списке стримов и на странице портов.

Сводка SRT-портов

Страница SRT-порты (в меню под Стримами) — карта всех SRT-дверей кластера: порты публикации и раздачи, чей каждый порт, задан ли passphrase, слушается ли фактически. Здесь же:

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

Сводка SRT-портов

Когда звонок отклоняют

Что случилось Что видит энкодер
Passphrase не совпал отказ на рукопожатии, соединение не устанавливается
Порт занят действующей публикацией отказ «занято»; идущая трансляция не прерывается
Публикация замолчала через несколько секунд тишины соединение закрывается, стрим ждёт следующего звонка

Что дальше