Tag Archives: NDI

FFMPEG with NDI support

Unfortunately, FFMPEG does not support NDI due to copyright issues but wait there is a recent Github tutorial that brings back NDI support on Linux machines.

For MacOS several patches/versions are outdated while I now found that the old method posted by Johan Els on Github several years ago still works.

As I can stream now basically every camera under macOS and Ubuntu using gphoto2 and ffmpeg, I am ready to sell my whole HDMI setup including the Atem Mini – at least at sometime in the near future ;-)

How to revamp an outdated chromebook into an up to date multimedia machine

I have here a left over 4 year old Acer Chromebook 14 (CB3-431) here that nobody wanted to buy even for 20€ on the flea market. It was running under Chrome OS Edgar 2016 Intel Braswell where software support expired recently. So I decided to refresh it with a modern Ubuntu/Debian version as there are many positive reports out there, that it will run even even better than before.

As recommended I installed Gallium OS 3.1. Bismuth as a dual boot system with 22 GB of 24 GB for the new operating system (Gallium takes about 3,5 GB while my 1 TB external SSD works flawless with this setup). https://chrx.org has step by step instructions  for a dual boot system.

This takes about 2 hours as this is a long and complicated process: resetting the Chromebook to developer mode (ESC + F3/circle + power), followed by  firmware update and fresh  partitioning.

Now the machine boots into a white OS verification screen from where CTRL+D goes into ChromeOS (as before) while CTRL+L leads to Gallium (user chrx, password chrx). Sounds perfect but on the second day I accidentally hit a wrong key deleting everything. So I removed now also the hardware boot lock and restarted the firmware utility script a second time for setting the GBB flag to boot directly to Gallium OS without delay.


removing the Acer Chromebook hardware lock, screwdriver pointing to it


Next I installed OBS to connecting my DSLR  cameras for streaming a Christmas service. Took me some time to figure out which OBS version was working with NDI. I can recommend NDI Plugin 4.9.1 and  PTZ Plugin 0.10.2 that work with OBS 25.0.8. (OBS 28 had issues with NDI).

# system
sudo apt-get install libusb-1.0-0 gparted ufw gufw

# php
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.4-cli php7.4-fpm php7.4-opcache php7.4-sqlite3 php7.0-gd
sudo php -S -t /home/chrx/Downloads/phpserver

# camera control
sudo apt-get install exiftool gphoto2 v4l2loopback-dkms

# streaming
git clone https://github.com/puhitaku/mtplvcap.git
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update
sudo apt-get install obs-studio

# selphy printer
sudo apt-get install printer-driver-gutenprint cheese photoprint

# nextcloud
sudo add-apt-repository ppa:nextcloud-devs/client
sudo apt install nextcloud-client

Connecting to an iPhone Wifi Hotspot running the EpoCam App works with NDI. Also the Atem Mini is recognized in the LAN as a video source. Tested also Millumin 2 as NDI feed while Magic Music Visuals needs NDISyphon as MMV has no native NDI output…

The USB connection of Nikon Z cameraw was a bit more difficult, so I went back to a trusted D.

Gphoto2 sees the camera, but unfortunately FFMPEG has no more NDI support since 2019 – fresh compile, patches or downgrading did not work for me. v4l2loopback recommended elsewhere also failed due to some kernel issues. The only strategy that worked is mtplvcap. It provides an output that can be accessed via a web URL in OBS.

As USB was frozen from time to time, I wrote a shell script that could quickly resetting the port when necessary. Finally I added also PHP 7 as a server (and nextcloud as online backup) for my photobooth. And well, also the trusted Selphy 800 is working after fiddling around with CUPS.

The old chromebook is now a great multimedia machine, it can stream from various sources and can also run a photobooth with image download and printing.

So far it is running stable with many hours of low power consumption. At 20€, I believe it is now worth  the twentyfold price competing even with a Macbook in this price range.

A quick fix for OBS 28.0 and NDI 4.9

It would be a dream to use Airplay for  sharing the OBS output using  the window modus. However, whenever switching the window to full screen, I can’t control OBS anymore as the main screen goes black, even when using different spaces. Also sync screens is not an option here as I only get the Airplay output.



So Airplay isn’t a good choice here, the reason why I have been falling back now to NDI to transmit my output to another machine.

It turned out, however, that the NDI plugin is not working anymore with the revamped OBS version 28 because the QT5 sources are not correctly referenced in the plugin according to the log file.

So the only choice is now to go back to version 27 until this error has been corrected.