Open Switcher is a control application for the Blackmagic Design ATEM video switchers. These are normally controlled with the propriatary Windows or Osx application over a network connection. In some cases it's also possible to control these switchers using hardware buttons but that doesn't expose the full functionality of these mixers.
Switcher Control is a re-implementation that aims to be as close to the supported features of ATEM Software Control as possible. Getting to 100% compatabilty would be quite hard since it exposes quite a lot of extra functionalities for specific models of mixers which would be technically difficult to implement or hard to do due to lack of access to the more expensive hardware.
Implemented features
- Connecting to multiple models of ATEM switchers
- Program/Preview bus control and transition control
- Support for the upstream and downstream keyers
- Seperate layout editor to visually position DVE keyers
- Color generator with native colorpicker dialog
- The atem audio mixer is fully implemented and fairlight audio has the volume controls working
- The space/enter/ctrl+number and number shortcuts work, and alt+number is added to do an auto transition to a specific source
- The livestream and recording controls for the ATEM Mini series is implemented
Layout editor
The layout editor lets you quickly position upstream and downstream keys. For upstream keyers the DVE transform can be controlled and for the downstream keys only the masking can be set.
The squares on the edge of a keyer allow resizing one or two of the parameters of the DVE position and size. The rectangles on the edges control the masking values for the keyer and with the square in the center the whole key can be moved around.
When ctrl is held when dragging the center square the source of the key is moved while the bounding box on the output is kept the same as much as possible by doing the inverse manipulation on the masking edge.
AUX bus control
On the output panel the aux output control exposes a few extra options not present in the official ATEM software.
The "Show as bus" option makes an AUX output appear as an extra bus beside the normal program and preview bus. This allows quickly controlling the video output for that AUX bus without having to manipulate the bus with a dropdown.
The "Follow audio monitor bus" feature makes an AUX output act like a monitor bus for the audio mixer page. Not all ATEM devices have an audio monitor output and this allow using an SDI audio de-embedder to get something close anyway. This has the downside of not working with any sources on the audio mixer that cannot be routed to an AUX like analog audio inputs.
Connection options
The connection dialog in OpenSwitcher has a few extra features over the normal one. It shows the IP address and firmware version of the hardware in the local network in a single view and lists connected USB hardware when available.
The proxy option lets you connect to an OpenSwitcher proxy server. The proxy module can run headless on something like a raspberry pi and provides a TCP version of the protocol that adds authentication and multiplexing on top of the base protocol.
With the proxy protocol it's possible to easily control atem hardware remotely in a more secure way. With only a single open port it's possible to control an unlimited amount of hardware. This is a great alternative to having VPN connections set up for tunneling the UDP lan protocol from the official software. The proxy protocol can also be used over a VPN for extra security ofcourse.
Installation
OpenSwitcher is packaged in various Linux distributions:
Distribution | GTK Application | Python library |
---|---|---|
Alpine Linux | openswitcher | py3-pyatem |
Archlinux | openswitcher-git | openswitcher-git |
Debian 12+ | openswitcher | python3-pyatem |
Ubuntu 23.04+ | openswitcher | python3-pyatem |
NixOS | openswitcher | python3Packages.pyatem |
Switcher Control can be installed from source or as flatpak. Flatpak installation:
Install Flatpak (experimental) Install Flatpak (stable)
The experimental branch includes every feature as soon as it's done and the stable branch gets the new versions after the new version has been verified to work in production.
$ flatpak remote-add openswitcher https://flatpak.brixit.nl/brixit.flatpakrepo # For the experimental builds: $ flatpak install https://flatpak.brixit.nl/switcher.flatpakref # For stable builds: $ flatpak install https://flatpak.brixit.nl/switcher-stable.flatpakref
Windows test builds
There are experimental windows builds now. These can be downloaded from this Github release page: github.com/MartijnBraam/pyatem-win/releases
Development
Development for this application happens on Sourcehut and Matrix:
- Source code https://git.sr.ht/~martijnbraam/pyatem
- Mailing list https://lists.sr.ht/~martijnbraam/openatem
- Matrix chat #openatem:brixit.nl
- Protocol documentation https://docs.openswitcher.org/
Donations
Building the ATEM Python library and the OpenSwitcher application takes a lot of time. If OpenSwitcher has helped your production and want to help out the software development financially you can donate on the services below:
- Patreon patreon.com/martijnbraam
- Liberapay liberapay.com/MartijnBraam