Network Device Interface: Difference between revisions

Content deleted Content added
m review: formatting and engvar consistency
 
(37 intermediate revisions by 19 users not shown)
Line 7:
{{Use British English|date=October 2022}}
 
'''Network Device Interface''' ('''NDI)''') is a software specification developed by the [[technology company]] [[NewTek]]. thatIt enables [[high-definition video]] to be deliveredtransmitted, received, and communicated over a [[computer network]] inwith alow low-latency, and high- quality manner. The specification isThis royalty-free andspecification allows forsupports [[frame -accurate]] switching, making it suitable for use in live [[Production control room|live video production environments]].
 
==Technology==
NDI is designed to run over [[gigabit Ethernet]]<ref>{{cite web|url=https://www.provideocoalition.com/newtek-announces-ndi-an-open-protocol-for-ip-production-workflow/|title=NewTek announces NDI, an open protocol for IP production workflow by Allan Tépper|first=ProVideo|last=Coalition|date=8 September 2015}}</ref> with the NDI codec.<ref>{{cite web|url=http://support.newtek.com/hc/en-us/articles/218109667-NDI-Encoding-Decoding|title=NDI Encoding/Decoding|website=NewTek Knowledge Base}}</ref> It is expected to deliverdelivers [[1080i]] [[Highhigh-definition video|HD video]] at [[Variablevariable bitrate|VBR]]variable data ratesrate]]s typically around {{nowrap|100&nbsp; Mbit/s}}.<ref>{{cite web|url=https://support.newtek.com/hc/en-us/articles/217662708-NDI-Network-Bandwidth|title=NDI Network Bandwidth|website=NewTek Knowledge Base}}</ref>
 
By default, NDI uses the [[mDNS]]multicast ([[Bonjour (software)|BonjourDNS]] / [[Zeroconf]]) discovery mechanism to advertise sources on a [[local area network]], such that NDI receiving devicesreceivers can automatically discover and offer those sources. It also supports 2two other discovery modes (NDI Access, NDI Discovery Server) that allow for operations across [[subnet]]s and without mDNSmulticast DNS. Sources are created using an arbitrarily selected [[Transmission Control Protocol|TCP]] [[Port (computer networking)|port]] from a range of ports on the NDI send hostsenders. 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 [[User Datagram Protocol|UDP]] [[multicast]] or [[unicast]] with [[forward error correction]] (FEC) instead of TCP, and can [[Load balancing (computing)|load balance]] streams across multiple [[network interface controller]]s (NICs) without using [[link aggregation]]. NDI version 4.0 introduces multithe ''Multi-TCP'' connectionstransport.
 
NDI carries video, [[Surround sound|multichannel]] [[uncompressed audio]],{{Citation needed|date=September 2020|reason=Please link to an official source verifying this claim}} 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.<ref>{{cite web|url=http://www.content-technology.com/standards/?p=578|title=NewTek Announces NDI – Open Protocol for IP Production Workflow - Technical Standards|website=Content-technology.com}}</ref> This directional metadata system allows for functionality such as active [[Tally light|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, thingsfor likeinstance, audio-only or metadata-only connections where video is not required.
 
The NDI [[software development kit]] (SDK) is available for [[Microsoft Windows|Windows]], [[Linux]], and [[MacOS]],<ref>{{cite web|url=https://www.newtek.com/ndi/sdk/|title=NewTek NDI SDK|website=Newtek.com}}</ref> and has also been ported to [[iOS]], [[tvOS]], [[Android (operating system)|Android]], [[Raspberry Pi]], and [[Field-programmable gate array|FPGA]].{{cn|date=January 2025}} The Standard NDI SDK is available via a royalty-free [[Proprietary_software|proprietary]] license.<ref>{{cite web |title=NDI® license agreement |url=http://new.tk/ndisdk_license/ |website=new.tk |accessdate=3 June 2020}}</ref> 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 user]]s) 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.
 
{| class="wikitable"
|-
Line 31:
! ASPEN<ref>{{cite web|url=http://aspen-community.com|title=ASPEN Community - Home|website=aspen-community.com}}</ref>
! NMI<ref>{{cite web|url=http://www.sony.co.uk/pro/press/sony-pr-ibc-2014-networked-media-interface|title=Sony launches Networked Media Interface in collaboration with leading broadcast industry organisations : Press : United Kingdom : Sony Professional|website=Sony.co.uk|access-date=2017-03-21|archive-date=2017-03-22|archive-url=https://web.archive.org/web/20170322111456/http://www.sony.co.uk/pro/press/sony-pr-ibc-2014-networked-media-interface|url-status=dead}}</ref>
! CDI<ref>{{cite web|url=https://aws.amazon.com/media-services/resources/cdi/|title=Cloud Digital Interface|website=aws.amazon.com}}</ref>
|-
! Developed by
| [[NewTek]]
| [[NewTek]]
| [[NewTek]]
| [[SMPTE]]
| [[Video Services Forum|VSF]] and [[SMPTE]]
| ASPEN Community
| [[Sony]]
| [[AWS]]
|-
! Transport
Line 44 ⟶ 54:
|-
! Image format
| Size &nbsp;/ Aspect Independent
| Size &nbsp;/ Aspect Independent
| Size &nbsp;/ Aspect Independent
| SDI Formats only
| Size &nbsp;/ Aspect Independent
|
|
Line 100 ⟶ 110:
| SMPTE 2110-22 spec.([[JPEG XS]], but not limited to)
| NONE
| NONE &nbsp;/ LLVC Codec
| NONE
|-
! Connection
| Socket, Unicast &nbsp;/ Multicast and FEC
| Unicast &nbsp;/ Multicast
| Socket, Unicast &nbsp;/ Multicast and FEC
| Multicast
| Multicast
| Multicast
| Multicast &nbsp;/ ?
| SRD
|-
! HD (1080i) data rate
| ~{{nowrap|100&nbsp; Mbit/s}}
| 8–20&nbsp;8–{{nowrap|20 Mbit/s}}
| ~1–50&nbsp;1–{{nowrap|50 Mbit/s}}
| {{nowrap|>1.5&nbsp; Gbit/s}}
| {{nowrap|>1.1&nbsp; Gbit/s}}
| {{nowrap|>1.5&nbsp; Gbit/s}}
| {{nowrap|>1.5&nbsp; Gbit/s }}&nbsp;/ up to 14:1<ref>{{cite web|url=http://www.nexteravideo.com/nmi-core|title=NMI Core - Nextera Video Inc|website=Nexteravideo.com}}</ref>
| {{nowrap|>1.5&nbsp; Gbit/s}}
|-
! Essence packing
Line 134 ⟶ 144:
|-
! Infrastructure
| Gigabit &nbsp;/ wireless &nbsp;/ load balanced multi NIC &nbsp;/ 10&nbsp;GBit
| Gigabit &nbsp;/ wireless
| Gigabit &nbsp;/ wireless
| 10&nbsp;GBit minimum
| 10&nbsp;GBit minimum
| 10&nbsp;GBit minimum
| Gigabit &nbsp;/ 10&nbsp;GBit
| 100GBit EFA &nbsp;/ libFabric
|-
! Service Discovery
Line 162 ⟶ 172:
| SMPTE RDD
| OPEN SOURCE
|}
 
{{notelist-ua|refs=
{{efn-ua|name=TICO|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.<ref>{{cite web|url=http://www.tico-alliance.org/technology.html|title=TICO Alliance - Technology|website=www.tico-alliance.org}}</ref> SMPTE 2110 with TR-03 also offers the potential to use TICO RDD35 and JPEG XS.<ref>{{cite web|url=https://standards.globalspec.com/std/10013902/smpte-rdd-35|title=SMPTE RDD 35 - TICO Lightweight Codec Used in IP Networked or in SDI Infrastructures - Engineering360|website=standards.globalspec.com}}</ref> This requires a proprietary encoder and decoder which are generally implemented as silicon on each end.}}
Line 171 ⟶ 181:
 
==History==
NDI was publicly revealed by NewTek on 8 September 2015 and was demonstrated at the IBC[[International broadcastBroadcasting exhibitionConvention]] in Amsterdam that week.<ref>{{cite web|url=https://www.provideocoalition.com/newtek-announces-ndi-an-open-protocol-for-ip-production-workflow/|title=NewTek announces NDI, an open protocol for IP production workflow by Allan Tépper|date=8 September 2015|website=Provideocoalition.com}}</ref> 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 ).<ref>{{cite web|url=http://www.sportsvideo.org/2016/09/19/newteks-will-waters-says-ip-series-will-appeal-to-new-markets/|title=NewTek's IP Series Video-Production System Targets New Markets|first1=Ken|last1=Kerschbaumer|date=September 19, 2016|website=Sports Video Group}}</ref>
 
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 [[ChyronHego|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.<ref>{{cite web|url=http://pages.newtek.com/NDI-Upgrader-Download.html|title=NDI AirSend Updater-NewTek|website=pages.newtek.com}}</ref>
 
BirdDog was an early adopter and in 2018 releasereleased Studio NDI, an [[ASIC]] implementation of NDI. BirdDog went on to deliver NDI [[PTZ camerascamera]]s, along with a host of software applications.{{cn|date=February 2023}}
 
Another early adopter of NDI was [[VMix]], a Windows-based vision mixer whichthat offers NDI inputs and outputs.<ref>{{cite web|url=https://www.thebroadcastbridge.com/content/entry/5589/studiocoast-vmix-adopts-newtek-ndi-standard|title=StudioCoast vMix Adopts NewTek NDI Standard - The Broadcast Bridge - Connecting IT to Broadcast|first=The Broadcast|last=Bridge|website=Thebroadcastbridge.com| date=18 April 2016 }}</ref> A significant increase in the NDI [[installed base]] came when live -streaming application [[XSplit]] added support for NDI.<ref>{{cite web|url=http://www.marketwired.com/press-release/xsplit-broadcaster-adopts-newtek-ndi-for-ip-production-workflow-2114230.htm |title=XSplit Broadcaster Adopts NewTek NDI for IP Production Workflow |website=Marketwired.com |date=2016-04-12 |accessdate=2017-05-23}}</ref>
 
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 [[PCI Express|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.{{fact|date=July 2023}}
 
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]] [[Chipset|chipsetschipset]]s and updated [[firmware]].<ref name="newtek.com">{{cite web|url=https://www.newtek.com/press-releases/ndi-v3/|title=NewTek NDI® Version 3 Offers the Only End-to-End IP Video Solution for Product Manufacturers|website=NewTek}}</ref>
 
In April 2018 at the [[NAB Show]], Microsoft announced they had added NDI support to [[Skype|Skype for Content Creators]].<ref name="blogs.skype.com">{{cite web|url=https://blogs.skype.com/news/2018/04/06/make-collaboration-the-heart-of-your-live-streams-podcasts-and-videos-with-skype-for-content-creators/|title=Make collaboration the heart of your live streams, podcasts, and videos with Skype for Content Creators|date=6 April 2018|website=Skype Blogs}}</ref> Other announcements at NAB2018NAB in 2018 included NDI 3.5, and new NDI support from vendors including EVS<ref name="sportsvideo.org">{{cite web|url=https://www.sportsvideo.org/2017/09/05/evs-x-one-production-system-takes-software-based-tech-to-new-level/|title=EVS X-One Production System Takes Software-Based Tech to New Level|first=Ken Kerschbaumer, Editorial|last=Director|website=Sports Video Group| date=5 September 2017 }}</ref> and Avid.<ref name="https://www.newtek.com/blog/avid">{{Cite web | url=https://www.newtek.com/blog/avid/ | title=Avid Media Composer Integrates NewTek NDI®}}</ref>
 
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.<ref>{{cite web|url=https://www.newtek.com/blog/ffmpeg-3-4-adds-ndi-io/|title=FFmpeg 3.4 Adds NDI I/O|first=Chuck|last=Baker|publisher=NewTek|date=December 6, 2017}}</ref> However, NewTek was later found to be redistributing pre-compiled binaries of FFmpeg that incorporated their non-opensourceopen-source library in violation of the [[GNU General Public License]], causing the FFmpeg project to remove NDI support from their codebasecode base in March 2019.<ref>{{cite web|url=https://trac.ffmpeg.org/ticket/7589|title=NewTek distributing non-free FFmpeg build|publisher=FFmpeg bug trac|date=December 3, 2018}}</ref><ref>{{cite web|url=https://github.com/FFmpeg/FFmpeg/commit/4b32f8b3ebfa011fcc5991bcaa97c3f5b61b49ad|publisher=FFmpeg github repo|title=Remove libndi_newtek|date=March 9, 2019}}</ref>
 
In April 2019, ahead of NAB, NewTek announced the addition of Multi-TCP mode to NDI 4.0 which is reported to leverageuses hardware [[TCP accelerationoffload engine]] present in silicon, assisting lower-spec processors with NDI transport.<ref name="nab2019plans">{{Cite web | url=https://www.tvtechnology.com/news/newteks-andrew-cross-talks-about-the-acquisition-discusses-nab-show-plans |title = NewTek's Andrew Cross Discusses Acquisition, NAB Show Plans|first=Phil|last=Kurz|date=April 3, 2019}}</ref> NDI 4.0 shipped in September 2019 to coincide with the IBC exhibition.
 
In July 2021, NDI 5 has beenwas released adding the following main features: Reliablereliable UDP transmission, Redundantredundant discovery server support, and NDI 5 Tools (NDI Bridge, NDI Remote, NDI Audio Direct, FCP-X output)<ref>{{Cite web | url=https://www.ndi.tv/tools/ | title=NDI Tools &#124; NDI.tv }}</ref>
 
{| class="wikitable"
|-
! Version !! Released !! Features/Enhancements and enhancements
|-
| 1.0|| April 2016 || Initial Release
Line 199 ⟶ 209:
| 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<ref name="nab2019plans"/>
|-
| 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. <ref>{{Cite web | url=https://www.nvidia.com/en-us/geforce/news/nvidia-broadcast-engine-integrations/ | title=NVIDIA Broadcast Features Now Integrated Directly in Top Streaming Applications }}</ref>
|-
| 5.0|| July 2021 || Reliable UDP transmission, Redundant discovery server support, NDI 5 Tools (Bridge, Remote, Audio Direct, FCP-X output) <ref>{{Cite web | url=https://www.ndi.tv/tools/ | title=NDI Tools &#124; NDI.tv }}</ref>
|-
| 5.1|| Feb 2022 || NDI Bridge enhancements, DNS name support for Discovery Server, SDK improvements.
|-
| 5.5|| Aug 2022 || NDI 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).
|}-
| 6.0|| Apr 2024 || Added specification for NDI HDR metadata, Improved support for 16-bit colour formats, NDI Bridge Utility for Linux, NDI-KVM support for Video Monitor on macOS, NDI Router for macOS, NDI Studio Monitor on Windows enhanced with HDR support for display and recording
|-
|6.1
|Dec 2024
|NDI Bridge improvements, NDI Bridge service, 16-bit colour formats available in FPGA platforms, dynamic bandwidth adjustment API in NDI Advanced SDK
|}<!--[[User:Kvng/RTH]]-->
 
==Use in Wi-Fi and wide area networks==
NDI was designed to work on good quality [[Gigabit Ethernet|gigabit local area networks]] using TCP and Bonjour ([[Multicast DNS|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 [[Fiber-optic communication|fibre]] connections up to 15&nbsp;km, although NDI's use of the TCP protocol makes it less suitable for long-distance, [[Network latency|high-latency]] connections due to factors such as [[bandwidth-delay product]] and [[Transmission Control Protocol|TCP packet loss recovery]].<ref>{{cite web|url=http://westreamu.se/2016/05/09/documentary-stockholm-kista-cross-production-using-ndi-over-fiber/|title=Documentary: Stockholm Kista cross production using NDI over fiber|first=Richard|last=Gatarski|date=9 May 2016|website=Weststreamu.se}}</ref> 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 computing|cloud-based]] production systems, with its compressed video and unicast transmissions making it suitable for cloud-based services like [[AWS]] and [[Microsoft Azure|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 [[High Efficiency Video Coding|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]] [[CPU Architecture|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]] instructionsinstruction 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 architecture family|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 (instruction set)|Neon instructions]]. This includes [[Apple silicon|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 [[Pan–tilt–zoom camera|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|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]].<ref>{{Cite web | url=https://www.tvtechnology.com/news/newteks-andrew-cross-talks-about-the-acquisition-discusses-nab-show-plans |title = NewTek's Andrew Cross Discusses Acquisition, NAB Show Plans| date=3 April 2019 }}</ref>
 
==Metadata and extensions to the NDI specification==
Line 248 ⟶ 264:
# 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.<ref>{{cite web |url=http://www.sienna-tv.com/ndi/ndimetadatastandards.html |title=NDI Metadata Standards |access-date=2023-09-27 |publisher=Sienna}}</ref><ref>[https://ndis.software/ NDIS Software]</ref>
 
==References==