Issue with capturing from soft/virtual camera using ksvideosrc

Oleg Guschin oleg.guschin at gmail.com
Thu Nov 12 03:51:42 PST 2015


Hi guys,

I'm trying to capture video from software/virtual camera in Wndows7 (64 bit
if it makes sense) using ksvideosrc but faced an issue. I have got
GStreamer 1.6.0 and ManyCam (https://manycam.com/) as "virtual" camera. My
test pipeline and result output is like below:












*gst-launch-1.0.exe -v ksvideosrc device-index=1 ! videoconvert !
autovideosinkSetting pipeline to PAUSED ...Pipeline is live and does not
need PREROLL ...ERROR: from element
/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0: Internal data flow
error.Additional debug info:gstbasesrc.c(2943): gst_base_src_loop ():
/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0:streaming task paused,
reason not-negotiated (-4)ERROR: pipeline doesn't want to preroll.Setting
pipeline to PAUSED ...Setting pipeline to READY ...Setting pipeline to NULL
...Freeing pipeline ...*

With debug logs for ksvideosrc I see that the gst_ks_video_src_set_caps()
function returns 0 indicating that caps setting failed for some reason (if
I read code right).


























*gst-launch-1.0.exe -q ksvideosrc device-index=1 ! videoconvert !
autovideosink0:00:00.170741390  2160 00000000029C6600 DEBUG
ksvideosrc gstksvideosrc.c:436:gst_ks_video_src_open_device:<ksvideosrc0>
device 0: name='USB Camera'
path='\\?\usb#vid_0c45&pid_62f1&mi_00#6&21e90d16&0&0000#{6994ad05-93ef-11d0-a3cc-00a0c9223196}\global'0:00:00.177066690
2160 00000000029C6600 DEBUG             ksvideosrc
gstksvideosrc.c:436:gst_ks_video_src_open_device:<ksvideosrc0> device 1:
name='ManyCam Virtual Webcam'
path='\\?\root#image#0000#{6994ad05-93ef-11d0-a3cc-00a0c9223196}\global'0:00:00.181950133
2160 00000000029C6600 WARN              ksvideosrc
gstksvideosrc.c:464:gst_ks_video_src_open_device:<ksvideosrc0> failed to
create/open KsClock0:00:00.185082158  2160 00000000029C6600
DEBUG             ksvideosrc
gstksvideodevice.c:344:gst_ks_video_device_dump_supported_property_sets:
filter supports 4 property sets0:00:00.188850852  2160 00000000029C6600
DEBUG             ksvideosrc
gstksvideodevice.c:348:gst_ks_video_device_dump_supported_property_sets:
[0] KSPROPSETID_VIDCAP_VIDEOPROCAMP0:00:00.192849978  2160 00000000029C6600
DEBUG             ksvideosrc
gstksvideodevice.c:348:gst_ks_video_device_dump_supported_property_sets:
[1] KSPROPSETID_VIDCAP_VIDEOCONTROL0:00:00.197922799  2160 00000000029C6600
DEBUG             ksvideosrc
gstksvideodevice.c:348:gst_ks_video_device_dump_supported_property_sets:
[2] KSPROPSETID_VIDCAP_VIDEODECODER0:00:00.202691688  2160 00000000029C6600
DEBUG             ksvideosrc
gstksvideodevice.c:348:gst_ks_video_device_dump_supported_property_sets:
[3] KSPROPSETID_VIDCAP_VIDEOCOMPRESSION0:00:00.207334435  2160
00000000029C6600 DEBUG             ksvideosrc
ksvideohelpers.c:418:ks_video_probe_filter_for_caps: pin_count =
10:00:00.210116176  2160 00000000029C6600 DEBUG             ksvideosrc
ksvideohelpers.c:437:ks_video_probe_filter_for_caps: pin[0]: pin_comm=3,
pin_flow=20:00:00.213616032  2160 00000000029C6600 DEBUG
ksvideosrc gstksvideodevice.c:415:gst_ks_video_device_open: pin[0]: found
media type: video/x-raw, format=(string)RGBx, width=(int)[ 160, 1920 ],
height=(int)[ 120, 1440 ], framerate=(fraction)[ 0/1, 60/1 ],
pixel-aspect-ratio=(fraction)1/10:00:00.228354760  2160 00000000029C6600
DEBUG             ksvideosrc
gstksvideodevice.c:415:gst_ks_video_device_open: pin[0]: found media type:
video/x-raw, format=(string)RGBx, width=(int)[ 160, 320 ], height=(int)[
120, 240 ], framerate=(fraction)[ 0/1, 60/1 ],
pixel-aspect-ratio=(fraction)1/10:00:00.248404687  2160 00000000029CE240
DEBUG             ksvideosrc
gstksvideosrc.c:803:gst_ks_video_src_unlock_stop:<ksvideosrc0>
gst_ks_video_src_unlock_stop0:00:00.248566254  2160 00000000029C6640
DEBUG             ksvideosrc gstksvideosrc.c:726:gst_ks_video_src_set_caps:
Result is 0ERROR: from element
/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0: Internal data flow
error.Additional debug info:gstbasesrc.c(2943): gst_base_src_loop ():
/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0:streaming task paused,
reason not-negotiated (-4)0:00:00.308858400  2160 00000000029CE240
DEBUG             ksvideosrc
gstksvideosrc.c:791:gst_ks_video_src_unlock:<ksvideosrc0>
gst_ks_video_src_unlock0:00:00.325522363  2160 00000000029CE240
DEBUG             ksvideosrc
gstksvideosrc.c:791:gst_ks_video_src_unlock:<ksvideosrc0>
gst_ks_video_src_unlock0:00:00.330988839  2160 00000000029CE240
DEBUG             ksvideosrc
gstksvideosrc.c:803:gst_ks_video_src_unlock_stop:<ksvideosrc0>
gst_ks_video_src_unlock_stop*

I have tried to set caps explicitly but with no success.












*d:\gstreamer-1.6.1-64\1.0\x86_64\bin>gst-launch-1.0.exe -v ksvideosrc
device-index=1 ! video/x-raw, format=RGBx, width=320, heigh=240,
framerate=30/1, pixel-aspect-ratio=1/1 ! videoconvert !
autovideosinkSetting pipeline to PAUSED ...Pipeline is live and does not
need PREROLL ...ERROR: from element
/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0: Internal data flow
error.Additional debug info:gstbasesrc.c(2943): gst_base_src_loop ():
/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0:streaming task paused,
reason not-negotiated (-4)ERROR: pipeline doesn't want to preroll.Setting
pipeline to PAUSED ...Setting pipeline to READY ...Setting pipeline to NULL
...Freeing pipeline ...*

At the same time I can capture video from real USB camera with no issues.





















*gst-launch-1.0.exe -v ksvideosrc device-index=0 ! video/x-raw,
format=YUY2, width=320, heigh=240, framerate=30/1, pixel-aspect-ratio=1/1 !
videoconvert ! autovideosinkSetting pipeline to PAUSED ...Pipeline is live
and does not need PREROLL ...Setting pipeline to PLAYING ...New clock:
GstSystemClock/GstPipeline:pipeline0/GstKsVideoSrc:ksvideosrc0.GstPad:src:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad0:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo.GstPad:sink:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
heigh\=\(int\)240"/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink:
caps = "video/x-raw\,\ format\=\(string\)YUY2\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ heigh\=\(int\)240"ERROR: from
element
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo:
Output window was closedAdditional debug info:d3dhelpers.c(1851):
d3d_render_buffer ():
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideoExecution
ended after 0:00:07.170325221Setting pipeline to PAUSED ...Setting pipeline
to READY ...Setting pipeline to NULL ...Freeing pipeline ...*

Can you guys help me with this, please?

Thanks,
Oleg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20151112/8322fd45/attachment-0001.html>


More information about the gstreamer-devel mailing list