NDI (Network Device Interface) is a new network-based video and audio distribution protocol (video over IP on Ethernet-based LAN) developed by NewTek. Detailed description of NDI and its benefits can be found on the Official NDI page. It can be used TouchDesigner-to-TouchDesigner or with numerous other software tools and hardware products that support NDI.
The NDI protocol automatically discovers NDI video sources using mDNS, which is a multi-cast service discovery protocol. If your NDI sources are on networks not reachable via multi-cast, you'll need to specify the IP of the source machines in the NDI In TOPs parameters.
NDI offers a very low latency solution vs. H264, at the cost of higher network bandwidth.
Video sent over NDI is sent as YUV 4:2:2 format, and is compressed. The video can optionally include an alpha channel as well. Video is 8-bit color depth. There are no limits to FPS or resolution, except for what the hardware can handle. Compression is done using the SpeedHQ codec, which is CPU based and very fast. NDI selects the compression level based on a few factors, including the FPS. It'll use a higher compression ratio when sending at a higher FPS, to ensure the bandwidth requirements don't become too high.
TouchDesigner is compiled against the Version 3.5 of the NDI protocol, so multi-cast servers are supported. For help on how to enable multi-cast for NDI, refer to the NDI documentation. Control for multi-cast is done outside of TouchDesigner using the NDI Access Manager tool, which comes with the Newtek NDI Tools.
NDI supports sources tagging themselves as being parts of one or more named 'groups'. When an NDI receiver searches for sources, it can specify groups it's interested in to reduce the number of sources it lists.
NDI provides a useful mobile application to stream NDI from phones. Search for Newtek NDI on the stores.
Every component contains a network of operators that create and modify data. The operators are connected by wires that define where data is routed after the operator cooks its inputs and generates an output.