Skip to content

NDI

media.ingest.ndi

Описание

Sapsan принимает видео и звук от NDI-источников в локальной сети. Можно подключиться непосредственно к медиапорту или выбрать источник по точному имени из каталога отправителя. При decode: false сервер пропускает декомпрессию SpeedHQ и передаёт сжатое видео дальше по тракту.

Настройка

Настройка выполняется через API central. Фрагмент конфигурации стрима:

streams:
- name: source1
  inputs:
  - ndi:
      url: ndi://192.0.2.10:5961
      transport: tcp
      decode: false

Параметры

Поле Описание
url ndi://host[:port], без пути и учётных данных.
source точное имя в каталоге отправителя; без него подключение идёт напрямую.
transport выбранный транспорт.
multicast_interface локальный IPv4-адрес для подписки на мультикаст.
decode распаковывать SpeedHQ (по умолчанию true); false сохраняет сжатые кадры.
peer_timeout_ms таймаут отсутствия данных.

Варианты транспорта

  • TCP — tcp, по умолчанию.

  • UDP unicast — udp_unicast.

  • UDP multicast — udp_multicast.

  • RUDP/QUIC — rudp.

Управляющие метаданные идут по TCP. При выборе UDP автоматического перехода на TCP-медиа нет.

Поддерживаемые кодеки

  • SpeedHQ SHQ0
  • SpeedHQ SHQ2
  • SpeedHQ SHQ4
  • SpeedHQ SHQ7
  • SpeedHQ SHQ9
  • PCM s16
  • Float32 audio

SpeedHQ — сжатое видео NDI. При decode: false вход передаёт эти кадры без распаковки; при decode: true декодирует их в несжатые восьмибитные YUV-плоскости. PCM s16 и Float32 — форматы несжатых звуковых отсчётов. Наличие NDI не означает поддержку H.264/HEVC из NDI HX.

Поведение при ошибках

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

Применение изменений

Изменения передаются через API central. При изменении адреса источника или формата захват открывается заново; это может прервать приём на время подключения. После применения проверьте состояние входа и поступление кадров.

Счётчики

bytes — входящие байты; video_frames и audio_frames — принятые кадры. frames_dropped — кадры, потерянные при сборке или переполнении очереди. packets_lost — потерянные UDP-датаграммы; packets_repeated — повторы; fec_packets_recovered — восстановленные FEC. quic_stream_retransmits и quic_stream_retransmit_bytes относятся к локальным исходящим повторам QUIC, а не к потерям входящего видео.

Ниже — точные имена полей протокольной статистики. counter накапливает события, gauge показывает текущее значение; список включает оба вида. Нулевые поля могут отсутствовать в ответе. API и Prometheus используют разные проекции: весь список не следует ожидать в одном ответе Admin API. Доступ к детализации зависит от лицензии на счётчики.

Общие показатели входа: bytes, frames, errors, warnings. Они суммируют данные протокола, поэтому складывать их с протокольными счётчиками повторно не нужно.

Ndi

Поле Тип
memory_bytes gauge
bytes counter
video_frames counter
audio_frames counter
metadata_frames counter
errors_video_decoder counter
errors_audio_decoder counter
frames_dropped counter
datagrams counter
packets_lost counter
packets_repeated counter
repeated_bytes counter
fec_packets_recovered counter
fec_bytes counter
quic_packets_lost counter
quic_stream_retransmits counter
quic_stream_retransmit_bytes counter
quic_receive_queue_bytes gauge

Прочее

При decode: false следующий потребитель должен принимать сжатый SpeedHQ. Для выдачи HLS добавьте транскодирование в кодеки плеера. decode: true распаковывает видео в несжатые кадры и увеличивает нагрузку на CPU и память.

Что дальше