Network Device Interface


Network Device Interface is a software specification developed by the technology company NewTek. It enables high-definition video to be transmitted, received, and communicated over a computer network with low latency and high quality. This royalty-free specification supports frame-accurate switching, making it suitable for live video production environments.

Technology

NDI is designed to run over gigabit Ethernet with the NDI codec. It delivers 1080i high-definition video at variable data rates typically around.
By default, NDI uses multicast DNS to advertise sources on a local area network, such that NDI receivers can automatically discover and offer those sources. It also supports two other discovery modes that allow for operations across subnets and without multicast DNS. Sources are created using an arbitrarily selected TCP port from a range of ports on the NDI senders. When a source is requested, a TCP connection is established on the appropriate port with the NDI receiver connecting to the NDI sender. NDI 3.x has options to use UDP multicast or unicast with forward error correction instead of TCP, and can load balance streams across multiple network interface controllers without using link aggregation. NDI version 4.0 introduces the Multi-TCP transport.
NDI carries video, multichannel uncompressed audio, and metadata. Metadata messages can be sent in both directions allowing the sender and receiver to message one another over the connection with arbitrary metadata in XML form. This directional metadata system allows for functionality such as active tally information fed back to sources to understand that they are on-air. NDI also allows senders to determine the number of connected receivers, so they can skip unnecessary processing and network bandwidth utilisation when there are no NDI receiver clients connected. NDI Receivers can opt to connect to various combinations of streams, to support, for instance, audio-only or metadata-only connections where video is not required.
The NDI software development kit is available for Windows, Linux, and MacOS, and has also been ported to iOS, tvOS, Android, Raspberry Pi, and FPGA. The Standard NDI SDK is available via a royalty-free proprietary license. The NDI Advanced SDK offers OEMs direct access to and from compressed data and other features, with a commercial license.

Comparison of common IP video protocols

Other IP video protocols for use in professional video production include SMPTE 2022, SMPTE 2110, ASPEN and Sony NMI. There are clear differences in the technology used by these protocols.
NDINDI HXNDI HX2SMPTE SMPTE 2110ASPENNMICDI
Developed byNewTekNewTekNewTekSMPTEVSF and SMPTEASPEN CommunitySonyAWS
TransportTCP/UDP/Multi-TCP/Reliable UDPUDP TCP/UDP/Multi-TCP/Reliable UDPUDP UDP UDPUDPUDP / SRD
Image formatSize / Aspect IndependentSize / Aspect IndependentSize / Aspect IndependentSDI Formats onlySize / Aspect IndependentSize / Aspect Independent
Tally
Bidirectional device control
Integrated Proxy
Integrated alpha channel
CompressionNDI Codec NDI|HX H.264/H.265NONESMPTE 2110-22 spec.NONENONE / LLVC CodecNONE
ConnectionSocket, Unicast / Multicast and FECUnicast / MulticastSocket, Unicast / Multicast and FECMulticastMulticastMulticastMulticast / ?SRD
HD data rate~8–~1– / up to 14:1
Essence packingDiscrete audio, metadata and video frame packets, single connectionModified RTSP/RTP type connectionsDiscrete audio, metadata and video frame packets, single connectionPacketized raw SDI bitstreamDiscrete audio, video and Metadata on separate connections with different protocolsMultiple MPEG transport streamsFrame aligned 2022-6 / LLVCDiscrete audio, video and Metadata in SMPTE2110 Formats
InfrastructureGigabit / wireless / load balanced multi NIC / 10 GbitGigabit / wirelessGigabit / wireless10 Gbit minimum10 Gbit minimum10 Gbit minimumGigabit / 10 Gbit100 Gbit EFA / libFabric
Service DiscoveryBonjour, NDI Access, Discovery Server automatic via HX driverBonjour, NDI Access, Discovery Server NMOSAMWA IS-04 NMOSJSON-RPCPlug & play NONE
APIRoyalty-free license, SDK libraries for Win, Mac, Linux, iOS, FPGA referenceHardware encode, decode with NDI librariesSend with NDI Advanced SDK, receive with NDI librariesSMPTE standardSMPTE standardSMPTE RDDOPEN SOURCE

History

