V4l2开发流程
1.打开视频设备
2.查询视频设备输出的视频格式(VIDIOC_ENUM_FMT(struct v4l2_fmtdesc))
3.查询视频设备的能力(VIDIOC_QUERYCAP(struct v4l2_capability))
4.设置视频的采集格式(VIDOC_S_FMT(struct v4l2_format))
5.申请内核空间的视频缓冲区(VIDIOC_REQBUFS)
6.申请内核空间缓冲区并映射到用户空间
7.投放一个空的视频缓冲区到视频输入队列中
8.启动视频采集
9.等待视频采集完成
10.从视频缓冲输出队列中获取一个能有视频数据的视频缓冲区
11.读取视频并保存成图片文件
12.关闭视频设备
附加:
Linux终端查看摄像头的格式:
V4L2-ctl -d /dev/video0 -all
Linux终端查看图片;
eog a.jpg
Display a.jpg
申请和管理缓冲区的三种方法:
1.直接read和write
2.内存映射
3.用户指针