Network Device Interface (NDI) is a software specification developed by the
technology company
A technology company (or tech company) is a company that focuses primarily on the manufacturing, support, research and development of—most commonly computing, telecommunication and consumer electronics–based—technology-intensive products and ...
NewTek
NewTek, Inc., is a San Antonio, Texasbased hardware and software company that produced live and post-production video tools and visual imaging software for personal computers. The company was founded in 1985 in Topeka, Kansas, United States, by ...
. It enables
high-definition video
High-definition video (HD video) is video of higher resolution and quality than standard-definition. While there is no standardized meaning for ''high-definition'', generally any video image with considerably more than 480 vertical scan lines ( ...
to be transmitted, received, and communicated over a
computer network
A computer network is a collection of communicating computers and other devices, such as printers and smart phones. In order to communicate, the computers and devices must be connected by wired media like copper cables, optical fibers, or b ...
gigabit Ethernet
In computer networking, Gigabit Ethernet (GbE or 1 GigE) is the term applied to transmitting Ethernet frames at a rate of a gigabit per second. The most popular variant, 1000BASE-T, is defined by the IEEE 802.3ab standard. It came into use in ...
with the NDI codec. It delivers
1080i
In high-definition television (HDTV) and video display technology, 1080i is a video display format with 1080 lines of vertical resolution and Interlaced video, interlaced scanning method. This format was once a standard in HDTV. It was particular ...
high-definition video
High-definition video (HD video) is video of higher resolution and quality than standard-definition. While there is no standardized meaning for ''high-definition'', generally any video image with considerably more than 480 vertical scan lines ( ...
multicast DNS
Multicast DNS (mDNS) is a computer networking protocol that resolves hostnames to IP addresses within small networks that do not include a local name server. It is a Zero-configuration_networking#Name_service_discovery, zero-configuration service, ...
to advertise sources on a
local area network
A local area network (LAN) is a computer network that interconnects computers within a limited area such as a residence, campus, or building, and has its network equipment and interconnects locally managed. LANs facilitate the distribution of da ...
, such that NDI receivers can automatically discover and offer those sources. It also supports two other discovery modes (NDI Access, NDI Discovery Server) that allow for operations across
subnet
A subnet, or subnetwork, is a logical subdivision of an IP network. Updated by RFC 6918. The practice of dividing a network into two or more networks is called subnetting.
Computers that belong to the same subnet are addressed with an identica ...
s and without multicast DNS. Sources are created using an arbitrarily selected
TCP port
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is common ...
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
In computer networking, multicast is a type of group communication where data transmission is addressed to a group of destination computers simultaneously. Multicast can be one-to-many or many-to-many distribution. Multicast differs from ph ...
or
unicast
Unicast is data transmission from a single sender (red) to a single receiver (green). Other devices on the network (yellow) do not participate in the communication.
In computer networking, unicast is a one-to-one transmission from one point in ...
with
forward error correction
In computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels.
The centra ...
(FEC) instead of TCP, and can load balance streams across multiple
network interface controller
A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter and physical network interface) is a computer hardware component that connects a computer to a computer network.
Early network interface ...
s (NICs) without using
link aggregation
In computer networking, link aggregation is the combining ( aggregating) of multiple network connections in parallel by any of several methods. Link aggregation increases total throughput beyond what a single connection could sustain, and prov ...
. NDI version 4.0 introduces the ''Multi-TCP'' transport.
NDI carries video, multichannel
uncompressed audio
Pulse-code modulation (PCM) is a method used to digitally represent analog signals. It is the standard form of digital audio in computers, compact discs, digital telephony and other digital audio applications. In a PCM stream, the amplitude o ...
, and
metadata
Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive ...
. 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
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
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
A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
(SDK) is available for
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, and
MacOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and has also been ported to
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
,
tvOS
tvOS (formerly Apple TV Software) is an operating system developed by Apple for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. The software for the second-generation and later ...
Raspberry Pi
Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
, and
FPGA
A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
. The Standard NDI SDK is available via a royalty-free
proprietary
{{Short pages monitor
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. NDI 4.0 shipped in September 2019 to coincide with the IBC exhibition.
In July 2021, NDI 5 was 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)
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
An Internet Protocol address (IP address) is a numerical label such as 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 i ...
of machines on other subnets which may be running NDI sources.
Some NDI adopters have run the protocol across
fibre
Fiber (spelled fibre in British English; from ) is a natural or artificial substance that is significantly longer than it is wide. Fibers are often used in the manufacture of other materials. The strongest engineering materials often incorp ...
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
In data communications, the bandwidth-delay product is the product of a data link's capacity (in bits per second) and its round-trip delay time (in seconds). The result, an amount of data measured in bits (or bytes), is equivalent to the maximu ...
and TCP packet loss recovery. Later versions of NDI introduced different transport protocols including UDP, MultiTCP and reliable UDP (
QUIC
QUIC () is a general-purpose transport layer network protocol initially designed by Jim Roskind at Google. It was first implemented and deployed in 2012 and was publicly announced in 2013 as experimentation broadened. It was also described at an ...
) 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
Cloud computing is "a paradigm for enabling network access to a scalable and elastic pool of shareable physical or virtual resources with self-service provisioning and administration on-demand," according to International Organization for ...
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
High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video compression standard designed as part of the MPEG-H project as a successor to the widely used Advanced Video Coding (AVC, H.264, or MPEG-4 Part 10). In co ...
) 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
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
or
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
SSSE3
Supplemental Streaming SIMD Extensions 3 (SSSE3 or SSE3S) is a SIMD instruction set created by Intel and is the fourth iteration of the SSE technology.
History
SSSE3 was first introduced with Intel processors based on the Core microarchitect ...
instruction set. Most
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
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
Advanced Vector Extensions (AVX, also known as Gesher New Instructions and then Sandy Bridge New Instructions) are SIMD extensions to the x86 instruction set architecture for microprocessors from Intel and Advanced Micro Devices (AMD). They w ...
(AVX) and
AVX2
Advanced Vector Extensions (AVX, also known as Gesher New Instructions and then Sandy Bridge New Instructions) are SIMD extensions to the x86 instruction set architecture for microprocessors from Intel and Advanced Micro Devices (AMD). They w ...
instruction sets for additional performance.
NDI can run on
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
or
64-bit
In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit central processing units (CPU) and arithmetic logic units (ALU) are those that are based on processor registers, a ...
CPU architectures, although performance is increased when using 64-bit.
NDI 4.x and earlier had limited support for
ARM
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between ...
, 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
Apple silicon is a series of system on a chip (SoC) and system in a package (SiP) processors designed by Apple Inc., mainly using the ARM architecture family, ARM architecture. They are used in nearly all of the company's devices including Mac ...
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
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonl ...
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 form 3 families.
# 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.
# Defined public metadata. These messages include things like the NDI PTZ Protocol. They are defined by NewTek as part of the NDI SDK.
# 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.NDIS Software /ref>