Network Device Interface

From Wikipedia, the free encyclopedia

Network Device Interface (NDI) is a royalty-free software standard developed by NewTek to enable video-compatible products to communicate, deliver, and receive high-definition video over a computer network in a high-quality, low-latency manner that is and suitable for switching in a live production environment.

Technology[]

NDI is designed to run over gigabit Ethernet,[1] with the NDI codec[2] expected to deliver 1080i HD video at VBR data rates typically around 100 Mbit/s.[3]

By Default, NDI uses the mDNS (Bonjour / Zeroconf) discovery mechanism to advertise sources on a local area network, such that NDI receiving devices can automatically discover and offer those sources, although 2 other discovery modes (NDI Access, NDI Discovery Server)[4] allow for operations across subnets, and without mDNS. Sources are created using an arbitrarily selected TCP port from a range of ports on the NDI send host. 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 (FEC) instead of TCP, and can load balance streams across multiple network interface controllers NICs without using link aggregation. NDI 4.0 introduces multi-TCP connections.

NDI carries video, multichannel uncompressed audio[citation needed] 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.[5] This directional metadata system allows for functionality such as active tally information fed back to sources to understand that they are on-air (program / preview). 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 things like audio-only or metadata-only connections where video is not required.

The NDI software development kit (SDK) is available for Windows, Linux and macOS,[6] 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.[7]. 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 (rather than IP video used for distribution to end users) include SMPTE 2022, SMPTE 2110, ASPEN (largely superseded by SMPTE 2110) and Sony NMI. There are clear differences in the technology used by these protocols.

Protocol
Parameter
NDI NDI HX NDI HX2 SMPTE 2022-6[8] SMPTE 2110 ASPEN[9] NMI[10] CDI[11]
Transport TCP/UDP/Multi-TCP/Reliable UDP[A] UDP (TCP) TCP/UDP/Multi-TCP/Reliable UDP[A] UDP (RTP) UDP (RTP) UDP UDP UDP / SRD
Image format Size / Aspect Independent Size / Aspect Independent Size / Aspect Independent SDI Formats only Size / Aspect Independent Size / Aspect Independent
Tally Yes Yes Yes No No[B] No No
Bidirectional device control Yes Yes Yes No No No No
Integrated Proxy Yes Yes Yes No No No No No
Integrated alpha channel Yes No Yes No Yes Yes
Compression NDI Codec (SHQ 0/2/7)[12] NDI|HX (H.264) H.264/H.265 NONE[C] SMPTE 2110-22 spec.(JPEG XS, but not limited to) NONE NONE / LLVC Codec NONE
Connection Socket, Unicast / Multicast and FEC Unicast / Multicast Socket, Unicast / Multicast and FEC Multicast Multicast Multicast Multicast / ? SRD
HD (1080i) data rate ~100 Mbit/s 8–20 Mbit/s ~1–50 Mbit/s >1.5 Gbit/s >1.1 Gbit/s >1.5 Gbit/s >1.5 Gbit/s / up to 14:1[13] >1.5 Gbit/s
Essence packing Discrete audio, metadata and video frame packets, single connection Modified RTSP/RTP type connections Discrete audio, metadata and video frame packets, single connection Packetized raw SDI bitstream Discrete audio, video and Metadata on separate connections with different protocols Multiple MPEG transport streams Frame aligned 2022-6 / LLVC Discrete audio, video and Metadata in SMPTE2110 Formats
Infrastructure Gigabit / wireless / load balanced multi NIC / 10 GBit Gigabit / wireless Gigabit / wireless 10 GBit minimum 10 GBit minimum 10 GBit minimum Gigabit / 10 GBit 100GBit EFA / libFabric
Service Discovery Bonjour (mDNS), NDI Access (manual), Discovery Server (NDI4) automatic via HX driver Bonjour (mDNS), NDI Access (manual), Discovery Server (NDI4) NMOS[14] AMWA IS-04 NMOS JSON-RPC Plug & play (NDCP) NONE
API Royalty-free license, SDK libraries for Win (x86), Mac, Linux (x86 & ARM), iOS,[15] FPGA reference Hardware encode, decode with NDI libraries Send with NDI Advanced SDK, receive with NDI libraries SMPTE standard SMPTE standard SMPTE RDD OPEN SOURCE
  1. ^ Jump up to: a b NDI v1.0 was pure TCP. Later versions included options for UDP Unicast and Multicast as appropriate and FEC. NDI 4.0 adds 'Multi-TCP' transport, NDI 5.0 adds 'Reliable-UDP' transport . NDI
  2. ^ Tally for SMPTE 2110 relies on external data sources, using proposed AMWA IS 07.
  3. ^ The TICO RDD35 codec can be used to compress UHD by 4:1 so an encoded stream can be carried along a SMPTE 2022-6 channel at the same uncompressed bandwidth as HD.[16] SMPTE 2110 with TR-03 also offers the potential to use TICO RDD35 and JPEG XS.[17] This requires a proprietary encoder and decoder which are generally implemented as silicon on each end.

History[]

