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 и память.