debian10 使用usb摄像头

注明这篇文主要适用于rk3399pro中使用,其他开发板以后有机会在补充

问题:在使用usb网络摄像头的时候会报错,错误类型为:
corrupt JPEG data :X extraneous bytes before maker X
这个错误并不会导致检测和显示崩溃,但是会导致代码运行卡顿,严重的时候会导致视频显示卡顿的现象。

这个问题想表面解决很容易,只要在代码中将出错的图像屏蔽掉就行,或者将出错的语句追溯到其源码将其屏蔽即可。但为了彻底搞清楚这个问题,我从硬件到编程上都梳理了一遍,这个梳理过程,有空在单独写一篇文记录。
这里仅说明下最后的一点收获:

第一安装好cheese软件用于检测摄像头是否能正常工作

sudo apt-get cheese

随后在debian的软件包里即可打开这个软件,可以看到对应的拍照录像等功能

第二安装 v4l2-ctrl工具:

sudo apt install v4l-utils

使用这个工具查看摄像头的参数

sudo v4l2-ctl --all

查看参数的时候可以发现,由于工业摄像头在不同电脑上的默认参数设置不同,所以能达到的帧率和像素值也不同。
并且采用的编码格式不同时,其帧率和像素值也不同。
对我手里的一个1080p的摄像头进行测试的时候发现,它在
MJPG的格式下,视频输出640/480,60帧
YUYV(4:2:2)时,输出的是960/540,20帧

你可能感兴趣的:(Linux学习记录,linux,计算机视觉)