我正在寻找一个使用 V4L2 在 Linux 中访问相机的简单示例。我在哪里可以找到它?尽可能简单。
谢谢,
在此处尝试 uvccapture 代码 -> http://staticwave.ca/source/uvccapture/ 这是一个非常小但非常具体的示例,它利用了所有 V4l2 概念(打开、设置格式、分配内存、请求缓冲区、Dqbuffer 和查询-buffer - ioclts 的所有内容)。
uvcgrab () 函数是使用 Dqbuffer 和 Query-buffer 的函数。
ioctl (vd->fd, VIDIOC_DQBUF, &vd->buf);
ioctl (vd->fd, VIDIOC_QBUF, &vd->buf)
在学习它的同时,您可以继续在此链接中查找 ioctl 定义,这将有助于您理解。
我建议也尝试一下 v4l-utils。
http://linuxtv.org/downloads/v4l-utils/
它有一些易于使用的对 v4l 设备的 API 调用,源代码中有一个基于 qt 的示例,用于为视频设备构建自定义接口。