NDI was publicly revealed by NewTek on 8 September 2015 and was demonstrated at the International Broadcasting Convention in Amsterdam that week. The first device shown using NDI was the NewTek TriCaster which delivered an NDI feed from each of its SDI inputs as well as four output feeds from its vision mixer. The TriCaster could also receive up to two NDI sources from other devices.
NewTek had previously created a predecessor of NDI called AirSend to get video from external devices into their TriCaster products. AirSend had been implemented by a number of character generator vendors including Vizrt and Chyron. In order to quickly bring these products into the NDI space, NewTek created a new driver to replace the existing AirSend driver, which could be installed on these existing AirSend-compatible devices, instantly converting them to NDI-compatible devices with no change required by the original CG vendors.
BirdDog was an early adopter and in 2018 released Studio NDI, an ASIC implementation of NDI. BirdDog went on to deliver NDI PTZ cameras, along with a host of software applications.
Another early adopter of NDI was VMix, a Windows-based vision mixer that offers NDI inputs and outputs. A significant increase in the NDI installed base came when live-streaming application XSplit added support for NDI.
Later in 2016, NewTek delivered NDI 2.0, which added features including support for service discovery across subnets. In April, Magewell announced integration of their PCIe and USB capture devices, allowing access to any video source on the network.
On 12 July 2017 NewTek announced NDI 3.0 which added multicast, NDIHX and other new features, introducing support for specific PTZ Cameras with H.264 chipsets and updated firmware.
In April 2018 at the NAB Show, Microsoft announced they had added NDI support to Skype for Content Creators. Other announcements at NAB in 2018 included NDI 3.5, and new NDI support from vendors including EVS and Avid.
Version 3.4 of FFmpeg added input and output support for NDI when optionally compiled by the end-user to a non-open-source NewTek library. However, NewTek was later found to be redistributing pre-compiled binaries of FFmpeg that incorporated their non-open-source library in violation of the GNU General Public License, causing the FFmpeg project to remove NDI support from their code base in March 2019.
In April 2019, ahead of NAB, NewTek announced the addition of Multi-TCP mode to NDI 4.0 which uses hardware TCP offload engine present in silicon, assisting lower-spec processors with NDI transport. NDI 4.0 shipped in September 2019 to coincide with the IBC exhibition.
In July 2021, NDI 5 was released adding reliable UDP transmission, redundant discovery server support, and NDI 5 Tools
VersionReleasedFeatures and enhancements
1.0April 2016Initial Release
2.0Sept 2016Cross subnet support via Access Manager, ARM encoding support, iOS SDK
3.0July 2017NDI-HX support, Option for multicast transport with FEC, PTZ support
3.5June 2018Defaults to Unicast UDP transport method with FEC
3.6July 2018Packet level bonding improvements
3.7Sept 2018Discovery improvements
3.8Nov 2018Performance Enhancements, NDI Embedded SDK for FPGA development
4.0Sept 2019Multi-TCP Transport mode, HDR 16-bit support, Native synchronized recording, Discovery Server, NDI HX2
4.1Nov 2019Performance improvements
4.5March 2020New Multi-TCP implementation, Lower latency with NDI-HX, Predictable port numbers for firewall rules, Improvements to codec quality
4.6Nov 2020Can support NDI-HX2 encoding on PC's using NVENC
5.0July 2021Reliable UDP transmission, Redundant discovery server support, NDI 5 Tools
5.1Feb 2022NDI Bridge enhancements, DNS name support for Discovery Server, SDK improvements
5.5Aug 2022NDI Router, Quad Inputs on NDI Webcam Input with 4K video support, NDI Remote adds Talkback and desktop sharing features, Auto start applications on system boot, NDI FreeAudio command line tool
6.0Apr 2024Added specification for NDI HDR metadata, Improved support for 16-bit colour formats, NDI Bridge Utility for Linux, NDI-KVM support for Video Monitor on macOS, NDI Router for macOS, NDI Studio Monitor on Windows enhanced with HDR support for display and recording
6.1Dec 2024NDI Bridge improvements, NDI Bridge service, 16-bit colour formats available in FPGA platforms, dynamic bandwidth adjustment API in NDI Advanced SDK
6.2June 2025NDI Receiver API, Updated Discovery Server, new Discovery application provided with NDI Tools.

Use in Wi-Fi and wide-area networks

NDI was designed to work on good quality gigabit local area networks using TCP/IP and Bonjour technologies. In order to work across subnets that don't pass mDNS, NDI supports a mechanism known as NDI Access, which allows manual entry of the IP address of machines on other subnets that may be running NDI sources.
Some NDI adopters have run the protocol across fibre connections up to 15 km, although NDI's use of the TCP protocol makes it less suitable for long-distance, high-latency connections due to factors such as bandwidth-delay product and TCP packet loss recovery. Later versions of NDI introduced different transport protocols, including UDP, MultiTCP and reliable UDP, which support more diverse network characteristics. NDI|HX uses a lower data rate, making it easier to use in bandwidth-limited connections.

Use in cloud-based infrastructure

NDI's compressed video and unicast transmissions make it suitable for cloud-based services like AWS and Azure. When operating in cloud environments, the NDI Discovery service provides a solution compatible with multicast restrictions common to cloud platforms. Starting with NDI 5, the Bridge tool allows you to connect remote locations together, be it over the open Internet or via a VPN. NDI Bridge uses NDI-HX2 at selectable bitrates and codec types as the transmission format between locations, all other aspects of the NDI signal are preserved.

CPU architecture support

NDI, when running on x86 or x86-64 architectures, requires CPUs that include the SSSE3 instruction set. Most Intel CPU designs starting in 2006 have this instruction set, AMD added support starting in 2011. While not a requirement, NDI will take advantage of Advanced Vector Extensions and AVX2 instruction sets for additional performance.
NDI can run on 32- or 64-bit CPU architectures, although performance is increased when using 64-bit.
NDI 4.x and earlier had limited support for ARM, generally offering encode-only support. The release of NDI 5 brings full support for encode and decode on ARM-based processors that include Neon instructions. This includes Apple silicon processors.
NDI|HX devices are typically transmit-only and based on proprietary platforms with hardware H.264 encoder chips. Examples of NDI|HX devices are PTZ cameras, and the NDI Connect Spark SDI to NDI|HX converter box.
With NDI 4.0 NewTek announced the addition of a Multi-TCP transport mode. This takes advantage of the hardware TCP acceleration in silicon, which helps lower-spec processors handle heavy network load, in contrast to UDP, which does not benefit from the hardware acceleration.

Metadata and extensions to the NDI specification

NDI supports arbitrary metadata as XML blocks, embedded in video and audio frames, as well as stand-alone metadata frames. The content of these metadata blocks forms three families.
  1. Internal metadata used by NDI invisibly. These messages are used for connectivity and some other fundamental tasks, like Tally. They are typically invisible to NDI clients.
  2. Defined public metadata. These messages include things like the NDI PTZ Protocol. They are defined by NewTek as part of the NDI SDK.
  3. Third-party metadata schemas. These messages are implemented in the same way as defined NDI metadata, but the content is based on third-party designs.