NDI

From Derivative
Jump to: navigation, search

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.

See NDI In TOP and NDI Out TOP

See also, for H.264 over IP Video Stream In TOP, Video Stream Out TOP, and for HAP over IP Touch In TOP and Touch Out TOP

Network[edit]

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.

Latency[edit]

NDI offers a very low latency solution vs. H264, at the cost of higher network bandwidth.

Video Format[edit]

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.

Multi-Cast[edit]

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.

Groups[edit]

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.

App[edit]

NDI provides a useful mobile application to stream NDI from phones. Search for Newtek NDI on the stores.

NDI Network Devices[edit]

For choosing a network switch and setting up a network:

https://docs.derivative.ca/images/4/46/NDI_Network_Guidelines_se_21_May_2018.pdf

https://docs.derivative.ca/images/2/24/Adding-ndi-to-your-network.pdf

https://support.newtek.com/hc/en-us/articles/217662768-NDI-Network-Interface-Settings

Network Performance Settings[edit]

On a few of our internal testing platforms it has been found that using the largest setting for Jumbo Frames on the network controller has generated very clear postive performance results with regard to remedying dropped frames at high resolutions on Gibabit NICs and switches. Not all switches support Jumbo Frames. A good switch that does is the Cisco SG300-12 and Cisco SG350-12 model.

To set jumbo frames open the control panel and locate the Network Card properties and click the Configure button.

JumboFrames.png

In the NIC properties dialog locate the Advanced page and in the attribute lister located Jumbo Packet and set the value to 9014 Bytes.

JumboFramesSetting.png

Your switch will have to support Jumbo Frames and it will most likely have to be turned on using the Switch managment tools... For example on our testing switch...

JumboFramesConfig.toe.png

Performance Stats[edit]

1 4K RGB Noise signal is ~900 Mb/s so a single 4K signal can fully saturate and 1Gb/s switch. NDI uses massively variable compression so the Mb/s will depend on the content. When testing your bandwidth use RGB Randon Noise to be aware of your maximum requirements.

Trouble-Shooting Connection Issues[edit]

  • Make sure all TouchDesigner senders and receivers are running the same version of TouchDesigner.
  • Try deactivating the firewall of problem computers. If this rememedies the issue then resolve the firewall issue before turning it back on.

Trouble-Shooting Frame Drop Issues[edit]

  • It has been found that other internet applications - most notably - Skype can interfere with NDI and cause frame drops. Its not clear why this is but we have clearly seen this happen - possibly due to collisions.

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.