我有一个需要多个USB摄像头的应用程序。我知道USB2.0带宽的限制,并且解决了我对USB3.0总线上的USB2.0设备的误解(参见我之前的问题:How to run USB2.0 devices on a USB3.0 hub and get USB3.0 bandwdith)。
现在我在3.0总线上运行所有USB3.0摄像头,我发现即使在非常低的分辨率(160x120,MJPG)下,我仍然在尝试连接第二台摄像机时出现“设备上没有空间”错误。这实际上比我在USB2.0总线上运行时更糟糕。
请注意,我可以使用4K模式下的一个USB3.0摄像头(4096x2160,MJPG)运行,这肯定会使用比两个160x120(MJPG流)更多的总线带宽。所以它似乎不是带宽限制;它更像USB3.0只是不想连接多个USB3.0相机。我正在使用Logitech BRIO。
任何想法我可能做错了什么?我正在运行Ubuntu 16.04,并直接使用v4l2 API。
答案 0 :(得分:0)
我建议你看一下linux驱动程序:logitech BRIO usb驱动程序和V4L2。寻找ENOSPC状态 - 返回的位置以及在什么情况下。这台摄像机的驱动程序可能写得很糟糕,并且只能连接其中一个 - 当你连接第二台摄像机时它会返回ENOSPC。