本文是在上一篇opencv 打不开uvc camera的MJPEG格式的数据流的问题 的基础上,转用QCamera,最终能拿到camera数据。
ucv camera介绍
UVC全程是"USB Video Class",即USB视频类,是为USB视频捕获设备定义的一种协议,是由Microsoft和另几家设备厂商联合推出的标准协议,现在已经是USB org标准协议之一。
现在的主流操作系统(如Windows XP SP2 and later,Linux 2.4.6 and later,MacOS 10.5 and later)都提供了UVC设备驱动,所以UVC camera连上电脑是可以被直接识别的,而一般的USB摄像头需要安装额外的驱动才可以被识别。
QCamera获取uvc camera的MJPEG数据流
QList<QCameraInfo> cameras=QCameraInfo::availableCameras(); //获取所有可以支持的camera,包括Integrated camera和uvc camera
foreach (const QCameraInfo &camerasInfo, cameras) {
qDebug()<<"camera:"<<camerasInfo.description();
qDebug()<<"name:"<<camerasInfo.deviceName();
if(camerasInfo.description().contains("UVC")){
qDebug()<<"name:"<<camerasInfo.deviceName();
mCamera=new QCamera(camerasInfo); //由camerainfo创建qcamera
mCaptureVideoFrame=new