infra:ndi
Table of Contents
NDI network
Abstract
Hackeriet has 3 permanent video devices:
- The “pinball” TV
- The “Hackeriet” TV
- A projector in the ceiling
Currently, the only semi-permanent way to control these is using Chromecasts. This is suboptimal for a variety of reasons, including:
- Latency in realtime settings
- Compatibility with certain types of equipment
If we were to install NDI receivers on these video devices, we'd be able to support a decent amount of realtime usecases in addition to more casual Youtube video playback.
Solutions evaluated so far
Receivers
-
- Provides a significantly low bar-of-entry for getting NDI devices up and running, and managing them remotely
- Performance
- Runs like utter shit on our RPis – Low resolution mode must be used, and drops frames
- Runs pretty good on our Intel NUCs – Sometimes lag/frame drop on high res, but generaly works satisfiably, I have some theories on what's happening here
Sources
- The DistroAV project provides NDI plugins for OBS, with support for Windows, Linux, and MacOS.
The protocol itself
- 1080p60 can easily go up to 130 Mbps persistent throughput and 150 Mbps peaks –
Should wire up the LAG on the audio rack switchforgot that the access ports are 100 Mbps, need to use another switch - Hackeriet wifi introduces significant latency compared to other locations, even though it can handle the bandwidth. Old AP? Radio time congestion due to so many WiFi devices?
- Works fine for audio, but doesn't really help for most of our use cases there
Work so far
- Installed Dicaffeine on (wired networking expected):
ndi-nuc1
(mounted on Hackeriet TV)lydrack-pc
(currently unconnected)
- Setup:
- Ubuntu 22.04 (per deps, fixes appreciated)
- Hacker-ID SSO (group
project-avinfra
) - User
ndi-screen
- Timed autosign-in in GDM (10 secs, see
/etc/gdm3/custom.conf
) - Sway WM
- i3status with custom statusbar (IP + hostname + date)
- dicaffeine disabled on personal user (the post-install script is CURSED)
- dicaffeine enabled on
ndi-screen
- Custom wallpaper
/srv/hackeriet-wiki/dokuwiki/data/pages/infra/ndi.txt · Last modified: by d404d_idp.hackeriet.no