Network Device Interface

Last updated

Network Device Interface (NDI) is a software specification developed by the technology company NewTek that enables high-definition video to be delivered, received, and communicated over a computer network in a low-latency, high-quality manner. The specification is royalty-free and allows for frame accurate switching, making it suitable for use in live production environments.

Contents

Technology

NDI is designed to run over gigabit Ethernet [1] with the NDI codec. [2] It is 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. It also supports 2 other discovery modes (NDI Access, NDI Discovery Server) that 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. The release of NDI version 4.0 introduces the 'Multi-TCP' transport.

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. [4] 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, [5] 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. [6] 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
NDINDI HXNDI HX2 SMPTE 2022-6 [7] SMPTE 2110 ASPEN [8] NMI [9] CDI [10]
Developed by NewTek NewTek NewTek SMPTE SMPTE ASPEN Community Sony AWS
TransportTCP/UDP/Multi-TCP/Reliable UDP [upper-alpha 1] UDP (TCP)TCP/UDP/Multi-TCP/Reliable UDP [upper-alpha 1] UDP (RTP)UDP (RTP)UDPUDPUDP / SRD
Image formatSize / Aspect IndependentSize / Aspect IndependentSize / Aspect IndependentSDI Formats onlySize / Aspect IndependentSize / Aspect Independent
TallyYesYesYesNoNo [upper-alpha 2] NoNo
Bidirectional device controlYesYesYesNoNoNoNo
Integrated ProxyYesYesYesNoNoNoNoNo
Integrated alpha channel YesNoYesNoYesYes
CompressionNDI Codec (SHQ 0/2/7) [11] NDI|HX (H.264)H.264/H.265NONE [upper-alpha 3] SMPTE 2110-22 spec.(JPEG XS, but not limited to)NONENONE / LLVC CodecNONE
ConnectionSocket, Unicast / Multicast and FECUnicast / MulticastSocket, Unicast / Multicast and FECMulticastMulticastMulticastMulticast / ?SRD
HD (1080i) data rate~100 Mbit/s8–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 [12] >1.5 Gbit/s
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 streams Frame 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 GBit100GBit EFA / libFabric
Service DiscoveryBonjour (mDNS), NDI Access (manual), Discovery Server (NDI4)automatic via HX driverBonjour (mDNS), NDI Access (manual), Discovery Server (NDI4)NMOS [13] AMWA IS-04 NMOSJSON-RPCPlug & play (NDCP)NONE
APIRoyalty-free license, SDK libraries for Win (x86), Mac, Linux (x86 & ARM), iOS, [14] FPGA referenceHardware encode, decode with NDI librariesSend with NDI Advanced SDK, receive with NDI librariesSMPTE standardSMPTE standardSMPTE RDDOPEN SOURCE


  1. 1 2 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. [upper-alpha 4] SMPTE 2110 with TR-03 also offers the potential to use TICO RDD35 and JPEG XS. [upper-alpha 5] This requires a proprietary encoder and decoder which are generally implemented as silicon on each end.
  4. "TICO Alliance - Technology". www.tico-alliance.org.
  5. "SMPTE RDD 35 - TICO Lightweight Codec Used in IP Networked or in SDI Infrastructures - Engineering360". standards.globalspec.com.

History

NDI was publicly revealed by NewTek on 8 September 2015 and was demonstrated at the IBC broadcast exhibition in Amsterdam that week. [15] 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 ). [16]

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

BirdDog was an early adopter and in 2018 release Studio NDI, an ASIC implementation of NDI. BirdDog went on to deliver NDI PTZ cameras, along with a host of software applications.[ citation needed ]

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

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.[ citation needed ]

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

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

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. [24] 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. [25] [26]

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. [27] 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) [28]

VersionReleasedFeatures/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 [27]
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. [29]
5.0July 2021Reliable UDP transmission, Redundant discovery server support, NDI 5 Tools (Bridge, Remote, Audio Direct, FCP-X output) [30]
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 (found with SDK).

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

Use in cloud-based infrastructure

