问题
I want to use my DSLR camera as video input for let say Skype / Google talk under Linux and Android.
Is it possible to create a video loop back using v4l2loopback and Canon EDSDK ? how can I pipe the liveview buffer from the camera to the video loop back ?
Thanks
回答1:
you will need a "producer" application, that writes frames to the loopback device (and which has previously acquired those frames via the canon esdk)
v4l2loopback already comes with a few simple producer examples, and you could have a look at other applications that already have native v4l2loopback output support, e.g. Gem, lives, gmerlin and gstreamer
回答2:
To my understanding Canon's EDSDK is still only available upon request for the Windows and OSX platform (C and Objective-C). On linux, you might want to try and install the SDK under Wine, or resort to a more general purpose gPhoto. Now, the "LiveView" or "EvF" images are individual JPG's. Alternatively, you might want to capture this through the HDMI output port (which will be full res on the EOS 5D Mark III in Spring 2013).
回答3:
As of October 2017, GStreamer has been updated to 1.0 and v4l2loopback has also received some updates.
As such, the old command posted by @Reinaert Albrecht doesn't work anymore, and the new command that works now is:
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc fd=0 ! decodebin name=dec ! queue ! videoconvert ! tee ! v4l2sink device=/dev/video0
decodebin2
has been replaced bydecodebin
ffmpegcolorspace
has been replaced byvideoconvert
- the
tee
filter has been added to account for a bug in the v4l2loopback driver (see: https://github.com/umlaeute/v4l2loopback/issues/83)
回答4:
You can easily do this with the following commands:
modprobe v4l2loopback
And then issue this:
gphoto2 --stdout --capture-movie | gst-launch-0.10 fdsrc ! decodebin2 name=dec ! queue ! ffmpegcolorspace ! v4l2sink device=/dev/video0
Change the video device appropriately.
来源:https://stackoverflow.com/questions/12278688/canon-dslr-video-loop-back-using-v4l2loopback-and-edsdk-liveview