2) This NDI-RTx utility was created because I wanted something to run on a remote PC to perform an “NDI loopback” so I could monitor the effects of a round-trip over a network (eg bandwidth used, dropped frames), measured on the same PC as the NDI source.
After I started using it I then realised that something like this can be used as a sort of “NDI CDN” to distribute network bandwidth by creating remote “splitter-nodes” at various locations and offload work from the switcher PC. From there it grew with further built-in processing options.
3) The “Extra IP” field allows a specific IP address to be searched for NDI sources (as well as the current subnet addresses).
4) The “Exclude local sources” option prevents detection of NDI sources generated on the same PC. Given that the main purpose of NDI Relay is to take a remote source and re-distribute it to other PCs, this option is enabled by default.
5) NDI sources on the LAN are continuously detected and accessed by the drop-down menu on the left, above the image monitor. Select a source to connect to it and the name will be shown on the top line of the window, along with the IP address. Selecting another source while one is already connected will disconnect the first one, or you can click the Disconnect button.
6) The “Split Key+Fill” option in the system menu (Rt Click, top left) creates a second NDI source for the re-transmitted NDI, such that when the input source contains an alpha channel (in RGBA format), the alpha content is copied to the Key output stream as luma values in NDI YUV format.
7) The NDI / AirSend button toggles the output between NDI and AirSend modes (via different auto-named output devices). Incoming NDI video (with alpha) can be re-transmitted as an AirSend source for feeding into older-model Tricasters. No audio is sent in AirSend mode, nor is Split Key+Fill mode possible. Changing modes can only be performed when no NDI source is connected.
8) The Freeze button can be used to grab and hold (ie Freeze) the incoming video that’s being retransmitted. The button text changes to Restart to restore normal operation, and the “indicator light” to the right of the button will flash Red/Green when Freeze is active.
9) The Overlay button opens a dialogue box in which an overlay image may be loaded, positioned and enabled (On/Off). Embedded alpha/transparency data will be used if present, or the whole overlay image can be made opaque if no alpha channel is included (making it suitable for adding small rectangular logo images). Overlays are always added at a 1:1 pixel ratio. E.g. an overlay image measuring 250×100 pixels will potentially cover 250×100 pixels of the source video. Clicking on the quadrants of the preview image in the dialogue box will cause the overlay to be relative to top-left, top-right, lower-left or lower-right positions, combined with the X/Y numeric offsets.
Animated image sequences may also be loaded, and can be positioned in a similar manner. There is no requirement for the image size to match the size of the video onto which it will be overlaid; in fact there is a positive advantage in making the image files with the pixel size no bigger than is required to contain the animated object, as this will save on RAM usage when a sequence with a large number of images is loaded. Sequences are loaded in the same way as single images but, if consecutive numbered files are detected with the same base name as the selected file, you will be given the option to load the rest of the sequence.
Once the sequence has been loaded, it can be played in the preview
panel on the right of the Overlay setup window via the Stop/Play buttons. The Preview overlays the image sequence on a solid colour background and is intended for checking that the sequence looks as expected. These Stop/Play buttons are only for the Preview and do not control the overlay on the NDI output, which is enabled/disabled via the On/Off button, as for static overlays. The Overlay setup controls are in a “modal dialog
box” so it should be closed when setup is complete.
Images are overlaid in a looped sequence, with each new frame of incoming video receiving the next frame in the sequence, so the actual playback frame rate will match the current NDI source video. This should be considered when creating animated image sequences.
10) The Audio Delay function will delay the re-transmitted audio. It can be enabled or disabled and the delay time adjusted in 1 frame increments, up to a maximum of 15 frames .
11) The EBU/SMPTE o/p button controls the conversion between NDI floating point audio and the signed integer audio that is fed to the default Windows audio output device for monitoring. NDI audio uses a notional dBu values for audio levels, so EBU uses the 0dBu = -18dBFS standard while SMPTE converts with +4dBu = -20dBFS (= 0dB VU). The mode is auto-selected when a new NDI source is selected. EBU is used for 25/50 framerates, SMPTE for all others. Should the auto-chosen mode be inappropriate, the button can be used to toggle modes.
12) The Audio Map button opens a dialog box for control of the audio channel mapping and the mono-mix functions. The left hand picture below shows the default mapping, with each input channel passed to the respective output channel, 1:1, 2:2, 3:3, etc. In the middle image the mapping has been changed so that channels 1 & 2 have been reversed on the output (but the other channels remain the same). In the third picture (on the right), the “Ch1/2 Mono Mix” box is ticked, so outputs 1&2 are both taking a mix of input channels 1&4, and outputs 3&4 are taking input channels 3&2 respectively.
The channel mapping functions allow higher numbered audio channels to be remapped to channels 1&2, for applications which only decode the first two channels, or for any two channels to be mixed together into a single channel for applications which only take a single NDI audio channel for their input, by using the Mono Mix.
Also in the Audio Map dialog box is the Gain menu, accessed via the Gain button, which allows up to 20dB of gain or attenuation to be applied to the retransmitted audio output. The same value is applied to all output channels, and when the dialog is closed it affects both the audio meter display and local audio monitoring level. However, whilst the dialog is open, if negative gain (i.e. attenuation) is applied, the meters and local monitoring will continue to use the incoming audio level (like PFL).
13) The Rotate button selects options for 0 (normal), +90 + 180 & -90 degrees, plus vertical & horizontal flip/mirror. The button cycles forwards or backwards through the options, depending on which side of the button you click on.
14) The loudspeaker icon acts as a 3-way Dim & Cut switch for hearing the incoming NDI audio via the default Windows audio output device. Click on the top third of the speaker icon for Full Level, in the middle for Dim, and the bottom third to Cut (i.e. Mute) the audio output. The default setting is Full.
15) The De-Interlace button cycles through options for blending both fields (without vertical shift) or interpolating from either field 1 or 2.
16) The “Open NDI Source Stats” option in the system menu (Right Click, top left) – or via the “Stats” button – creates a resizable modeless dialog box which displays a list of NDI sources detected on the network, with each entry comprising the NDI name on the network, pixel resolution (width x height), frame-rate & progressive/interlaced status, whether alpha data is included, number of audio channels & sample rate, and the IP address/port number.
Although the NDI names & IP Addresses can be rapidly obtained as a block of data, there is no equivalent way of obtaining all the other information as to what is present in the NDI streams, so it is necessary to open each source in turn and wait for video & audio frames to be received (or for a time-out to occur), so this process can take some time when a high number of sources are present.
Note also that the results of the scan are affected by the Exclude Local Sources control in the main RTx dialog window, so NDI sources on the local PC will only be shown if this checkbox is un-ticked.
If you are experiencing performance issues when retransmitting NDI streams, the first thing to check is your overall CPU usage on the PC that’s running it (using the Process or Performance tabs in Windows Task Manger). RTx is entirely CPU-dependent, so a fast multi-core CPU is definitely an advantage, and laptops are often less powerful in this respect than desktops with what can appear to be a similar specification. If you are running into high CPU usage at your required resolution/framerate, make sure you are using the 64bit (x64) version if at all possible, and disable the Video Preview window when not required. Click on the Preview window to toggle it On/Off.
FACEBOOK Support Group
There is now a support/discussion group page on Facebook – “ZEN’s NDI Software” – just agree to the rules & answer the membership question to join.
ZEN Computer Services
v184.108.40.206 3-Oct-2016 Earlier release as an NDI signal repeater, with no local A/V monitoring.
v220.127.116.11 27-Oct-2016 Added audio level meter and local audio monitor output.
v18.104.22.168 24-Nov-2016 Added “Exclude local sources” option and fixed a display/selection issue when large numbers of NDI sources are present. Testing with NDI v2.0 beta.
v22.214.171.124 7-Dec-2016 Recompiled with NDI v2.0 libraries and added a small video preview window/confidence-monitor.
v126.96.36.199 21-Apr-2017 Added a “Freeze Frame” function, re-using what was the Refresh button (under the video preview) on earlier versions. Also added an “Always on top” option in the main drop-down window menu.
v188.8.131.52 12-Sep-2017 Recompiled to extend the expiry date. No other changes.
v184.108.40.206 11-Oct-2017 Improved smoothing to audio meter fall-back. Preview of YUV video now in colour.
v220.127.116.11 9-Feb-2018 Slightly revised GUI layout/controls but no changes to the headline features.
v18.104.22.168 21-Feb-2018 Small bug fix to NDI Source Selection control, which could cause a crash.
v22.214.171.124 21-May-2018 Added logo/overlay function. Recompiled with NDI v3.5 libraries.
V126.96.36.199 27-Nov-2018 Added Audio Channel Mapping, Ch1/2 Mono Mix, Audio Delay, and Image Sequence Overlays. Compiled with NDI v3.7 libraries.
V188.8.131.52 26-Dec-2018 Minor tweaks & fixes. Compiled with NDI v3.8 libraries.
V184.108.40.206 20-Feb-2019 Added NewTek “AirSend” capability (video only) to support sending of video (with alpha channel) to older model Tricasters which don’t support NDI.
V220.127.116.11 3-Mar-2019 Added “Split Key+Fill” option, which will generate a second NDI stream containing the alpha/key signal when the NDI source is in RGB+Alpha format.
V18.104.22.168 9-Nov-2019 Recompiled with NDI v4.1 libraries. Added an on-off toggle for the video preview by clicking in the video window.
V22.214.171.124 9-Dec-2019 Added Rotation feature, with options for 0 (normal), +90 + 180 & -90 degrees, plus vertical & horizontal flip/mirror. The rotate button cycles through the options, forwards or backwards depending on which side of the button you click on.
V126.96.36.199 22-Dec-2019 Added De-Interlace feature. With options for blending both fields (without vertical shift) or interpolating from either field 1 or 2.
V188.8.131.52 30-Dec-2019 Added the “NDI Source Stats” display window feature to scan for all NDI sources on the LAN.
V184.108.40.206 1-Jan-2020 Improvements/fixes to the Source Stats feature. Added a Progress Bar and a variable number of decoder threads (up to 4) to speed up scanning of NDI sources.
V220.127.116.11 2-Feb-2020 Recompiled with NDI v4.15 libraries. Both 32 bit (x86) and 64 bit (x64) code versions are included (but no audio output in the 64 bit version).
V18.104.22.168 27-Sep-2020 Recompiled with NDI v4.53 libraries.
V22.214.171.124 10-Feb-2021 Improved multi-threading to tackle audio retransmission issues. Recompiled to include NDI v4.60 libraries.
v126.96.36.199 18-Mar-2021 Recompiled to extend expiry date and use the NDI v4.62 DLL. Also added F1 & System Menu methods of accessing the ReadMe online, and sponsor ads at start-up.
v188.8.131.52 1-May-2021 Added the Audio Gain function, accessed via the Audio Map dialog.