Written by Terry Doner, 2020. Last updated Apr 7, 2021.
NDI is a very important toolkit for your video bag of trips. Since 2015, it has become so popular because it provides a high degree of flexibility at a lower cost than the alternatives mainly because it is much less demanding on your network..
NDI, in its most popular usage and the focus of this article, is a bandwidth efficient means of moving video over ethernet and in some cases wireless networks. I can provide greater flexibility with less hardware than the preceding solutions.
For example, with past solutions one may have had to run several cables to a camera: power, video, tally, control, communications. All-in-one cables were available but very expensive. Now this can be all done over a cheap and readily available ethernet cable.
Or if you had a video on one computer that you needed as input to another computer, you would need to have a video card that could generate the source video, an (hdmi) cable to shuttle that signal over to the second computer, a capture card the could capture the video stream for the target software. Now, using NDI, this can all be done without addition hardware and using the cabled network connections the two computers likely already have between them.
Many software titles are adding native NDI capabilities making it even more convenient.
In the next sections we will review a few of the many mechanisms available to work with NDI and follow that up with implementation considerations.
There are too many cameras to list them here and keep the list up-to-date. Instead I will list the major brands in the market. (Please let me know via the feedback form below if I should add others!)
Bird Dog:
PTZ Optics
Panasonic
Sony
Aida
Marshall
http://www.marshall-usa.com/cameras/#IPTV (not all are NDI)
Ross
B&H Photo has a web page that lists many products:
NDI Web Cam Capture via software
There are three options for this, Sienna, Newtek and OBS.
OBS dedicated NDI output on the source.
This section discusses hardware interfaces that can be used to convert video between predecessor formats and NDI. The list of products change quickly. The website for some of the big vendors is provided and some specific examples.
Newtek was the original creator of NDI, and they have several products listed on their website. Some examples:
NC1 Studio I/O Module
BirdDog: main website.
BirdDog Studio SDI/HDMI to Network Device Interface
BirdDog Mini HDMI to NDI Encoder
Kiloview: main website
Magewell: main website
Magewell Pro Convert HDMI Plus, there is a 4K version too.
Science-Image has several products to choose from
An open source solution for Raspberry PI4, still in beta. Watch out for latency, it was significant in the early versions:
This list is very difficult to keep up-to-date. A very good source for a recent gear is B&H, for example this is a list of gear that produces NDI output.
Newtek NDI Tools
Newtek publishes a toolkit for both Windows and MacOS, there are some differences in the tools included .
Sienna NDI Tools
The free Sienna MacOS toolkit includes utilities for: Monitor, Signal Generator, Scan Converter (Lite), and access manager: http://www.sienna-tv.com/ndi/freenditools.html
Sienna also offers many other NDI tools for a reasonable cost and some sophisticated upscale tools too. See their website.
vMix Desktop Capture
vMix provides a free utility which provides the ability to capture most application windows on either MacOS or Windows. It differs from the "Scan Convertor" applications provided by Newtek and Sienna in one key aspect. The vMix utility provides the ability for the receiver to choose which application to be broadcast, whereas the other two make that a transmitter choice. The vMix solution is more flexible but does expose most things on your desktop on your network. Download here.
NDI Syphon
Syphon is a MacOS toolkit for sharing video within the a computer, this NDI Syphon software performs bidirectional conversions between NDI and Syphon: https://docs.vidvox.net/freebies_ndi_syphon.html
NDI Tools for Live Broadcast
Includes Studio clock, Audio embedder, and de-embedder: http://ndi.lofas.se/
NDI and SRT transcoders
Dante Bridge
From Bird-dog NDI-Dante Bridge
Zen NDI Utilities (Windows only, but very useful)
Kiloview Multiview Player
Vingester
Create an NDI stream of a webpage - works well with OBS.Ninja.
Video allow video, and usually audio from multiple sources to be combined and overlaid to create one or more new video streams. This can be done with hardware or software-only solutions.
Newtek
Newtek has several hardware solutions
OBS
One of the most popular software solutions which supports NDI add-ons
https://obsproject.com/ and https://github.com/Palakis/obs-ndi/releases/
vMix
A popular software solution with built-in NDI support
ProPresenter
Software that had its origins in in-person presentation and now with NDI support can include live video in a flexible fashion
MimioLive from Boinx
https://boinx.com/mimolive/
Wirecast
xSplit
Software solution
eCamm Live
Software solution
Suite CG
A software solution tailored for sports broadcasts
Epiphan
A hardware solution
Many conference solutions provide NDI support in various degrees:
zoom supports a simple NDI input (with a promise of more sophisticated features in the future)
skype can provide its video output as NDI
MS Teams has sophisticated NDI input and output capabilities
casperCG
A graphics presentation package which can produce NDI outputs
VDMX is video VJ software
Apple TV
Apple TV has an available NDI player app in the app store
Bandwidth and latency are two common design issues that need attention. Both can be described by the analogy of a garden hose. Bandwidth is similar to the diameter of the hose; the larger the diameter the more water can flow. Latency is similar to the speed at which the water flows; it can travel the hose quickly or slowly. These two characteristics are (mostly) independent.
Two other concepts we need to understand are supply and demand. What is our network capable of (supply) and how much do we need (demand).
Bandwidth is measured in Gbps (Gigabits per second). A network device has a certain bandwidth capacity. Many modern wired devices are gigabit ethernet. Older devices may only be 10 Mbps or 100 Mbps (1/100th or 1/10th of 1 Gbps). For most practical simple installations you need a 1 Gbps capable network and for more advanced systems you may need 10 Gbps!
Supply
What determines your network's capacity. There are several things that work together to determine that.
Network gear capability (switches, routers, etc)
cabling (cat5e, cat6, etc. And length)
ports (1Gb ports, 10Gb ports, etc)
switch internal capacity ... a switch may have 16 x 1Gb ports, but may not have the ability to handle all of them at full speed.
To know your total capacity, you need to know the available capacity of every component in the path way.
Demand
Demand the question about how much bandwidth, in total, you need. This means you need to know, and be able to manage what devices are on the network and what they their individual demand might be. One key characteristic is that you need to focus on peak demand at the time you are trying to use your NDI devices. The network demand from non-NDI devices are something you are going to have to figure out. Maybe you can log in to your switches and observe how much data they are passing. The easiest case is that you have dedicated network gear for the NDI traffic.
How much Bandwidth does NDI need?
This requires you to do a little bit of math. First you need to know all of your NDI devices, and for each of them you need to know their resolution settings.
Notes:
These bandwidth numbers are all observations or estimates, and there is some wide variations.
Causes for variation include the number of audio channels, the complexity of the video image (which affects compression efficiency), and the bit encoding.
Rule-of-thumb NDI|HX is â…’ th the bandwidth of NDI.
No significant information about bandwidth of HX2.
Safety margin
As a rule-of-thumb you want to ensure that your demand doesn't exceed a percentage of your supply. Some will say 50%, others will say 80%. The percentage for you depends on how much variation you anticipate. For example, if all of your NDI gear is on a dedicated network and is consistent, then you can use the 80% number. If it is a mixed with devices which can present random loads, then you should pick a lower percentage, like 50%.
(If you define QoS parameters and have a sacrificial load then you can push your utilisation higher - but this isn't a basic topic)
An Example
Let's suppose you have three cameras providing 1080p60, plus a feed from ProPresenter also at 1080p60 all using NDI. These four feeds terminate at a computer running vMix. Finally let's add in that vMix is streaming out at the rate of 6 Mbps.
From this example you can see that the total requirement is 756 Mbps, this is about 75% of a 1 Gbps port. This is the limit of how much you should plan for port capacity.
Note:
The eagle eyed readers might have noticed that I added inbound and outbound data rates. In many systems the port capacity for a 1 Gbps port would be 1 Gbps in each direction. If you know about this and how to verify this setting on both connected ports (Computer and switch) then you can separate those figures.
Latency is an important topic. And I have much research to do before I can write this section. In the meantime I can report that with good network engineering and ample computer resources you can deliver professional broadcast level, low-latency productions. AND is you have a poorly designed network with underpowered computers, latency will be a problem.
Further reference
http://en.kiloview.com/news/The-Latency-of-Video-Codecs-%E2%80%93-How-Latency-happens-and-How-to-Solve-It%3F-226.html?fbclid=IwAR39HBCyLjGcYkQb17TB3AooPO9r6xRIbxPoCEz5LbGyRRSifXl5Ov0zdJ0
Adding NDI to Your Network - A Newtek publication
NDI Problem Solving - A Newtek publication
Newtek NDI Technical Brief - A Newtek publication
You can check network activity on MacOS using "Activity Monitor". In the screenshot below I have filtered to show some NDI processes. The columns are Bytes, not bits. And they are cumulative for the life of the process, so to figure out bps take note of the Sent Bytes and Rcvd Bytes at a point in time, and then again one minute later. The bps would be (Sent Bytes + Rcvd Bytes) * 8 / 60.
Also note at the bottom that there are counters for Data received/sec and Data Sent/sec in MB, so multiply by 8 to get Mbps. These numbers should not exceed your port capacity - safety.
... to be written ... likely need to describe "Performance Monitor".
To be written
Cacti is a substantial network monitoring tool and is likely to big of a tool for many smaller implementations. But it may be very valuable in larger implementations.