Author Topic: Host-controlled silent shooting  (Read 283 times)

mhier

  • New to the forum
  • *
  • Posts: 4
Host-controlled silent shooting
« on: September 12, 2019, 10:32:19 PM »
Hi,

I would like to use the silent shooting mode introduced with ML on my 7D from gphoto2 to shoot a series of pictures with a Python script. I also need to make sure that the picture was actually taken - relying on a remote cable which signals half-pressed shutters without confirmation that the picture was taken is not sufficient. Can I do this somehow? I managed to trigger a silent picture with "set-config autofocusdrive=1" followed by "set-config autofocusdrive=0", but I don't know when this is ready and I cannot find the recorded picture with gphoto2 on the sdcard (which would allow to verify it actually has been taken).

The background is: I want to digitize Super 8 films with single picture transfer. My setup is already working quite well, but right now I am using my new EOS RP camera and its pseudo silent shooting mode (aka focus stacking). Since I have lots of films to digitize, I would prefer using my 7D instead, so my main camera is free for normal use again :-) Also the smaller pixels of the 7D might actually help a bit with better resolution. I have a lots of pictures per film, I don't want any of them to be missing or duplicate in the end, so a reliable confirmation that a picture has been taken is vital. Also using the shutter is not an option, since we are talking about something like a million of pictures I have to take in total...  :o

Thanks for any help!
Martin

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 6839
Re: Host-controlled silent shooting
« Reply #1 on: September 13, 2019, 10:56:37 AM »
Most likely gphoto2 cannot find silent pic because it is labeled *.DNG.
You can work around this problem by forcing silent.mo to write DNGs labeled as CR2 by changing some strings in silent.c source code and compiling a custom build. dfort wrote some - pretty easy to follow - tutorials how to build up a development environment.
Photogs and videographers: Assist in proof reading upcoming in-camera help!. Your input is wanted and needed!

AF-OFF

  • Freshman
  • **
  • Posts: 94
  • 50Dc EOSM
Re: Host-controlled silent shooting
« Reply #2 on: September 13, 2019, 07:18:58 PM »
I want to digitize Super 8 films with single picture transfer.
Martin

Alternatively You can also save silent pics as MLV file. If used with Intervalometer or maybe a lua script  this would result in one MLV raw movie file. see MLV App also.

mhier

  • New to the forum
  • *
  • Posts: 4
Re: Host-controlled silent shooting
« Reply #3 on: September 16, 2019, 04:21:55 PM »
Thanks for the replies.

Most likely gphoto2 cannot find silent pic because it is labeled *.DNG.
You can work around this problem by forcing silent.mo to write DNGs labeled as CR2 by changing some strings in silent.c source code and compiling a custom build. dfort wrote some - pretty easy to follow - tutorials how to build up a development environment.
That could work. I would have to name the file following the usual Canon naming scheme, e.g. IMG_0001.CR2 etc. I think I can even work with a fixed file name, if I simply download the photo and then delete it from the card. I will checkout the source code now :-)

Alternatively You can also save silent pics as MLV file. If used with Intervalometer or maybe a lua script  this would result in one MLV raw movie file. see MLV App also.
Interesting idea, but I could not synchronise the intervalometer or lua script with my projector, or is there some trick to communicate with the outside world? Also, the MLV file would be way too big for any CF card: The long films have around 20000 images, in full-res this would be around 600 GB.  :o

mhier

  • New to the forum
  • *
  • Posts: 4
Re: Host-controlled silent shooting
« Reply #4 on: September 16, 2019, 11:01:53 PM »
Ok, I managed to hack ML to save the DNG file with a CR2 extension. Still the image doesn't show up on gphoto2. Only after rebooting the camera they are visible. It seems there is some internal book keeping of recently taken pictures which is not properly taken care of. Any ideas?

Btw: For normal pictures, gphoto2 can capture and download images directly without saving them to CF card. Would this somehow be possible even for silent pics (with hacking the ML firmware of course)? This would dramatically speed up things - saving the 32 MB DNG file to my CF card takes something like 3 seconds. This is way too long for my purpose... I know in principle C well enough for things like this, but I would need some hints where to start looking and if this is even possible at all...

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12280
  • Emergencies only
Re: Host-controlled silent shooting
« Reply #5 on: September 17, 2019, 08:39:41 AM »
Indeed, there is a "catalog" of pictures, updated by Canon firmware as pictures are taken. ML doesn't touch it (at the time of writing). Figuring it out will require significant reverse engineering efforts, as the image capture code is not very simple.

Saving directly to USB is probably doable, wasn't explored, requires reverse engineering. One has to figure out how it works with gphoto2 (maybe with this or this), then mimic that behavior. There is a third drive configured in Canon firmware (C:) besides CF (A:) and SD (B:), that probably works for this purpose; I've never tried it.

Regarding speed - saving MLV is a lot faster. With uncompressed 14-bit DNG, most of the time is spent fixing the byte order required by the DNG spec (i.e. swapping every two bytes over the entire image, on a slow general-purpose CPU). With MLV, you offload that task to your PC, which is much faster. You also get the entire movie in a single file.

Of course, the fastest option is lossless DNG (ideally in video mode, aka full-res LiveView, with every frame triggered by half-shutter), but none of these features are working on 7D, and are probably not straightforward to implement.

mhier

  • New to the forum
  • *
  • Posts: 4
Re: Host-controlled silent shooting
« Reply #6 on: September 17, 2019, 05:27:16 PM »
Is there a tutorial how to enable those logging functions you mention? The posts you were linking didn't really explain how to do this, at least not in a way some newbie like me would understand :-)