Acessing Zoom Level

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message


  • Posts: 2
  • Joined: Tue Dec 11, 2018 3:50 pm
  • Real Name: Sean Con

Acessing Zoom Level

PostTue Dec 11, 2018 3:59 pm

Hello Everyone

I know that it is possible to query an atem switcher via UDP to get the list of configurations set forth by a camera control software.

For example, consider this:

Software on pc ----- sets color temp 5600 k ----> sends data via UDP ---> sends the data to atem mixer


second pc --- sends query to ATEM via UDP ---> atem
second pc <--- receives data from atem via UDP --- atem

now, i can get all the camera information by looking at the packets with CCdP marker inside it. If you have an array of bytes, such as CCdP {id} \x00\x00 , then the value of focus is on bytes 16 and 17, and ending with \x02 gives you iris.

Outdated documentation here : skaarhoj [dot] com/fileadmin/BMDPROTOCOL [dot] html

However, there is no way to access the zoom. Zoom would be \x00\x09 according to wireshark. However, there is no bytearray with CCdP{id}\x00\x09. Seems that the mixer does not specify that value.

What can I do to resolve this?
User avatar


  • Posts: 4224
  • Joined: Wed Jan 02, 2013 11:48 am
  • Location: The Netherlands

Re: Acessing Zoom Level

PostWed Dec 12, 2018 2:16 pm

You wont get any help here on the Atem protocol. As this protocol is propertary and BMD does not support anyone that tries to direct interface it.

There are options like using the Atem SDK if you want to write your own application on windows or mac.. ;) The SDK will handle all communication between the Atem and your application.
Daniel Wittenaar .:: Xtreemtec Media Productions ::. -= =-
4K OBV Trailer, ATEM TVS HD, 4M/E Broadcast Studio 4K, Constelation 8K, Hyperdeck Studio 12G, Ursa Broadcast 4K, 4K fiber converters with Sony Control

Ian Morrish

  • Posts: 426
  • Joined: Sun Jan 18, 2015 9:24 pm
  • Location: New Zealand

Re: Acessing Zoom Level

PostThu Dec 13, 2018 5:39 am

Although the ATEM implements the camera protocol which is documented in the camera manual for anyone to implement, the ATEM adds some extra functionality to "remember" what values have changed, where those change were initiated from something connected to the ATEM (BMD software, panels, 3rd party things using the official API).
This allows multiple client applications and control panels to "listen" for updates coming back from the atem when any individual app or panel makes a change, so they can all display the current setting.

The data must be there in the UDP stream but as Daniel says, not support and not guaranteed to follow a pattern the you expect to see.

I do know with the API that you have to register a callback to say what changes you are interested in updates for, otherwise nothing is "broadcast". I remember from writing my API based PowerShell interface for camera control that I could also change the frequency that data was resent to cameras (this overwrites any values that you might manually set through the camera interface).

There is no data ever read back from the camera though.
Ian Morrish
Video Integrated Scripting Environment
(Windows PowerShell with ATEM driver + more)

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 0 guests