grab

基于Video4Linux的视频采集模块开发(转)

柔情痞子 提交于 2019-12-10 06:44:57
Linux 系统中,摄像头驱动程序安装好后,为了进行视频采集必须加入Video4Linux模块,从而可以通过Video4Linux模块提供的编程接口(API)从摄像头设备中获取图像帧。下面具体研究基于V4L的视频采集程序设计。 1 Video4Linux概述 Video4Linux是Linux中关于视频设备的内核驱动,为针对视频设备的应用程序编程提供一系列接口函数,在Linux下,视频采集的设备的正常使用依赖Video4-Linux标准的支持,在编译内核时要选中Video4Linux项,对应的设备文件是/dev/video。对于USB口摄像头,其驱动程序中需要提供基本的I/O操作接口函数open、read、write、close的实现。对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl的实现等,并把它们定义在structfile operations中。这样当应用程序对设备文件进行诸如open、read、write、close等系统调用时,Linux内核将通过file operations结构访问驱动程序提供的函数。 2.视频编程的 数据结构 及函数 Linux下V4L视频采集,主要是调用V4L模块参数进行视频原始数据采集。使用的一些主要参数和函数定义在系统/include/linux/videodev.h文件中。下面是videodev