Atem multicasting

autom zone

The Atem mini pro is a great little device, but if you use its HDMI output for the multiview, you can't access the program output locally, only stream to external services such as Youtube, Vimeo and Twitch. I decided to solve this by using a Raspberry Pi 4 as a RTMP server and from there multicast the video feed over the LAN using ffmpeg. This is how I did it.

Setting up nginx

Add the following to /etc/nginx/nginx.conf.

rtmp {
	server {
		listen 1935;
		chunk_size 4096;
		buflen 10ms;
		application live {
			live on;
			exec_push ffmpeg -i rtmp://localhost/live/nonsensekey -c:a mp3 -c:v copy -f mpegts udp://239.42.0.3:20000/;
			exec_push sapserver;
		}
	}
}

Testing

Connect to rtmp://[ip]/live/nonsensekey.

SAP server (optional)

/etc/sap.cfg

[global]
# Network interface and seconds between announcements, default 5.
interface=eth0
sap_delay=5

[program]
# One of these blocks for each of your programs
name=Audatorium 3
user=Name of Organisation
address=239.42.0.3
port=20000

Atem streaming configuration

As a closing note, I can greatly recommend using Open Switcher Control for remote control of your Atem device and extend my thanks to Martijn Braam for putting his time and effort into that project. The project's documentation also contains a reverse engineering of the network command protocol, which you might find useful for starting and stopping the stream remotely.