使用带有 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 如果发现真实的摄像头设备正在使用(忙碌),将不会访问(打开)虚拟摄像头设备。
解决方案(简短版):
- 找出你的物理网络摄像头是哪个设备(可能是多个设备)如果你的摄像头是可插拔的你可以断开它,然后观察
ls /dev/video*
的结果,连接它,然后尝试ls /dev/video*
再次查看出现了哪些设备(在我的例子中是 /dev/video0
和 /dev/video1
)- 在大多数情况下它将是 /dev/video0
- 启动您的捕获程序(使用物理网络摄像头并输出到虚拟相机的程序)并使其输出到虚拟相机(虚拟相机必须输入输入才能由 chrome 打开)
- 禁用对物理网络摄像头的访问,这(在我的情况下)可以通过以下方式完成:
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1
(使用您发现物理网络摄像头的设备名称)
- 在googlechrome/chromium中开始视频捕获(通过打开网页或按某种“启动网络摄像头”,这取决于网页)
- 您现在应该在 chrome 中看到虚拟摄像头画面
- 启用对物理网络摄像头的访问,完成(在我的情况下):
sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1
- 大功告成!在网络上玩得开心!
解决方案(长版):
逐步说明如何使 OBS Cam Studio 虚拟输出在 google chrome/chromium.
中可见
- 如果您还没有这样做,请卸载 v4l2loopback 模块(如果您不知道“exclusive_caps”参数,请卸载):
sudo modprobe -r v4l2loopback
(您需要停止任何虚拟摄像头馈送并停止使用虚拟摄像头的应用程序,否则您将收到 modprobe: FATAL: Module v4l2loopback is in use.
错误)
- 加载 v4l2loopback 模块(仅“exclusive_caps”参数重要):
sudo modprobe v4l2loopback devices=1 video_nr=21 exclusive_caps=1 card_label="Virtual Webcam"
(此命令将创建一个名称为 /dev/video21
且名称(标题)为“虚拟网络摄像头”的环回设备)
命令的更简单版本,这真的很重要:
sudo modprobe v4l2loopback exclusive_caps=1
- 启动使用您的物理网络摄像头并输出到虚拟网络摄像头设备(在我的例子中是 OBS Cam Studio)的视频捕获程序 - 物理网络摄像头现在应该很忙(正在使用)并且应该为虚拟网络摄像头提供输入(重要)
- 禁用物理网络摄像头设备访问(在我的例子中):
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1
(您的设备名称可能不同,可能只有其中一个)
(如果你没有 sudo 访问权限并且你的相机是可插拔的,你可以拔掉它)
- 开始使用带有 google chrome 或 chromium 的网络摄像头(进入网页并在其上打开网络摄像头,例如通过网页上的“使用我的网络摄像头”按钮 - 它是不同的从一页到另一页)
- 您现在应该可以看到虚拟网络摄像头(如果没有,请单击地址栏右侧的摄像头图标,单击“管理”,然后在设置中按名称 select 您的虚拟网络摄像头,让网页使用又是网络摄像头)
- 启用物理网络摄像头设备访问(在我的例子中):
sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1
(如果您拔下网络摄像头,将其重新插入并(可能)在您的程序中重新打开它)
- 在 chrome!
中享受虚拟网络摄像头
希望对我有所帮助,因为我挣扎了很长时间都没有效果 google chrome 在 OBS Cam Studio 中打开虚拟网络摄像头。
已编辑:
找到了基于类似原理的工作解决方案,它在这里:https://www.scs.stanford.edu/~dm/blog/hide-webcam.html
它从可见网络摄像头列表中隐藏了物理网络摄像头,因此您需要手动或在程序的配置设置中输入它的路径。
正在回答我自己的问题 post 以将其标记为“已回答”。
(我希望 post 对自己问题的回答不反对这里的服务条款,我之所以这样做是因为我在写这篇文章时发现了解决方案 post,并且广泛的谷歌搜索没有帮助,所以我希望我能帮助一些寻求解决方案的人。)
问题: Google chrome / chromium 不会打开 v4l2loopback 虚拟摄像头设备(不会访问它)并报告“没有可用的摄像头”,即使它已在设置页面中列出并 selected有时。
观察到的问题原因: (使用 OBS Cam Studio 时注意) Google chrome / chromium 如果发现真实的摄像头设备正在使用(忙碌),将不会访问(打开)虚拟摄像头设备。
解决方案(简短版):
- 找出你的物理网络摄像头是哪个设备(可能是多个设备)如果你的摄像头是可插拔的你可以断开它,然后观察
ls /dev/video*
的结果,连接它,然后尝试ls /dev/video*
再次查看出现了哪些设备(在我的例子中是/dev/video0
和/dev/video1
)- 在大多数情况下它将是/dev/video0
- 启动您的捕获程序(使用物理网络摄像头并输出到虚拟相机的程序)并使其输出到虚拟相机(虚拟相机必须输入输入才能由 chrome 打开)
- 禁用对物理网络摄像头的访问,这(在我的情况下)可以通过以下方式完成:
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1
(使用您发现物理网络摄像头的设备名称)
- 在googlechrome/chromium中开始视频捕获(通过打开网页或按某种“启动网络摄像头”,这取决于网页)
- 您现在应该在 chrome 中看到虚拟摄像头画面
- 启用对物理网络摄像头的访问,完成(在我的情况下):
sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1
- 大功告成!在网络上玩得开心!
解决方案(长版): 逐步说明如何使 OBS Cam Studio 虚拟输出在 google chrome/chromium.
中可见- 如果您还没有这样做,请卸载 v4l2loopback 模块(如果您不知道“exclusive_caps”参数,请卸载):
sudo modprobe -r v4l2loopback
(您需要停止任何虚拟摄像头馈送并停止使用虚拟摄像头的应用程序,否则您将收到 modprobe: FATAL: Module v4l2loopback is in use.
错误)
- 加载 v4l2loopback 模块(仅“exclusive_caps”参数重要):
sudo modprobe v4l2loopback devices=1 video_nr=21 exclusive_caps=1 card_label="Virtual Webcam"
(此命令将创建一个名称为 /dev/video21
且名称(标题)为“虚拟网络摄像头”的环回设备)
命令的更简单版本,这真的很重要:
sudo modprobe v4l2loopback exclusive_caps=1
- 启动使用您的物理网络摄像头并输出到虚拟网络摄像头设备(在我的例子中是 OBS Cam Studio)的视频捕获程序 - 物理网络摄像头现在应该很忙(正在使用)并且应该为虚拟网络摄像头提供输入(重要)
- 禁用物理网络摄像头设备访问(在我的例子中):
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1
(您的设备名称可能不同,可能只有其中一个) (如果你没有 sudo 访问权限并且你的相机是可插拔的,你可以拔掉它)
- 开始使用带有 google chrome 或 chromium 的网络摄像头(进入网页并在其上打开网络摄像头,例如通过网页上的“使用我的网络摄像头”按钮 - 它是不同的从一页到另一页)
- 您现在应该可以看到虚拟网络摄像头(如果没有,请单击地址栏右侧的摄像头图标,单击“管理”,然后在设置中按名称 select 您的虚拟网络摄像头,让网页使用又是网络摄像头)
- 启用物理网络摄像头设备访问(在我的例子中):
sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1
(如果您拔下网络摄像头,将其重新插入并(可能)在您的程序中重新打开它)
- 在 chrome! 中享受虚拟网络摄像头
希望对我有所帮助,因为我挣扎了很长时间都没有效果 google chrome 在 OBS Cam Studio 中打开虚拟网络摄像头。
已编辑: 找到了基于类似原理的工作解决方案,它在这里:https://www.scs.stanford.edu/~dm/blog/hide-webcam.html 它从可见网络摄像头列表中隐藏了物理网络摄像头,因此您需要手动或在程序的配置设置中输入它的路径。
正在回答我自己的问题 post 以将其标记为“已回答”。