一、硬件条件
Firefly AIO-3399ProC + Ubuntu18.04官方固件(5.11号)+ Firefly工业级500M摄像头
二、问题描述
在python3+cv2环境下不能通过cv2.VideoCapture()读取摄像头画面(错误说不太清,有时候是说读取的画面不满足长宽>0,有时候是Can’t open camera by index,有时候是Unable to stop the stream: Invalid arguement),不能通过cheese(Ubuntu软件,18.04LTS自带)读取摄像头画面,不能通过官方固件自带的Camera检测程序检测出来(按1选择USB摄像头直接中断)。
简而言之就是摄像头驱动不起来,没画面。
三、解决思路
1. 驱动问题
首先,我购买的摄像头是Firefly官方的免驱动USB摄像头,按理说是可以支持热插拔的摄像头,不需要额外装驱动。而淘宝第三方卖家告诉我这个摄像头在官方Ubuntu固件包中不自带驱动。并告诉我这个它支持UVC协议,可以自行安装相关驱动。后来发现根本不是驱动的问题。
如果读者和我的摄像头不一样,先考虑是否是驱动问题。先搞清楚支持的是什么协议,如果是UVC协议,可以转到Linux UVC driver and tools查看你的USB摄像头是否被支持,然后参考网站上的内容下载。