На основі відповіді @The Eye
Я вперше встановив пакети gstreamer на Ubuntu 18.04
https://gstreamer.freedesktop.org/documentation/installing/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/isissue/139 (але це не завадило мені завантажити драйвер v4l2loopback)
$ sudo depmod -a
У мене просто 1 веб-камера на ноутбуці / 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
дає мені три потоки.