V4L2 usb 摄像头 测试
来源:互联网 发布:什么网络电话软件好 编辑:程序博客网 时间:2024/05/19 10:38
V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。
1、常用的结构体在内核目录include/linux/videodev2.h中定义
structv4l2_requestbuffers
2、常用的IOCTL接口命令也在include/linux/videodev2.h中定义
VIDIOC_REQBUFS //分配内存
3、操作流程
V4L2提供了很多访问接口,你可以根据具体需要选择操作方法。需要注意的是,很少有驱动完全实现了所有的接口功能。所以在使用时需要参考驱动源码,或仔细阅读驱动提供者的使用说明。
下面列举出一种操作的流程,供参考。
(1)打开设备文件
如果使用非阻塞模式调用视频设备,则当没有可用的视频数据时,不会阻塞,而立刻返回。
(2)取得设备的capability
看看设备具有什么功能,比如是否具有视频输入特性。
(3)选择视频输入
一个视频设备可以有多个视频输入。如果只有一路输入,这个功能可以没有。
(4)检测视频支持的制式
(5)设置视频捕获格式
(6)向驱动申请帧缓存
v4l2_requestbuffers结构中定义了缓存的数量,驱动会据此申请对应数量的视频缓存。多个缓存可以用于建立FIFO,来提高视频采集的效率。
(7)获取每个缓存的信息,并mmap到用户空间
(8)开始采集视频
(9)取出FIFO缓存中已经采样的帧缓存
根据返回的buf.index找到对应的mmap映射好的缓存,取出视频数据。
(10)将刚刚处理完的缓冲重新入队列尾,这样可以循环采集
(11)停止视频的采集
(12)关闭视频设备
- V4L2 usb 摄像头 测试
- V4L2 usb 摄像头 测试
- V4L2 usb 摄像头 测试
- V4L2 usb 摄像头 测试
- Android usb device
- Android usb device
-  
-
- USB枚举过程 USB Enumeration
- mysql sysbench 测试
- xcode tableview 多列 测试
- buildbot + bazaar + mysql的测试…
- android USB
- USB Type-C
- Linux USB 鼠标驱动程序详解
- Linux USB 鼠标驱动程序详解
- Android USB 驱动分析
- Android USB 驱动分析
- 计算程序运行时间
- STM32 usb_mem.c和usb_sil.c文件的分析
- linux 下 opencv2.0 的编译与安装 …
- linux 下 opencv2.0 的编译与安装 …
- V4L2 usb 摄像头 测试
- V4L2 usb 摄像头 测试
- 摄像头究竟如何选购
- 摄像头究竟如何选购
- 读取随机文件
- Qt/Linux 下的摄像头捕获(Video4L…
- Qt/Linux 下的摄像头捕获(Video4L…
- 肤色检测
- 肤色检测
- CvScalar