在这种情况下,我通过本地网络从 Windows 11 连接到 Ubuntu 22.04 来运行一些 python 脚本,其中一个脚本需要网络摄像头访问。
网络摄像头在连接并从任一机器本地使用时都可以正常工作。因此,在 Windows 上运行“Camera”并在 Ubuntu 上运行“Cheese”都可以访问网络摄像头并显示图像。
问题是,一旦我建立隧道到 Ubuntu 机器,我就无法启动或访问 USB 网络摄像头,无论我使用 SSH 还是 RDC(远程桌面连接)都没有关系。
在终端中写入时lsusb
,我可以看到所有 USB 设备,还可以看到无法启动的网络摄像头。
答案1
事实证明,这些摄像头归“root”所有,因此我的远程桌面连接用户配置文件无法访问它们,即使它与我在本地登录时使用的用户配置文件相同。:|
解决方案
将相机所有权转移给远程桌面连接中使用的用户配置文件
在终端中检查所有摄像机,使用ls -l /dev/video*
显示所有摄像机。更改ls -l /dev/video4
使其特定于索引 4 上的摄像机。这显示:
crw-rw----+ 1 root video 81, 8 Sep 11 11:46 /dev/video4
将其更改为
sudo chown SomeProfileUsedWithRemote:video /dev/video4
sudo chmod 660 /dev/video4
得出
crw-rw----+ 1 SomeProfileUsedWithRemote video 81, 8 Sep 11 11:47 /dev/video4
瞧。现在我可以通过 SSH 和 RDC 访问网络摄像头了!我只需从“root”更改为远程“用户配置文件”(针对每个摄像头索引)。