jbaiter / gphoto2-cffi

Python bindings for libgphoto2 with an idiomatic API
GNU Lesser General Public License v3.0
38 stars 17 forks source link

Support live capture #1

Open sontek opened 9 years ago

sontek commented 9 years ago

With gphoto2 I can do:

gphoto2 --stdout --capture-movie

to capture a video of a live preview, can you support this in the binding?

jbaiter commented 9 years ago

This is actually already supported if you use a Nikon camera: http://gphoto2-cffi.readthedocs.org/en/latest/#gphoto2.gphoto2.Camera.capture_video

Since I don't have a Canon camera to test with, I couldn't implement/test it for those models, but it shouldn't be too hard.

As a workaround, you could continuously call dev.get_preview() and then stitch together the frames to a video clip. This will probably have a rather low framerate, but maybe that'd be enough for your use case?

sontek commented 9 years ago

I'm using a canon but I'll test the capture_video and let you know how it works

vladdders commented 5 years ago

Hi, I am having the same issue, I am using a Canon 650D and I am starting a process: gphoto2 --capture-movie --stdout in python which further captures the frames. However, I would like to know if you added live capture support for Canon cameras, as I would prefer to use Python objects instead of using processes.

I am using the following:

gphoto2         2.5.23.1       gcc, popt(m), exif, no cdk, no aa, jpeg, readline
libgphoto2      2.5.23.1       all camlibs, gcc, ltdl, EXIF
libgphoto2_port 0.12.0         iolibs: disk ptpip serial usb1 usbdiskdirect usbscsi, gcc, ltdl, USB, serial without locking

and

gphoto2-cffi==0.4.2

When listing the supported operations for my camera print(camera.supported_operations) I get:

(<CameraOperations.capture_image: 1>, <CameraOperations.capture_preview: 8>, <CameraOperations.update_config: 16>, <CameraOperations.trigger_capture: 32>)

Clearly, the capture_video option doesn't seem to be among the supported operations. Is there a workaround for this?

Much appreciated.