使用 v4l2loopback 设备我可以运行这两个虚拟设备:
a) 通过 USB 通过 v4l2loopback 从佳能 DSLR 运行预览图像到 OBS:
modprobe v4l2loopback
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc fd=0 ! decodebin name=dec ! queue ! videoconvert ! tee ! v4l2sink device=/dev/video0
在这里找到,并且有效。
b) 将 OBS 的输出流式传输到基于浏览器的会议系统中,如下所示:
modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1
在这里找到,这也有效。
但是,我需要同时运行a ) 和 b) ,这没有按预期工作。他们正在干扰,似乎他们正在使用相同的缓冲区,视频在两个制作人之间来回翻转。
我学到和尝试的:一个内核模块只能加载一次。可以使用命令卸载 v4l2loopback 模块modprobe -r v4l2loopback
。我不知道是否会忽略第二次加载它或卸载前一次。
我尝试将模块devices=2
作为选项以及不同的视频设备加载,但我找不到正确的语法。