Project Space Media

From NURDspace
Jump to navigation Jump to search
Project Space Media
Status Active
Niche Infra
Tool No
Tool category

Project Space Media Property "Tool Image" (as page type) with input value "File:{{{Picture}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. {{{Picture}}} {{#if:No | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:No | [[Tool Cost::{{{Cost}}} | }}

A few of us want to update the media experience in the space with video. This project page is a consolidation of all things that are done, and need to be done. From cleaning the mediahoek to putting TVs in the space.


The proof of concept showed that this works and is possible. However, not everyone is happy with the current implantation of the system as it depends on a GUI. The question is, can we make the system to not be gui dependent?

SpaceTV = project of video at the space HarkTV = "Channel" that displays youtube videos etc as requested on IRC IRCTV = "Channel" that displays the IRC chat

Current setup


Right now the setup consists of two players (zaal 1, bar) and one streamer (spacesound). The streamer handles the rendering of the video along with the overlays and such. Right now, this is handled by OBS. While the media playing is handled by MPV. MPV simply goes full screen and obs captures the desktop. Which then gets streamed over the network using NDI.


Right now the project uses OBS as it allows for easy control and has a lot of functionality. For example, the websocket plugin allows for easy control over the scenes. Plugins, such as the browser plugin for example is being used to render the "Now playing" message. OBS does not generate that much more overhead when using in conjuction with NDI.


IRCtv itself is also a NDI stream. However, the stream comes from the tickerpi as the ircTV rendering itself is still handled by constatus. The tickerPI takes the mjpeg output and converts it to an NDI stream. The players are setup to use the irctv as a backup stream as well as get automatically switched to it when there is nothing on HarkTV


MPV has been choosen because it's a very decent mediaplayer that supports youtube links (yt-dlp) and other links directly out of the box (streaming them while playing). And with Python bindings, allows for very easy automatation. For example, !np for video, skipping and even playlist control. All of this directly from IRC.


Although proprietary, this protocl is very often used within the broadcasting world. And allows for a very low latency uncompressed stream with low cpu usage (both encoding and decoding). Using this in conjuction with Snapcast means that the A/V sync is generally pretty good. NDI allows for audio to be send as well which comes in use for zaal 1-mediahoek. Another nice feature is that when there is no client connected to the NDI stream, it wil not process the video at all. Meaning that when there's no client, there is no "encoding".


Right now spacesound, due to the use of GUI. Has a VNC server running for easy control over the interface. Since audio and video is more of a "userland" thing, rather than a system-wide task this choice had been made. As such, most audio services also run under the Nurds user so that e.g Pipewire did not have to be forced into submission to run under root. (And breaking other things not being able to access pipewire for example, a common issue on the previous spacesound that used pulseaudio.)

New setup / Update

If things are to be changed, I would like to be able to keep the same feature set. Basically, it needs to be a upgrade instead of a downgrade. We are still looking into possible methods, so please add them here if you have any.


If possible I'd love to stay with NDI as it's pretty low latency. For example, something like MPEG-DASH, RTMP, HLS likely introduces a too big of a latency (>= 1 second). One interesting protocol might be webrtc as it seems it's very low latency(?). We could also look into multicast with a low latency codec, or a carefully tuned H264/H265. Do note that the usage of for example H264 means MORE processing power to be needed on the player side. While we do have players that should allow HW decoding, the question is how well this would work.


One of the things we would love to be able to do is casting from someone's laptop (be it Mac, Windows, Android, Iphone or Linux) to SpaceTV. Possibly the easiest way to achieve this is through a hdmi capture device and a chrome cast.

Spacesound hardware

The hardware itself has being slightly unreliable at times. I'm planning on replacing it with a slightly newer generation NUC. r3boot also said to have some hardware available. We'd have to see if we can run spacesoudn in a VM with a passthrough (intel) gpu in that case

TODO list and other



  • Add the rear speakers
  • Look at the center speaker
  • Fix one of the channels being out of phase
  • Label HDMI inputs to the amp
  • Add (retro) game consoles?
  • Add a longer 3.5mm cable for audio to the amp
  • Look into better subwoofer placement
  • Adjust the EQing on the amp to be better
  • Look into if we can find a better way for the front speakers (e.g volume adjustment for both combined speakers)

TV zaal 1


  • Confirm if suspend and power back on with hass works properly

TV Bar


  • Confirm if suspend and power back on with hass works properly
  • Look at a better place to put the TV because people don't like the current location



  • Look into running difcaine on a rpi 3 b+