Основано на ответе @ The Eye
Я сначала установил пакеты gstreamer в Ubuntu 18.04
https://gstreamer.freedesktop.org/documentation/install/on-linux.html
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install
Я получил предупреждающее сообщение, как здесь, на Ubuntu 18.04 LTS https://github.com/umlaeute/v4l2loopback/issues/139 (но это не помешало мне загрузить драйвер v4l2loopback)
$ sudo depmod -a
У меня только одна веб-камера на моем ноутбуке / dev / video0, и я хотел получить 2 потока с одного и того же оборудования. Основано на https://github.com/umlaeute/v4l2loopback/blob/master/README.md
$ modprobe v4l2loopback devices=2
Теперь должно быть /dev/video1
и /dev/video2
создано, предполагая, что это /dev/video0
было единственное видеоустройство.
Теперь я запускаю следующее в одном окне терминала
gst-launch-1.0 v4l2src device=/dev/video0 ! tee name=t ! queue ! v4l2sink device=/dev/video1 t. ! queue ! v4l2sink device=/dev/video2
Я открываю еще 2 вкладки
В первой вкладке
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
Во второй вкладке
gst-launch-1.0 v4l2src device=/dev/video2 ! videoconvert ! ximagesink
Теперь нужно увидеть 2 видеопотока.
ОБНОВИТЬ
Даже если я использую одно и то же /dev/video1
устройство несколько раз, все это дает мне столько потоков. пример.
В первой вкладке
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
Во второй вкладке
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
На третьей вкладке
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
дает мне три потока.