Skip to content

NDI — NewTek NDI

NDI is the de-facto standard for video over the local network — plug-and-play, auto-discovered. Phrame ingests NDI sources and publishes discoverable NDI outputs, so it drops straight into an NDI-based facility.

  • Library: libphramendi.so (+ runtime libndi.so*) · Implementation: C++
  • Direction: read (receive) and write (send)
{
"ndi": {
"adapters": { "allowed": ["10.28.2.10", "10.28.2.11"] },
"networks": { "discovery": "172.25.0.254" },
"unicast": {
"send": { "enable": true },
"recv": { "enable": true }
}
}
}
  • adapters.allowed — restrict to specific local NICs.
  • networks.discovery — discovery server address.
  • unicast.send / unicast.recv — enable unicast send/receive.

Source / output names are typically supplied by the host config (e.g. output-processor’s url: ndi://0.0.0.0/Name). NDI discovery relies on mDNS/avahi being available in the container.

Built by plugins/phrame-make.sh (CMake); requires the NewTek NDI SDK at build time; stages libphramendi.so and the libndi.so* runtime. The mDNS path has historically failed when built outside the orchestrator — build via phrame-make.sh.