v4l2视频采集基础知识

一、什么是v4l2

Video4linux2(简称v4l2),是linux环境下视频驱动的一种,它提供了像访问普通文件那样访问视频设备的方法,能够对其进行读写。视频设备(摄像头)在/dev/video0下

二、V4L2视频采集的基本流程

1. 打开设备文件

int fd = ::open(”/dev/video0″,O_RDWR);

   2.  取得设备的capability,查看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等功能。比如:

    VIDIOC_QUERYCAP

V4L2_CAP_VIDEO_CAPTURE·

V4L2_CAP_STREAMING      


  3. 设置视频的制式和帧格式(如帧的宽度高度等)

相关结构体:struct v4l2_format等

  4. 申请帧缓冲

	struct v4l2_requestbuffers req;//申请动态缓冲结构体
	     struct v4l2_buffer buf;//驱动中一帧视频的缓冲

申请物理内存(内存映射)

(VIDEO_BUF*)calloc(req.count, sizeof(VIDEO_BUF))

V4L2_MEMORY_MMAP

mmap()内存映射

6. 开始视频采集

VIDIOC_STREAMON


7.  *把数据从缓存中读取出来

::ioctl(fd, VIDIOC_QBUF, &buf

8. 关闭设备文件


close(fd)

转载于:https://www.cnblogs.com/Windeal/archive/2013/06/03/4284693.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值