亲爱的
我想使用下面的gstreamer立体声摄像机。
https://www.amazon.com/dp/B07C2NTMRC/
·项目名称: SVPRO 720p高清网络摄像头
·USB端口类型:USB 2.0
·分辨率:1080x720
我同时设置了两个外壳,以便同时从立体相机获得两个图像。
我尝试分别使用下面的代码同时获取每个右侧和左侧的摄像头图像。
###Stereo_Camera_Left###
#!/bin/bash
gst-launch-1.0 -e \
v4l2src device="/dev/video0" \
! decodebin \
! videoscale \
! videorate \
! capsfilter caps="video/x-raw,width=80,height=60,framerate=\(fraction\)2/1" \
! videoconvert \
! autovideosink
###Stereo_Camera_Right###
#!/bin/bash
gst-launch-1.0 -e \
v4l2src device="/dev/video1" \
! decodebin \
! videoscale \
! videorate \
! capsfilter caps="video/x-raw,width=80,height=60,framerate=\(fraction\)2/1" \
! videoconvert \
! autovideosink
但是,以下错误显示在左侧或右侧摄像机上。只能获取一张图片。
libv4l2: error turning on stream: No space left on device
0:00:05.092236993 6216 0x1202940 ERROR v4l2bufferpool gstv4l2bufferpool.c:635:gst_v4l2_buffer_pool_streamon:<v4l2src0:pool:src> error with STREAMON 28 (No space left on device)
0:00:05.092283101 6216 0x1202940 WARN v4l2bufferpool gstv4l2bufferpool.c:1054:gst_v4l2_buffer_pool_poll:<v4l2src0> error: poll error 1: No space left on device. (28)
0:00:05.092331654 6216 0x1202940 WARN v4l2src gstv4l2src.c:884:gst_v4l2src_create:<v4l2src0> error: Failed to allocate a buffer
0:00:05.092354187 6216 0x1202940 WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<v4l2src0> error: Internal data flow error
0:00:05.092362693 6216 0x1202940 WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<v4l2src0> error: streaming task paused, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not read from resource
Additional debug info:
gstv4l2bufferpool.c(1054): gst_v4l2_buffer_pool_poll (): /GstPipeline:pipeline
有没有办法同时获得这台立体摄像机的两张图像?
发布于 2019-06-25 17:00:59
这里有两种可能的方式:
1) BASH逻辑。通过末尾的&
在后台运行第一个命令,然后启动第二个命令。
gst-launch-1.0 -e v4l2src device="/dev/video0" ! decodebin ! videoscale ! videorate ! capsfilter caps="video/x-raw,width=80,height=60,framerate=\(fraction\)2/1" ! videoconvert ! autovideosink &
gst-launch-1.0 -e v4l2src device="/dev/video1" ! decodebin ! videoscale ! videorate ! capsfilter caps="video/x-raw,width=80,height=60,framerate=\(fraction\)2/1" ! videoconvert ! autovideosink
2)推荐的“更正确”的方法--把所有的逻辑放到一个管道中:
gst-launch-1.0 -e v4l2src device="/dev/video0" ! decodebin ! videoscale ! videorate ! capsfilter caps="video/x-raw,width=80,height=60,framerate=\(fraction\)2/1" ! videoconvert ! autovideosink v4l2src device="/dev/video1" ! decodebin ! videoscale ! videorate ! capsfilter caps="video/x-raw,width=80,height=60,framerate=\(fraction\)2/1" ! videoconvert ! autovideosink
发布于 2020-04-24 08:54:55
我用一个类似的立体相机也有类似的问题-设备上没有留下空间。我试图以640x480的分辨率拍摄视频。降低两个摄像头的捕捉宽度和高度(到320x240)解决了这个问题,我能够从立体摄像头同时获得视频。
我认为这个错误可能是设备USB带宽的限制。
https://stackoverflow.com/questions/56747082
复制相似问题