V4L2视频采集接口规范
V4L2 的 API 规范,专门搞视频采集的你肯定绕不开。比起 V4L1,V4L2 算是一次比较大的升级,不少老坑都填了,支持的设备也更全。像 USB 摄像头、电视卡、甚至广播设备,统统能搞定。接口嘛,不算复杂,搞清楚几个关键结构体就能动手了,挺适合边学边撸代码的。
视频采集的底层接口,其实就是 V4L2 的拿手活。像v4l2_capability
、v4l2_format
这些结构体用得蛮多,常见流程就是:打开设备、查询功能、设置格式、申缓存、开始采集。听起来多,其实写起来还挺顺。多老哥配合mmap
用,效率高、延迟低,直播场景就挺合适的。
要说资源的话,推荐几个写得还不错的:
- 基于 Linux 视频驱动接口 V4L2 视频采集编程:对流程讲得蛮清楚,代码也实用
- V4l2 视频采集:偏实战型,适合搭配设备调试
- V4L2 视频采集代码:干货比较集中,直接能上手
- linux 下 v4l2 视频采集源代码:代码风格清爽,适合改造
如果你是做Qt
界面或者嵌入式开发,那个v4L2 编程视频采集及 qt 端 linux 下的资料可以看看,还兼顾 UI,蛮方便。
建议刚上手的朋友先把VIDIOC_QUERYCAP
和VIDIOC_S_FMT
搞懂,用最read()
方式跑个 demo 看看效果。别一上来就整mmap
,容易懵哦~
下载地址
用户评论