Advertisement

V4L2程序开发

阅读量:

1. 什么是V4L2

V4L2被视为Video4linux2的一种缩写,在Linux生态系统中处理视频设备相关的内核驱动部分。在Linux系统中,视频设备被定义为特定类型的文件,在其目录下可执行与普通文件类似的读写操作。通常位于/dev/video0位置处的摄像头执行这些操作。

2. V4L2编程

2.1 V4L2视频设备一般操作流程:

1)打开设备文件,

int mCamFd= open(/dev/video0,O_RDWR | O_NONBLOCK, 0);

以上方式使用非阻塞模式打开,关于阻塞模式和非阻塞模式:

该应用支持通过阻塞或非阻塞模式启动视频设备的操作。当采用非阻塞模式时触发视频设备的操作,即使当前尚未捕获相关信息,驱动程序会将缓存区(DQBUFF)中的数据返回给该应用。

获取设备的capabilities,并探究其具体功能类型。

struct v4l2_capability cap;

ret = ioctl (mCamFd, VIDIOC_QUERYCAP, &cap);

配置视频分辨率(VIDIOC_S_FMT)与帧格式设置(VIDIOC_S_STD),支持PAL与NTSC两种编码方案;其中包含宽度与高度参数设置。

struct v4l2_formatfmt;

/* Try to set pixel forma

全部评论 (0)

还没有任何评论哟~