
v4l2的编程接口
摄像头打开的方式:open、close、ioctl

视频格式YUYV4:2:2
视频宽高
视频帧率fp
1.打开设备
2.配置(获取支持的格式)
3.设置设备采集格式
4.申请内核空间缓冲区队列(从用户层拿缓冲区)
5.把内核缓冲区队列映射到用户空间
6.开始采集视频(往缓存区里填数据)
7.读数据(上锁)
8.读数据(解锁)
9.结束采集
10.释放空间
11.关闭设备

第一步:打开设备

2.获取摄像头支持的格式






像素格式结构体:

摄像头采集格式:

判断获取是否成功:

4.申请缓冲区队列

一个命令对应结构体
查看结构体,进行配置
设置type

设置申请空间

5.空间映射
相关的命令

配置ioctl,设置结构体
循环查询4个空间,进行映射
先配置结构体,进行初始化:

映射的地址:

映射完,就能从用户空间拿地址,提高速度
6.开始采集数据(往队列中写数据)

DQBUF设置限定,QBUF解除限定

int整型数

从队列中提取一帧数据(先查那个有数据)
查看结构体


获取一张图片

停止采集

6.释放映射
函数:


7.视频显示

显示图片在虚拟led:


ctrl+alt+F
视频流采集
黑白电视丢掉uv

yuv:不同的格式,不同的压缩
眼睛对颜色偏差不明感,颜色可以通过下一帧色彩补充
YUYV:一个像素必须三个字节,传输的时候丢掉有个


取出八个像素

结构转换
