Controlling DSLR settings

I’m attempting to use my DSLR (Canon 80D) as a video-in device in an attempt to establish closed-loop colour calibration. Using the EOS Webcam utility via a Video-In TOP, I found that the gain settings were not favourable i.e. too high, and the image was saturated. I’m searching for a way to control these - directly through TD would be great, but not essential.

I’ve tried

  • Disconnect camera and manually change settings. Appears to have no effect, but I can’t read the settings in TD.
  • Connect and try to use EOS utility simultaneously with TD. These seem incompatible: If I start TD and connect a video-in TOP, then start the EOS utility, it can’t find the camera, even after quitting TD.
  • Conversely, if I start the EOS utility, it can find the camera and change settings, but as soon as I connect a video in TOP to the webcam utility, the EOS utility no longer works (the program runs and the GUI responds, but the settings on the camera won’t change). Deleting the node or even quitting TD does not recover functionality of the EOS utility.

It appears that TD is ‘stealing’ the device driver somehow and that the EOS utility won’t find it after it’s gone. This seems like an interaction effect, with each software having its own cause, as this is probably not an intended use-case.

My ideal scenario is that either they can work in tandem (but this probably means changing the EOS utility which is outside of Derivative’s powers), or that TD can control camera settings. This sounds like a pretty significant task though.

On the other hand, I wonder whether there is a known or feasible solution with some third-party tools. For example, if there is a Python library that could control the webcam and also stream to TD? I know not of such things but would be happy to have a crack if the tools (if not the whole solution) are out there.

A quick google reveals that there are many tools in the world (for eg here, here, here, and here, but the latter requires access to the canon SDK which seems pretty carefully gate-kept.): I would be grateful to hear from anyone with experience using them as to what is the better place to start.

Hi,

See here regarding Canon’s CCAPI and existing Python libraries.

Hope this helps!

To control your Canon 80D settings while streaming to TouchDesigner, try using third-party tools like gPhoto2 or digiCamControl via Python scripts. These tools allow you to manage camera settings and integrate them with TouchDesigner, overcoming the limitations of the EOS Webcam utility and enabling better control over gain and image quality.