首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行两个v4l2loopback设备及其各自的属性

运行两个v4l2loopback设备及其各自的属性
EN

Stack Overflow用户
提问于 2020-05-28 22:46:51
回答 2查看 7K关注 0票数 5

使用v4l2loopback设备,我可以运行这两个虚拟设备:

( a)通过USB通过v4l2loopback从佳能数码单反系统运行预览映像到OBS:

代码语言:javascript
复制
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的输出流到基于浏览器的会议系统中,如下所示:

代码语言:javascript
复制
modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1

找到这里,这也能用。

但是,我需要同时运行( a)和b) 并不像预期的那样工作。他们在干扰,似乎他们使用相同的缓冲区,视频之间来回翻转两个制片人。

我学到并尝试过的是:内核模块只能加载一次。可以使用命令v4l2loopback卸载modprobe -r v4l2loopback模块。我不知道是否第二次加载它将被忽略或卸载前一个。

我尝试过用devices=2作为选项和不同的视频设备加载模块,但是我找不到正确的语法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-29 22:21:00

从你的描述(“视频在两个制作者之间来回翻转”),似乎两个制作者都在给同一个视频设备写信。

要解决这个问题,您需要做两件事:

  • 创建2个视频设备
  • 告诉每个制片人使用他们自己的视频设备。

创建多个视频设备

作为记录在案,这可以通过在加载模块时指定devices=2来实现。

在调用modprobe时,这将意味着:

代码语言:javascript
复制
modprobe v4l2loopback devices=2 video_nr=10 card_label="OBS Cam" exclusive_caps=1

这将创建两个新设备,第一个将是/dev/video10 (因为您指定了video_nr),第二个将获得第一个免费视频设备。在我的系统上(它有一个同时占用/dev/video/dev/video1的摄像头),这是/dev/video2

告诉每个制作者使用他们自己的设备

那么,告诉一位制作人使用/dev/video10,另一位使用/dev/video2 (或任何您拥有的视频设备)。

例如:

代码语言:javascript
复制
gphoto2 --stdout --capture-movie | gst-launch-1.0 \
       fdsrc fd=0  \
       ! decodebin name=dec  \
       ! queue  \
       ! videoconvert  \
       ! tee  \
       ! v4l2sink device=/dev/video10

并将obs配置为使用/dev/video2

或者反过来。

只是不要对两位制片人使用相同的视频设备。(还要确保您的消费者使用正确的视频设备)

票数 6
EN

Stack Overflow用户

发布于 2020-10-24 21:47:48

既然有一个已经被接受的答案,我想你的问题已经解决了。然而,我还是个新手,即使在上面的答案(即如何设置video2)之后也无法设置语法。

在进行了更多的搜索之后,我找到了一个网站,它解释了如何通过一个示例添加多个设备。

modprobe v4l2loopback video_nr=3,4,7 card_label="device number 3","the number four","the last one"将创建3个设备,其中的卡名作为第二个参数传递:

  • /dev/video3->设备编号3
  • /dev/video4 ->,数字4
  • 最后一个是/dev/video7->

当我试图使用我的尼康相机作为网络摄像头和OBS作为流媒体虚拟相机时,完全控制我的视频设备的命名是很重要的。我希望这个答案也能对其他人有所帮助。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62075776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档