NDI is also used within cloud-based production systems, with its compressed video and unicast transmissions making it 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. Starting with NDI 5, the Bridge tool allows you to connect remote locations together be it over open Internet or via a VPN. NDI Bridge allows you use NDI-HX2 at selectable bitrates and codec types (H.264 or HEVC) as the transmission format between locations (High Bandwidth NDI transmission is also possible), all other aspects of the NDI signal are preserved (metadata, alpha, tally, etc).

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 (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.

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

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. [33] [34]

Related Research Articles

An Internet Protocol address is a numerical label such as 192.0.2.1 that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface identification, and location addressing.

The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information indicating success or failure when communicating with another IP address. For example, an error is indicated when a requested service is not available or that a host or router could not be reached. ICMP differs from transport protocols such as TCP and UDP in that it is not typically used to exchange data between systems, nor is it regularly employed by end-user network applications.

In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages to other hosts on an Internet Protocol (IP) network. Within an IP network, UDP does not require prior communication to set up communication channels or data paths.

Open Shortest Path First (OSPF) is a routing protocol for Internet Protocol (IP) networks. It uses a link state routing (LSR) algorithm and falls into the group of interior gateway protocols (IGPs), operating within a single autonomous system (AS).

The Routing Information Protocol (RIP) is one of the oldest distance-vector routing protocols which employs the hop count as a routing metric. RIP prevents routing loops by implementing a limit on the number of hops allowed in a path from source to destination. The largest number of hops allowed for RIP is 15, which limits the size of networks that RIP can support.

<span class="mw-page-title-main">Network address translation</span> Protocol facilitating connection of one IP address space to another

Network address translation (NAT) is a method of mapping an IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic routing device. The technique was originally used to bypass the need to assign a new address to every host when a network was moved, or when the upstream Internet service provider was replaced, but could not route the network's address space. It has become a popular and essential tool in conserving global address space in the face of IPv4 address exhaustion. One Internet-routable IP address of a NAT gateway can be used for an entire private network.

<span class="mw-page-title-main">Transport layer</span> Layer in the OSI and TCP/IP models providing host-to-host communication services for applications

In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end communication services for applications. It provides services such as connection-oriented communication, reliability, flow control, and multiplexing.

Material Exchange Format (MXF) is a container format for professional digital video and audio media defined by a set of SMPTE standards. A typical example of its use is for delivering advertisements to TV stations and tapeless archiving of broadcast TV programs. It is also used as part of the Digital Cinema Package for delivering movies to commercial theaters.

<span class="mw-page-title-main">FFmpeg</span> Multimedia framework

FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of video and audio files. It is widely used for format transcoding, basic editing, video scaling, video post-production effects and standards compliance.

A broadcast address is a network address used to transmit to all devices connected to a multiple-access communications network. A message sent to a broadcast address may be received by all network-attached hosts.

IP multicast is a method of sending Internet Protocol (IP) datagrams to a group of interested receivers in a single transmission. It is the IP-specific form of multicast and is used for streaming media and other network applications. It uses specially reserved multicast address blocks in IPv4 and IPv6.

Architecture for Control Networks (ACN) is a suite of network protocols for control of entertainment technology equipment, particularly as used in live performance or large-scale installations. For example, lighting, audio or special effects equipment. ACN is maintained by Entertainment Services and Technology Association and its first official release was ANSI Standard E1.17-2006 - Entertainment Technology - Architecture for Control Networks. The standard was subsequently revised and released as ANSI E1.17-2010.

T.38 is an ITU recommendation for allowing transmission of fax over IP networks (FoIP) in real time.

A routing protocol specifies how routers communicate with each other to distribute information that enables them to select paths between nodes on a computer network. Routers perform the traffic directing functions on the Internet; data packets are forwarded through the networks of the internet from router to router until they reach their destination computer. Routing algorithms determine the specific choice of route. Each router has a prior knowledge only of networks attached to it directly. A routing protocol shares this information first among immediate neighbors, and then throughout the network. This way, routers gain knowledge of the topology of the network. The ability of routing protocols to dynamically adjust to changing conditions such as disabled connections and components and route data around obstructions is what gives the Internet its fault tolerance and high availability.

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

The Secure Real-Time Media Flow Protocol (RTMFP) is a protocol suite developed by Adobe Systems for encrypted, efficient multimedia delivery through both client-server and peer-to-peer models over the Internet. The protocol was originally proprietary, but was later opened up and is now published as RFC 7016.

RDMA over Converged Ethernet (RoCE) or InfiniBand over Ethernet (IBoE) is a network protocol which allows remote direct memory access (RDMA) over an Ethernet network. It does this by encapsulating an InfiniBand (IB) transport packet over Ethernet. There are multiple RoCE versions. RoCE v1 is an Ethernet link layer protocol and hence allows communication between any two hosts in the same Ethernet broadcast domain. RoCE v2 is an internet layer protocol which means that RoCE v2 packets can be routed. Although the RoCE protocol benefits from the characteristics of a converged Ethernet network, the protocol can also be used on a traditional or non-converged Ethernet network.

AES67 is a technical standard for audio over IP and audio over Ethernet (AoE) interoperability. The standard was developed by the Audio Engineering Society and first published in September 2013. It is a layer 3 protocol suite based on existing standards and is designed to allow interoperability between various IP-based audio networking systems such as RAVENNA, Livewire, Q-LAN and Dante.

<span class="mw-page-title-main">Packet Sender</span>

Packet Sender is an open source utility to allow sending and receiving TCP and UDP packets. It also supports TCP connections using SSL, intense traffic generation, HTTP(S) GET/POST requests, and panel generation. It is available for Windows, Mac, and Linux. It is licensed GNU General Public License v2 and is free software. Packet Sender's web site says "It's designed to be very easy to use while still providing enough features for power users to do what they need.".

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. "NewTek Announces NDI – Open Protocol for IP Production Workflow - Technical Standards". Content-technology.com.
  5. "NewTek NDI SDK". Newtek.com.
  6. "NDI® license agreement". new.tk. Retrieved 3 June 2020.
  7. "Numerical Index of Smpte Standards, recommended Practices, Engineering Guidelines and Registered Disclosure Documents" (PDF). Smpte.org. Retrieved 2017-05-23.
  8. "ASPEN Community - Home". aspen-community.com.
  9. "Sony launches Networked Media Interface in collaboration with leading broadcast industry organisations : Press : United Kingdom : Sony Professional". Sony.co.uk. Archived from the original on 2017-03-22. Retrieved 2017-03-21.
  10. "Cloud Digital Interface". aws.amazon.com.
  11. "SpeedHQ". wiki.multimedia.cx. Retrieved 2020-07-31.
  12. "NMI Core - Nextera Video Inc". Nexteravideo.com.
  13. "What are the Networked Media Open Specifications?". Nmos.tv.
  14. "NewTek NDI SDK". NewTek.
  15. "NewTek announces NDI, an open protocol for IP production workflow by Allan Tépper". Provideocoalition.com. 8 September 2015.
  16. Kerschbaumer, Ken (September 19, 2016). "NewTek's IP Series Video-Production System Targets New Markets". Sports Video Group.
  17. "NDI AirSend Updater-NewTek". pages.newtek.com.
  18. Bridge, The Broadcast (18 April 2016). "StudioCoast vMix Adopts NewTek NDI Standard - The Broadcast Bridge - Connecting IT to Broadcast". Thebroadcastbridge.com.
  19. "XSplit Broadcaster Adopts NewTek NDI for IP Production Workflow". Marketwired.com. 2016-04-12. Retrieved 2017-05-23.
  20. "NewTek NDI® Version 3 Offers the Only End-to-End IP Video Solution for Product Manufacturers". NewTek.
  21. "Make collaboration the heart of your live streams, podcasts, and videos with Skype for Content Creators". Skype Blogs. 6 April 2018.
  22. Director, Ken Kerschbaumer, Editorial (5 September 2017). "EVS X-One Production System Takes Software-Based Tech to New Level". Sports Video Group.{{cite web}}: CS1 maint: multiple names: authors list (link)
  23. "Avid Media Composer Integrates NewTek NDI®".
  24. Baker, Chuck (December 6, 2017). "FFmpeg 3.4 Adds NDI I/O". NewTek.
  25. "NewTek distributing non-free FFmpeg build". FFmpeg bug trac. December 3, 2018.
  26. "Remove libndi_newtek". FFmpeg github repo. March 9, 2019.
  27. 1 2 Kurz, Phil (April 3, 2019). "NewTek's Andrew Cross Discusses Acquisition, NAB Show Plans".
  28. "NDI Tools | NDI.tv".
  29. "NVIDIA Broadcast Features Now Integrated Directly in Top Streaming Applications".
  30. "NDI Tools | NDI.tv".
  31. Gatarski, Richard (9 May 2016). "Documentary: Stockholm Kista cross production using NDI over fiber". Weststreamu.se.
  32. "NewTek's Andrew Cross Discusses Acquisition, NAB Show Plans". 3 April 2019.
  33. "NDI Metadata Standards". Sienna. Retrieved 2023-09-27.
  34. NDIS Software