The HyperDeck is more than just a media player. It can record and playback video. One nice feature is that when connected to an ATEM switcher, if the HyperDeck output is live (on program), it will immediately start playing the loaded video clip.
This feature is interesting! Because with a regular computer connected to the ATEM, you both need to press play and change the video input on the player at the same time.
I wanted a HyperDeck for our livestream set-up, because we need to playback a pre-recorded video from time to time. The recording feature we don’t need. However, at $695 it would be quite an expensive media player.
Then I wondered, is there a way to use a computer instead and automate the switching?
It seems there is! When you install the open source video player VLC, one can mimic this feature from the HyperDeck using macros.
The ATEM mini works great with a Stream Deck. The Stream Deck can be used to send macro’s to the ATEM but also to other devices. In addition, you don’t need the hardware panel to use the software. Bitfocus Companion can be used without the physical panel, using just a web browser.
Bitfocus Companion can communicate with an ATEM mini and VLC. It is thus possible to control VLC on a computer in the same network, with Companion. Great!
Another great feature is that Companion can control VLC on another computer in the same network.
We want a playlist for VLC. Fortunately, the video player has this functionality built-in! You can easily create a playlist in VLC. Just press CTRL + L to open a new playlist. Add video clips and done!
Playlists can be saved to an XSPF file. XSPF files are just XML files that can be edited with any code editor, like VS Code or Notepad++. This means that you can remotely add files and update the XSPF file.
It is also easy to open VLC loaded with a pre-made playlist. Here is a Batch script for Windows.
C:\Program Files\VideoLAN\VLC\vlc.exe playlist.xspf --extraintf=http --fullscreen
This script starts a full screen instance of VLC and enables the Web interface. The Web interface is required to let Companion control VLC.
You can also quit VLC from a Batch script. Note that you must enable “Allow only one instance” in the preferences for this to work.
To quit VLC:
C:\Program Files\VideoLAN\VLC\vlc.exe vlc://quit
Okay, now we can start VLC with a playlist and close it again with scripts.
Control VLC remotely
Let’s configure Companion to control VLC (remotely).
In Companion, go to Instances and add a new module called vlc. Search for VideoLAN if you can’t find it. If VLC will be run from the same computer as companion, use Target IP 127.0.0.1. The default Web interface port for VLC is 8080. Change the Target IP if VLC is installed on another computer.
I suggest using separate computers: one for Companion (and other control software) and one that runs VLC and is connected to the ATEM switcher.
Next, navigate to Buttons. Click an empty button and create a new button of type Regular button.
In the Key down/on action, add a new action called vlc: Play ID. The parameter Clip Nr is the clip offset in the playlist that is loaded in VLC.
Important remark! For some reason, the Clip Nr of the first clip is 4. Hence, the Clip Nr for the second clip is 5, for the thirds clip it is 6, and so on.
Now you can add as many buttons as your playlist is long. I created 15 buttons. If you click a button for which the Clip Nr does not exist, it will just play the first clip in the playlist.
To play the first clip in the playlist, simply press the button for Clip Nr 4. To play the second clip in the playlist, press the button for Clip Nr 5.
For the best results, connect the computer to the ATEM using display extend mode. Move the VLC window to the extended display, a.k.a. the ATEM input and go full screen. Or, if the computer is remote and only used for VLC output, use a single display.
Bonus: to disable the clip name at the beginning of a clip, go to Preferences > Subtitles / OSD and disable On Screen Display.
Display VLC clip
Okay, we can now control VLC. The other part is to control the ATEM mini to switch to the program to the computer output, where the VLC videos will be displayed. The idea is that when a clip is played, the ATEM switcher automatically displays it on-air or in the program out.
Go to Companion and navigate to Instances. Add a new module called atem. Search for Blackmagic Design ATEM if you can’t find it.
Next, navigate to Buttons. Click one of the play clip buttons you created before. In the Key down/on action section, add a new action below the vlc: Play ID action. Add: atem Set input on Program. In the parameter field, change Input to the input to which the computer with the VLC player is connected. Do this for every button you created.
Control VLC remotely — summary
So this is how it works:
- Open VLC and prepare playlist
- Full screen VLC
- Open Bitfocus Companion
- Connect ATEM mini to the same network!
- Use the buttons in Companion to play a video clip in the playlist and automatically switch to the media player
Does VLC not react to the commands? Verify that the Web interface is active. See: View > Add Interface > Web.
Optionally you can also create a Stop vlc: Stop and Play/Resume vlc: Pause / Resume button in Companion.
Open VLC remotely
We can also create a button in Companion to start VLC and quit VLC. Add a new button with action internal: Run shell path (local) and add the path to the .bat script that holds the open/close script.
Upload media & change playlist remotely
The FTP functionality can be mimicked by installing an FTP server, like FileZilla Server (Windows Only), on the computer that runs VLC and use an FTP client, like FileZilla to upload clips and edit the playlist.
To just edit the playlist, VS Code ftp-simple plugin can be used to update the XSPF file.
Voila, you have created a free HyperDeck Studio Mini alternative using open source software and a computer.