Воспроизведение через NDI¶
Agora объявляет стрим как отдельный NDI-источник в локальной сети. Приёмник находит источник и подключается к нему. Для выдачи нужны включённый NDI listener на стримере и разрешение Публиковать стрим в NDI у самого стрима.
NDI работает без авторизации. Включайте его только в доверенной сети: пользователь с сетевым доступом сможет подключиться к опубликованному источнику без токена просмотра Agora.
Закрепите стрим за сервером¶
На данный момент настройка NDI в кластере начинается с закрепления стрима за конкретным сервером через labels с требованием required_…. NDI listener включается на этом же сервере.
- Откройте Кластер → Стримеры, выберите сервер в сети NDI-приёмников и на вкладке Кластер добавьте в Теги значение
ndi-studio-a. Сохраните настройки. - Убедитесь, что этот тег указан только у выбранного сервера. Если его получат несколько серверов, требование будет разрешать размещение на любом из них.
- Откройте стрим в разделе Стримы. На вкладке Лейаут добавьте тег
required_ndi-studio-aи сохраните стрим. - Включите listener, как описано ниже, и проверьте назначение на вкладке Лейаут: стрим должен работать на выбранном сервере.
required_ — обязательное условие размещения; preferred_ задаёт только предпочтение и не закрепляет стрим за сервером. Существующие ограничения неймспейса и остальные теги также должны совпадать. При недоступности единственного подходящего сервера стрим не будет назначен на другой сервер без этого тега.


Включите NDI listener¶
В карточке выбранного стримера откройте вкладку Сервер, найдите настройки листенеров и включите NDI listener. Сохраните настройки.

| Поле | Значение по умолчанию | Назначение |
|---|---|---|
| IP интерфейса | Не задан | Все IPv4-интерфейсы. Можно указать IP сетевой карты для NDI. |
| Порт каталога NDI | 5960 |
Общий TCP-каталог источников этого сервера. |
| Диапазон медиапортов | 5961–6060 |
По одному автоматически выделяемому TCP-порту на объявленный стрим. |
| Очередь | 4 |
Лимит очереди каждого приёмника в полных картинках; пара полей считается одной картинкой. |
IP интерфейса должен принадлежать этому серверу. Порт каталога должен находиться вне медиадиапазона. Разрешите приёмникам доступ к TCP-порту каталога и медиадиапазону; для обнаружения через mDNS нужен UDP-порт 5353 в локальной сети. Если меняете порт каталога с 5960, поиск только по IP в NDI Access Manager может не работать.
Оставьте поле IP интерфейса пустым, чтобы использовать все IPv4-интерфейсы.
Подготовьте сигнал и разрешите выдачу¶
NDI-выход кодирует уже подготовленный несжатый сигнал. Он выбирает первую подходящую raw-видеодорожку и первую подходящую raw-аудиодорожку в составе стрима; сжатые дорожки пропускает.
- Видео:
v210илиuyvy422. -
Аудио:
- PCM 16 бит
- S32P
- FLTP
-
Без аудио: выдача только видео допускается.
Если источник уже даёт подходящие дорожки, дополнительное декодирование не нужно. Для сжатого источника откройте вкладку Транскодер и подготовьте raw-выход: например, пресетом RAW для SDI (v210) + PCM. Несмотря на название, его дорожки подходят и для NDI. Сам NDI listener не декодирует H.264/HEVC и не преобразует AAC в PCM. Если меняете транскодер существующего эфира, сохраните также сжатые дорожки, необходимые его остальным получателям.
На вкладке Исходящий поток включите Публиковать стрим в NDI. Качество SpeedHQ по умолчанию равно 90, допустимы значения 52–99. Сохраните стрим и дождитесь его запуска на закреплённом сервере. Первый NDI-приёмник запускает только энкодер NDI; остановленный стрим его подключение не запускает.

Без NDI-приёмников состояния «Энкодер выключен» и «Нет сигнала» ожидаемы: обработка для NDI начнётся с подключением первого зрителя.
Подключите приёмник¶
В списке источников NDI-приёмника выберите имя-сервера (имя-стрима), например studio-a (conference). Каждый разрешённый стрим появляется отдельным источником; несколько приёмников могут подключаться к одному источнику.
Используется NDI High Bandwidth со SpeedHQ; это не NDI HX. Режим транспорта в приёмнике оставьте Auto: текущая выдача работает по TCP. Адрес назначения пуша в Agora для этого не задаётся — соединение открывает приёмник.
Состояние и отключение¶
У настроек NDI-выхода отображаются адрес медиапорта и число зрителей, а также состояние энкодера и наличие сигнала. Ошибка подготовки или публикации показывается рядом.
- Первый зритель запускает энкодер NDI; подключение остальных использует тот же источник.
- Нет зрителей 20 секунд — энкодер останавливается, а объявление и медиапорт сохраняются.
- Выключен выход стрима или listener — соединения закрываются сразу и объявления снимаются.
При временном отсутствии кадров соединение сохраняется. NDI-выход не создаёт чёрное видео и тишину: если нужна заставка, настройте резервный источник стрима. При потере связи с central сервер продолжает обслуживать уже применённую конфигурацию.
Если приёмник не видит видео¶
| Признак | Что проверить |
|---|---|
| Источника нет в списке | Назначение стрима на закреплённый сервер, оба переключателя NDI, доступ к каталогу и обнаружение mDNS. |
| Не хватает портов | Диапазон медиапортов и занятость портов другими процессами. Порт нужен каждому объявленному источнику, даже без зрителей. |
| Источник виден, но сигнала нет | Стрим запущен; в нём есть подходящее raw-видео; ошибка у NDI-выхода отсутствует. |
| Нет звука | В составе стрима есть поддерживаемая несжатая аудиодорожка. AAC сам по себе не подходит. |
| Медленный приёмник отключается | Пропускную способность сети и нагрузку приёмника. После заполнения ограниченной очереди сервер пропускает полные картинки; при непрерывных дропах в течение 5 секунд отключает этого клиента. |