NDI was publicly revealed by NewTek on 8 September 2015 and was demonstrated at the IBC broadcast exhibition in Amsterdam that week.[18] 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 (increased to 12 in later releases and up to 44 in NewTek's IP Series ).[19]

NDI devices from other vendors followed during 2016. The first third-party products came from Gallery Sienna[20] and included an NDI signal generator for macOS, a desktop scan converter for macOS and the NDICam camera app for iPhone which delivers a native NDI stream from iOS devices.[21]

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 (CG) 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.[22]

Another early adopter of NDI was VMix, a Windows-based vision mixer which offers NDI inputs and outputs.[23] A significant increase in the NDI installed base came when live streaming application XSplit added support for NDI.[24]

Later in 2016, NewTek delivered NDI 2.0 which added features including support for service discovery across subnets. In April, Magewell announced seamless integration of their PCIe and USB capture devices, allowing access to any video source on the network. This solution created one of the most efficient broadcast video production scenarios possible with unlimited source choice and ubiquitous operating system compatibility.

On 12 July 2017 NewTek announced NDI 3.0 which added multicast, NDI|HX and other new features, introducing support for specific PTZ Cameras with H.264 chipsets and updated firmware.[25]

In April 2018 at the NAB Show, Microsoft announced they had added NDI support to Skype for Content Creators.[26] Other announcements at NAB2018 included NDI 3.5, and new NDI support from vendors including EVS[27] and Avid.[28]

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.[29] However, NewTek was later found to be redistributing pre-compiled binaries of FFmpeg that incorporated their non-opensource library in violation of the GNU General Public License, causing the FFmpeg project to remove NDI support from their codebase in March 2019.[30][31]

In April 2019, ahead of NAB, NewTek announced the addition of Multi-TCP mode to NDI 4.0 which is reported to leverage hardware TCP acceleration present in silicon, assisting lower-spec processors with NDI transport.[32] NDI 4.0 shipped in September 2019 to coincide with the IBC exhibition.

In July 2021, NDI 5 has been released adding the following main features: Reliable UDP transmission, Redundant discovery server support, NDI 5 Tools (NDI Bridge, NDI Remote, NDI Audio Direct, FCP-X output)[33]

Version Released Features/Enhancements
1.0 April 2016 Initial Release
2.0 Sept 2016 Cross subnet support via Access Manager, ARM encoding support, iOS SDK
3.0 July 2017 NDI-HX support, Option for multicast transport with FEC, PTZ support.
3.5 June 2018 Defaults to Unicast UDP transport method with FEC.
3.6 July 2018 Packet level bonding improvements.
3.7 Sept 2018 Discovery improvements.
3.8 Nov 2018 Performance Enhancements, NDI Embedded SDK for FPGA development.
4.0 Sept 2019 Multi-TCP Transport mode, HDR 16-bit support, Native synchronized recording, Discovery Server, NDI HX2[32]
4.1 Nov 2019 Performance improvements.
4.5 March 2020 New Multi-TCP implementation, Lower latency with NDI-HX, Predictable port numbers for firewall rules, Improvements to codec quality.
4.6 Nov 2020 Can support NDI-HX2 encoding on PC's using NVENC. [34]
5.0 July 2021 Reliable UDP transmission, Redundant discovery server support, NDI 5 Tools (Bridge, Remote, Audio Direct, FCP-X output) [35]

Use in Wi-Fi and wide area networks[]

NDI was designed to work on good quality gigabit local area networks using TCP and Bonjour (mDNS) 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 which 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.[36] Later versions of NDI introduced different transport protocols including UDP, MultiTCP and reliable UDP (QUIC) which offer different network characteristics. NDI|HX uses a lower data rate making it easier to use in bandwidth-limited connections[37]. The NDI over SRT Protocol developed by Sienna allows for transparent carriage of native NDI or NDI HX2 streams over an SRT wrapper connection using high quality wide area network connections with SRT-style caller/listener connection on a single UDP socket.

Use in Cloud based infrastructure[]

NDI is also used within cloud-based production systems,[38] with its compressed video and unicast transmissions making suitable for cloud-based services like AWS and Azure. When operating in cloud environments, the NDI Discovery service provides a solution to multicast restrictions common to cloud platforms. For uplink and downlink between cloud and on-prem based workflows a number of options exist, including native NDI over SRT, SiennaLink and Sienna.Cloud from Sienna, NDI Bridge and NDI Remote (WebRTC) from NewTek and a variety of recompressed SRT based links.

CPU architecture support[]

NDI, when running on x86 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 (AVX) and AVX2 instructions sets for additional performance.

NDI can run on 32-bit 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. The NDI stream itself is formed at the stream consumption end via the platform-specific NDI|HX driver, presenting the same uncompressed data to the application software consuming the NDI source regardless of original HX source hardware and compression. NDI|HX2 is a purer implementation, supporting either H.264 or HEVC compression, and allows for additional NDI features.

NewTek, Kiloview, Birddog and Magewell have developed FPGA encoding implementations of NDI. In April 2018 NewTek announced the Connect Spark Pro which will be their first FPGA based NDI product. All four also offer FPGA-based decode of full NDI streams. Newtek offers a licensable FPGA reference design for third-party NDI encoders as part of their NDI Embedded SDK. With NDI5 and NEON optimisation, some devices are moving away from FPGA over to ARM based encoding and decoding using software instead, for example Kiloview N6 and Sienna NDI Monitor TV for AppleTV 4k.

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.[39]

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 form 3 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. The majority of these schemas have been developed and published by Sienna[40] and include extensions to NDI to support common requirements such as SCTE-35 and CC708 as well as more diverse applications for NDI such as MIDI over NDI and GPI over NDI.

References[]

  1. ^ Coalition, ProVideo (8 September 2015). "NewTek announces NDI, an open protocol for IP production workflow by Allan Tépper".
  2. ^ "NDI Encoding/Decoding". NewTek Knowledge Base.
  3. ^ "NDI Network Bandwidth". NewTek Knowledge Base.
  4. ^ http://sienna-tv.com/ndi/knowhowdiscovery.html
  5. ^ "NewTek Announces NDI – Open Protocol for IP Production Workflow - Technical Standards". Content-technology.com.
  6. ^ "NewTek NDI SDK". Newtek.com.
  7. ^ "NDI® license agreement". new.tk. Retrieved 3 June 2020.
  8. ^ "Numerical Index of Smpte Standards, recommended Practices, Engineering Guidelines and Registered Disclosure Documents" (PDF). Smpte.org. Retrieved 2017-05-23.
  9. ^ "ASPEN Community - Home". aspen-community.com.
  10. ^ "Sony launches Networked Media Interface in collaboration with leading broadcast industry organisations : Press : United Kingdom : Sony Professional". Sony.co.uk.[dead link]
  11. ^ "Cloud Digital Interface".
  12. ^ "SpeedHQ". wiki.multimedia.cx. Retrieved 2020-07-31.
  13. ^ "NMI Core - Nextera Video Inc". Nexteravideo.com.
  14. ^ "What are the Networked Media Open Specifications?". Nmos.tv.
  15. ^ "NewTek NDI SDK". NewTek.
  16. ^ "TICO Alliance - Technology". www.tico-alliance.org.
  17. ^ "SMPTE RDD 35 - TICO Lightweight Codec Used in IP Networked or in SDI Infrastructures - Engineering360". standards.globalspec.com.
  18. ^ "NewTek announces NDI, an open protocol for IP production workflow by Allan Tépper". Provideocoalition.com. 8 September 2015.
  19. ^ Kerschbaumer, Ken (September 19, 2016). "NewTek's IP Series Video-Production System Targets New Markets". Sports Video Group.
  20. ^ "NDI Infrastructure". sienna.tv.
  21. ^ "NDI Camera". www.tvtechnology.com.
  22. ^ "NDI AirSend Updater-NewTek". pages.newtek.com.
  23. ^ Bridge, The Broadcast. "StudioCoast vMix Adopts NewTek NDI Standard - The Broadcast Bridge - Connecting IT to Broadcast". Thebroadcastbridge.com.
  24. ^ "XSplit Broadcaster Adopts NewTek NDI for IP Production Workflow". Marketwired.com. 2016-04-12. Retrieved 2017-05-23.
  25. ^ "NewTek NDI® Version 3 Offers the Only End-to-End IP Video Solution for Product Manufacturers". NewTek.
  26. ^ "Make collaboration the heart of your live streams, podcasts, and videos with Skype for Content Creators". Skype Blogs. 6 April 2018.
  27. ^ Director, Ken Kerschbaumer, Editorial. "EVS X-One Production System Takes Software-Based Tech to New Level". Sports Video Group.
  28. ^ "Avid Media Composer Integrates NewTek NDI®".
  29. ^ Baker, Chuck (December 6, 2017). "FFmpeg 3.4 Adds NDI I/O". NewTek.
  30. ^ "NewTek distributing non-free FFmpeg build". FFmpeg bug trac. December 3, 2018.
  31. ^ "Remove libndi_newtek". FFmpeg github repo. March 9, 2019.
  32. ^ Jump up to: a b Kurz, Phil (April 3, 2019). "NewTek's Andrew Cross Discusses Acquisition, NAB Show Plans".
  33. ^ https://www.ndi.tv/tools/
  34. ^ https://www.nvidia.com/en-us/geforce/news/nvidia-broadcast-engine-integrations/
  35. ^ https://www.ndi.tv/tools/
  36. ^ Gatarski, Richard (9 May 2016). "Documentary: Stockholm Kista cross production using NDI over fiber". Weststreamu.se.
  37. ^ http://sienna-tv.com/ndi/knowhowhx2.html
  38. ^ http://www.sienna-tv.com/ndi/infrastructure.html
  39. ^ "NewTek's Andrew Cross Discusses Acquisition, NAB Show Plans".
  40. ^ http://www.sienna-tv.com/ndi/ndimetadatastandards.html

External links[]

Retrieved from ""