Integrating an ATEM switcher with JustMacros and CasparCG

This video describes how I use JustMacros, CasparCG and our ATEM switcher to create a really powerful HD video playback solution at our church.

Download the scripts here:  scripts

(NOTE: I’ve extended the functionality of these scripts.  Please see this post for the new scripts.  You can still download the ones here that work just like in the video if you’d like.)

Feel free to download these scripts and modify them for your environment.  All I ask in return is that you leave a comment here and let me know where you’re using it!  Also, if you make any cool updates/additions to the scripts, let us know so we can take advantage of it as well.


The XKEYS XK-16 that I’m using:

The Blackmagic Mini Monitor SDI Card I’m using in the CasparCG video server:

The Blackmagic ATEM 2ME Switcher:

I’m playing back H.264 encoded mp4 videos.  These are my render settings in Premiere Pro CC:


What are your thoughts?  How are you using JustMacros and your ATEM switcher?


8 thoughts on “Integrating an ATEM switcher with JustMacros and CasparCG”

  1. Hey mate, thanks for the scripts! They are working awesome like. I made a couple of extras that simply allow me to move 1 clip forward or back, based on your scripts. All is working well!

    Are you still using these scripts yourselves or have you updated them to just use environment variables rather than txt files?

    At least I thought you could do the temp as an environment variable.

    My next challenge is getting flash templates to load, and working out how to use the mixer opacity in casper cg, but controlled by justmacros. Essentially i’d like to cross fade between 2 clips. Any tips let me know!

  2. Awesome work! Congratulations! Im from argentina and i have a blackmagic atem tv switcher. I am trying to get familiar with the casparcg and justmacross. Do you know if the atem tvs works with this two softwares? If so, how is the hardware conection? As you can see, i am a newbie trying to figure things out. Thanks in advance!

  3. Yes, JustMacros should work with the ATEM TVS switcher. Connect the switcher to a network, just like you do for software control, and make sure your JustMacros computer is on that network as well. You would connect the CasparCG output (usually a blackmagic I/O card in your computer) to one of the SDI inputs of your switcher. Good Luck! Also put the CasparCG computer on the same network so JustMacros can talk to it.

  4. I can’t seem to get it to work… If I execute Playlistplayback, it doesn’t play the video. The CasparCG server does communicate to JustMacros
    “Executed command: PlayCommand”
    “Sent message to 202 PLAY OK/r/n”
    But no video is playing…

    What am I doing wrong?

  5. Hello Maurits,
    Can you play the video “manually” through the casparCG client? Also, when you first start casparCG server, look in the log, do you see JustMacros query the file list? If communications between JustMacros and CasparCG are ok, you will see CasparCG list it’s video files at the end of the log after it starts up.

  6. Hello, BallastMedia!
    We are trying to do like you on this video
    But when we start commands: “CasparLoadToLayer(1, 1, 0, playbackName); CasparPlayLayer(1, 1, 0) – nothing happens.
    CasparCG writes in log: “recieved message from play 1-0\r\n
    Executed command: PlayCommand
    Send message to 202 play ok\r\n”
    We can play video manually, JustMacros query not in log file.

  7. Hello Tatiana,
    Not exactly sure what could be causing it with the amount of detail you have given. A couple things to check….
    1. Make sure you have the file name correct, and have not included the extension. You can put a VSLog(playbackName) in your script, which will output the file name to the screen in JM.
    2. Try closing both applications (JM & Caspar) and open JM first. Then open CasparCG. When Caspar is opened you should see in the Caspar log an INFO command request come in from JM. Caspar will return a list of media files in the media folder. Usually if this transaction happens it indicates that JM and Caspar are communicating ok with each other. Otherwise, if you don’t see this in the log, check your FIREWALL on both machines as it may be blocking communications.

    Hope that helps,

  8. Thanks so much for this overview Stephen. My church is working on a project so i went out and bought the ATEM switcher. I was having issues with playout and control. This will come in very handy.

Leave a Reply

Your email address will not be published. Required fields are marked *