关于linux调用多个usb摄像头时无法工作的问题

问题

在做双目时遇到一个问题:插一个USB摄像头可以正常读取数据,插两个就会有一个没数据,另一个摄像头的帧率也会严重影响.排除硬件故障和代码问题后,最大的可能性是usb控制器带宽被占满导致读取数据时出错.

解决方案

  1. 输入lsusb查看电脑有几个usb控制器.若是摄像头挂载在同一个bus下,就拔了一个换另一个usb口,确保摄像头挂载在不同的bus下.
  2. 若是电脑只有一个usb bus(例如树莓派),那还是可以挽救的.一般免驱的usb摄像头都是v4l2设备,在打开设备的时候不要选择YUV或者RGB这些没被压缩的格式,选择mjpeg(如果摄像头支持的话)或者其他压缩过的格式可以大大减小带宽占用.一张640*480,YUYV422的图片大小为600k左右,而压缩成mjpeg后大概只有20到60k,极大减小了带宽的占用!

你可能感兴趣的:(关于linux调用多个usb摄像头时无法工作的问题)