2

我一直在使用 USB webCam 和 v4l2 API 开发一些视频应用程序。API 提供了许多 ioctl() 调用来枚举通用功能、视频标准、像素颜色格式等。但是没有 ioctl() 来枚举 USB 网络摄像头支持的所有可能的图像大小。

这样做的首选方法是什么?

API 文档说您可以设置特定的图像大小,并且 ioctl() 将返回其最接近的匹配项。所以我想我可以尝试所有可能的图像尺寸,看看 USB 网络摄像头是否会拒绝它。但是,当有这么多标准尺寸格式(QCIF、CIF、4CIF、16CIF、VGA、DV、SVGA、XGA、UVGA、SXGA、UXGA 等)时,枚举所有可能支持的图像尺寸似乎是一种相当低效的方法。

谢谢,

-安德烈斯

4

1 回答 1

1

我会回答我自己的问题...

原来我一直在查看 v4l2 上的一些非常古老的文档,其中没有包含任何对 ioctl() 的图像大小参考。较新的文档确实有一个 VIDIOC_ENUM_FRAMESIZES ioctl() 用于枚举所有支持的帧大小。

这个故事的寓意:始终为您打算使用的任何 API 获取最新的文档。对于 video4linux2 使用这个:

http://linuxtv.org/downloads/v4l-dvb-apis/

-安德烈斯

于 2012-12-11T15:06:48.920 回答