Canon DSLR Video loop back using v4l2loopback and EDSDK Liveview?
Asked Answered
T

4

4

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

Tripoli answered 5/9, 2012 at 9:50 Comment(2)
I know you mentioned Linux (and also that this is a four-year-old question), but I just did a Skype job interview a few days ago using my Canon DSLR as a webcam. This ($50) product runs on Windows, installs a virtual webcam driver, and pipes liveview frames to the webcam, presumably using EDSDK: sparkosoft.com/sparkocamSouthward
It also has some support for screensharing overlays, text/image overlays, etc.Southward
P
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

Postglacial answered 27/9, 2012 at 13:24 Comment(2)
I was able to use the libgphoto2 on linux with v4l2loopback to create a virtual camera form my DSLR, So the refine my question, if I create a v4l2loopback device on android other apps (Skype, Gtalk) see it as a camera or there is something more to be done? At the moment I have the HTC One-X without root so... I cant really test it...Tripoli
in theory yes; in practice i never checked whether v4l2loopback works on androidMoiramoirai
B
4

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
Bruns answered 3/10, 2017 at 12:59 Comment(2)
In 2020, this seems to fail with: ERROR: from element /GstPipeline:pipeline0/GstFdSrc:fdsrc0: Internal data stream error. Additional debug info: gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstFdSrc:fdsrc0: Missionary
Hello, this is what could fix it - modprobe v4l2loopback max_buffers=2. See also github.com/umlaeute/v4l2loopback/issues/…Footman
L
3

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).

Lindell answered 23/11, 2012 at 17:26 Comment(3)
To get back on the use of HDMI for liveview, it currently is low-res (sticks to res of the viewfinder) and it includes the HUD information (e.g. grid, exposure info). No clean signal that I could find (EOS 5d Mark II)Lindell
Guess this doesn't matter too much for Skype/GTalk as their resolutions are not so high anyway. Of course the result after transcoding is a bit better with a higher base resolution.Outplay
As of April 2013 there is "Clean HDMI Output" on the Canon EOS 5dMKIII , see linkLindell
P
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

Postglacial answered 27/9, 2012 at 13:24 Comment(2)
I was able to use the libgphoto2 on linux with v4l2loopback to create a virtual camera form my DSLR, So the refine my question, if I create a v4l2loopback device on android other apps (Skype, Gtalk) see it as a camera or there is something more to be done? At the moment I have the HTC One-X without root so... I cant really test it...Tripoli
in theory yes; in practice i never checked whether v4l2loopback works on androidMoiramoirai
H
1

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.

Handicap answered 24/8, 2015 at 12:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.