Как получить два изображения с стерео камеры одновременно? - PullRequest
0 голосов
/ 25 июня 2019

Уважаемые

Я хотел бы использовать следующие стереокамеры с gstreamer.

https://www.amazon.com/dp/B07C2NTMRC/

・ Название элемента: Веб-камера HD SVPRO 720p

Type Тип порта 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

Есть ли способ получить два изображения с этой стереокамеры одновременно?

1 Ответ

0 голосов
/ 25 июня 2019

Здесь возможны два пути:

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