使用带有 google-chrome 或 linux 上的 chromium 的 v4l2loopback 虚拟摄像头,同时使用真实网络摄像头

Using v4l2loopback virtual cam with google-chrome or chromium on linux while having real webcam in use

(我希望 post 对自己问题的回答不反对这里的服务条款,我之所以这样做是因为我在写这篇文章时发现了解决方案 post,并且广泛的谷歌搜索没有帮助,所以我希望我能帮助一些寻求解决方案的人。)

问题: Google chrome / chromium 不会打开 v4l2loopback 虚拟摄像头设备(不会访问它)并报告“没有可用的摄像头”,即使它已在设置页面中列出并 selected有时。

观察到的问题原因: (使用 OBS Cam Studio 时注意) Google chrome / chromium 如果发现真实的摄像头设备正在使用(忙碌),将不会访问(打开)虚拟摄像头设备。

解决方案(简短版):

sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1

(使用您发现物理网络摄像头的设备名称)

sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1

解决方案(长版): 逐步说明如何使 OBS Cam Studio 虚拟输出在 google chrome/chromium.

中可见
sudo modprobe -r v4l2loopback

(您需要停止任何虚拟摄像头馈送并停止使用虚拟摄像头的应用程序,否则您将收到 modprobe: FATAL: Module v4l2loopback is in use. 错误)

sudo modprobe v4l2loopback devices=1 video_nr=21 exclusive_caps=1 card_label="Virtual Webcam"

(此命令将创建一个名称为 /dev/video21 且名称(标题)为“虚拟网络摄像头”的环回设备) 命令的更简单版本,这真的很重要:

sudo modprobe v4l2loopback exclusive_caps=1
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1

(您的设备名称可能不同,可能只有其中一个) (如果你没有 sudo 访问权限并且你的相机是可插拔的,你可以拔掉它)

sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1

(如果您拔下网络摄像头,将其重新插入并(可能)在您的程序中重新打开它)

希望对我有所帮助,因为我挣扎了很长时间都没有效果 google chrome 在 OBS Cam Studio 中打开虚拟网络摄像头。

已编辑: 找到了基于类似原理的工作解决方案,它在这里:https://www.scs.stanford.edu/~dm/blog/hide-webcam.html 它从可见网络摄像头列表中隐藏了物理网络摄像头,因此您需要手动或在程序的配置设置中输入它的路径。

正在回答我自己的问题 post 以将其标记为“已回答”。