Manual / Setup
Installing NDI® 1 2
NDI® input is not included in the OpenFollow image or .deb package – the closed-source NDI® SDK and the GStreamer NDI® plugin can't be bundled for licensing reasons, so you add them once after OpenFollow is installed.
Pick the guide that matches the computer you'll set this up from. The first two are step-by-step and need no command-line experience; the third is the full reference for advanced users. Every path starts the same way: download the NDI® SDK.
You'll need a second computer – a Mac, or a PC running Linux or Windows – on the same network as the OpenFollow station, and the same VLAN if your network uses them. To confirm it can reach the station, open the OpenFollow web interface from that computer before you start.
Step by step
<device-ip> in the commands below fills in automatically.
SSH or scp refused with a host-key warning? If you see REMOTE HOST IDENTIFICATION HAS CHANGED, the device's SSH identity changed since you last connected at this IP (typically a reflash). Clear the stale key and try again: ssh-keygen -R <device-ip> (same command on macOS, Linux, and Windows PowerShell).
You'll use Terminal – a standard app for sending text-based commands to another computer without a graphical user interface. Type or paste each line exactly and press Enter. Where a command shows <device-ip>, replace it with your device's IP address (shown on the device screen) – or enter it in the box above to fill every command at once.
Internet needed during install. This downloads the required software tools from the internet, so the OpenFollow station needs internet access for the whole process. Once the install finishes successfully, no internet access is required.
-
Download the NDI® SDK on your computer.
Open ndi.video, request the NDI® SDK (the developer SDK – not NDI® Tools), and follow the emailed link. Download the Linux build – a file named like
Install_NDI_SDK_v6_Linux.tar.gz. This is the one step that can't be automated: NDI requires you to accept their licence in a browser. -
Open Terminal.
On a Mac: press Cmd+Space, type
Terminal, press Enter. On Linux: press Ctrl+Alt+T, or open "Terminal" from your applications. -
Send the SDK to your device.
Type the two lines below. Replace
<device-ip>with your device's IP address (shown on the device's screen and in its web interface), and use the exact file name you downloaded:cd ~/Downloads scp Install_NDI_SDK_v6_Linux.tar.gz openfollow@<device-ip>:~When it asks for a password, type your device's password and press Enter. The characters won't appear as you type – that's normal. On stations set up from the prepared OpenFollow image, the default password is
openfollow. -
Connect to your device.
ssh openfollow@<device-ip>Enter the password again. From here on, what you type runs on the device.
-
Run the installer.
/usr/share/openfollow/install-ndi.shIt installs everything and builds NDI support for you. When NDI's licence text appears, press Space to page through it, then type
y(orAccept) to agree. The whole process takes about 10–20 minutes; scrolling text is normal progress, not an error.Set OpenFollow up from source instead of the prebuilt image? Run
~/openfollow/scripts/install-ndi.sh. If one path reports "No such file or directory", use the other. -
Done.
When it prints
Done. NDI® sources now appear as a video input, NDI is ready. Open the web interface → Video Inputs and choose your NDI® source.
Windows 10 and 11 include the same ssh and scp tools the other platforms use. You'll run them in PowerShell – a standard app for sending text-based commands to another computer without a graphical user interface. Type or paste each line exactly and press Enter. Where a command shows <device-ip>, replace it with your device's IP address (shown on the device screen) – or enter it in the box above to fill every command at once.
Internet needed during install. This downloads the required software tools from the internet, so the OpenFollow station needs internet access for the whole process. Once the install finishes successfully, no internet access is required.
-
Download the NDI® SDK on your PC.
Open ndi.video, request the NDI® SDK (the developer SDK – not NDI® Tools), and follow the emailed link. Download the Linux build – a file named like
Install_NDI_SDK_v6_Linux.tar.gz. The Linux version is required because this installs onto your Linux-based device, not the Windows PC. -
Open PowerShell.
Click Start, type
PowerShell(orTerminalon Windows 11), and press Enter. A text window opens. -
Send the SDK to your device.
Type the two lines below. Replace
<device-ip>with your device's IP address (shown on the device's screen and in its web interface), and use the exact file name you downloaded:cd ~\Downloads scp Install_NDI_SDK_v6_Linux.tar.gz openfollow@<device-ip>:~The first time you connect it may ask "Are you sure you want to continue connecting?" – type
yesand press Enter. When it asks for a password, type your device's password (it won't appear as you type – that's normal). On stations set up from the prepared OpenFollow image, the default password isopenfollow. -
Connect to your device.
ssh openfollow@<device-ip>Enter the password again. From here on, what you type runs on the device.
-
Run the installer.
/usr/share/openfollow/install-ndi.shIt installs everything and builds NDI support for you. When NDI's licence text appears, press Space to page through it, then type
y(orAccept) to agree. The whole process takes about 10–20 minutes; scrolling text is normal progress, not an error.Set OpenFollow up from source instead of the prebuilt image? Run
~/openfollow/scripts/install-ndi.sh. If one path reports "No such file or directory", use the other. -
Done.
When it prints
Done. NDI® sources now appear as a video input, NDI is ready. Open the web interface → Video Inputs and choose your NDI® source.
ssh or scp "not recognized"? On older Windows, add the client under Settings → Apps → Optional features → Add a feature → OpenSSH Client, then close and reopen PowerShell.
The full procedure the install script automates – for advanced users, or when the script isn't available. Everything installs into system paths, so it serves both the openfollow service and command-line tests. Substitute your device user throughout if it isn't openfollow.
Internet needed during install. This downloads the required software tools from the internet, so the OpenFollow station needs internet access for the whole process. Once the install finishes successfully, no internet access is required.
1. Download the NDI® SDK
On your normal computer (the device has no browser), open ndi.video and request the NDI® SDK (developer SDK – not NDI® Tools). Download the Linux build, e.g. Install_NDI_SDK_v6_Linux.tar.gz.
2. Copy it to the device
From a terminal on your computer, using your exact file name and the device's address:
cd ~/Downloads
scp Install_NDI_SDK_v6_Linux.tar.gz openfollow@<device-ip>:~
3. Connect and install prerequisites
ssh openfollow@<device-ip>
The minimal device image omits some build tools; install them first so the build doesn't stop partway:
sudo apt update
sudo apt install -y curl git build-essential
curl fetches the Rust installer (step 5), git clones the plugin source (step 6), and build-essential provides the C compiler Rust needs.
4. Install the NDI® SDK on the device
Unpack the archive you copied, run NDI's installer, then put the library on the system path:
tar -xf Install_NDI_SDK_v6_Linux.tar.gz
sh ./Install_NDI_SDK_v6_Linux.sh
Accept the licence when prompted (Space to page, then y / Accept). Find the real library file – a regular file, not a symlink – preferring the path containing aarch64 (and rpi if present). Install it, refresh the linker cache, then add the unversioned libndi.so link the app resolves at runtime:
find ~ -name "libndi.so.*" -type f
sudo install -m 0644 "<path>" /usr/local/lib/
sudo ldconfig
sudo ln -sf libndi.so.6 /usr/local/lib/libndi.so
The -type f avoids the SDK's bin/ symlink, which would otherwise land in /usr/local/lib as a dangling link. ldconfig creates the versioned libndi.so.6 SONAME link; the last line adds the bare libndi.so that OpenFollow's NDI® discovery loads – without it the build can still pass gst-inspect while the app can't open NDI®.
5. Install the build toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh && source ~/.cargo/env
sudo apt install -y meson ninja-build gstreamer1.0-tools libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev libglib2.0-dev libssl-dev pkg-config
cargo install cargo-c
Press Enter to accept the rustup default. cargo install cargo-c compiles from source and can take ten minutes or more; the scrolling Compiling … output is normal, not a hang.
6. Build the GStreamer NDI® plugin
Run these from your home folder. The clean slate stops a repeat attempt nesting the source inside a leftover folder – which would make the copy below silently copy nothing, so step 7 then fails for no obvious reason. Clone the gst-plugins-rs branch that matches your installed GStreamer – its main targets the newest GStreamer and may not build against the Pi's version. Check yours with pkg-config --modversion gstreamer-1.0; for example GStreamer 1.26 → branch 0.14, 1.28 → 0.15 (fall back to main if a branch is missing or its build fails):
cd ~
rm -rf gst-plugins-rs
git clone --depth 1 --branch 0.14 https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
cd gst-plugins-rs
cargo cbuild -p gst-plugin-ndi --release
sudo cp target/aarch64-unknown-linux-gnu/release/libgstndi.so \
/usr/lib/aarch64-linux-gnu/gstreamer-1.0/
Confirm the copy landed – this should list one file:
ls -l /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstndi.so
7. Verify
gst-inspect-1.0 ndisrc
It should print the element details (look for Long-name: NewTek NDI Source). If it says No such element or plugin 'ndisrc', work through these in order:
- Confirm the file is in place – the
lsat the end of step 6 must listlibgstndi.so. If not, the copy didn't happen (often the nested-folder mistake above); redo step 6 fromcd ~. - Clear GStreamer's plugin cache and re-check:
rm -f ~/.cache/gstreamer-1.0/registry.*.bin gst-inspect-1.0 ndisrc - If it still fails, the NDI® library from step 4 isn't found. Confirm both the versioned library and the unversioned link are present and resolvable:
Ifls -l /usr/local/lib/libndi.so /usr/local/lib/libndi.so.6 sudo ldconfig ldconfig -p | grep libndilibndi.sois missing, redo the symlink line in step 4 – OpenFollow resolves the unversionedlibndi.so, so the build can passgst-inspectwhile the app still can't open NDI®.
8. Restart the service
sudo systemctl restart openfollow
NDI® sources now appear as a video input in the web UI. See Video Inputs → NDI®.
1. NDI® is a registered trademark of Vizrt NDI AB.
2. OpenFollow does not contain any NDI® code by itself. NDI® requires closed source NDI® Tools / NDI® SDK on the host system that need to be installed separately.