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)
还没有任何评论哟~
