(我希望在这里发布自己问题的答案不违反 TOS,我之所以这样做是因为我在写这篇文章时发现了解决方案,大量的谷歌搜索没有帮助,所以我希望我可以帮助一些寻找解决方案的人.)
问题: Google chrome / Chromium 不会打开 v4l2loopback 虚拟摄像头设备(不会访问它)并报告“没有可用的摄像头”,即使它有时会在设置页面中列出和选择。
观察到的问题原因: (使用 OBS Cam Studio 时注意) 如果发现真实相机设备正在使用中(忙碌),Google chrome/chrome 将不会访问(打开)虚拟相机设备。
解决方案(简短版本):
ls /dev/video*
的结果,连接它,然后再次尝试ls /dev/video*
查看出现了哪些设备(在我的例子中是 /dev/video0
和 /dev/video1
) - 在大多数情况下是 /dev/video0
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
(如果您拔掉网络摄像头,将其插回并(可能)在您的程序中重新打开它)
我希望它有所帮助,因为我在 OBS Cam Studio 中努力使 google chrome 打开虚拟网络摄像头没有效果。
已编辑: 找到了基于类似原理的工作解决方案,它在这里:https://www.scs.stanford.edu/~dm/blog/hide-webcam.html 它会从可见网络摄像头列表中隐藏物理网络摄像头,因此您需要手动或在程序的配置设置中输入它的路径。
答案 0 :(得分:0)
回答我自己的帖子以将其标记为“已回答”。