Мойка на виртуальное устройство v4l2 - PullRequest
1 голос
/ 23 марта 2020

Я попробовал пример в Ubuntu 19.04

gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video10

Но gstreamer не работает

Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Cannot identify device '/dev/video10'.
Additional debug info:
v4l2_calls.c(609): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
system error: No such file or directory
Setting pipeline to NULL ...
Freeing pipeline ...

Почему он не работает? Я не нашел этого в документации, мне нужно как-то создать / dev / video10?

Я сделал то же самое для устройства по умолчанию / dev / video1, но это устройство ввода камеры на моем ноутбуке :

sudo gst-launch-1.0 videotestsrc ! v4l2sink 
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Device '/dev/video1' is not a output device.
Additional debug info:
v4l2_calls.c(639): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
Capabilities: 0x4a00000
Setting pipeline to NULL ...
Freeing pipeline ...

Спасибо заранее.

1 Ответ

0 голосов
/ 23 марта 2020

Название ваших вопросов предполагает, что вы хотели бы написать на виртуальное видеоустройство. Устройства v4l2 могут быть как входными, так и выходными видеоустройствами. Ваша камера является устройством ввода / захвата видео. Направление v4l2sink (т.е. конечной точки конвейера) в gstreamer, скорее всего, завершится неудачей.

Однако вы можете создать виртуальное устройство вывода. То, что вы ищете, это что-то вроде устройства v4l2-loopback . Это позволяет вам создать виртуальное устройство /dev/video10, например:

modprobe v4l2loopback video_nr=10
...