![在另一台机器上使用 SSH 或远程桌面连接时,Ubuntu 22.04 上的网络摄像头无法工作或访问](https://linux22.com/image/1031125/%E5%9C%A8%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%BA%E5%99%A8%E4%B8%8A%E4%BD%BF%E7%94%A8%20SSH%20%E6%88%96%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E8%BF%9E%E6%8E%A5%E6%97%B6%EF%BC%8CUbuntu%2022.04%20%E4%B8%8A%E7%9A%84%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4%E6%97%A0%E6%B3%95%E5%B7%A5%E4%BD%9C%E6%88%96%E8%AE%BF%E9%97%AE.png)
在这种情况下,我通过本地网络从 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”更改为远程“用户配置文件”(针对每个摄像头索引)。