Linux 如何通过V4L2枚举USB网络摄像头支持的所有图像大小

Linux 如何通过V4L2枚举USB网络摄像头支持的所有图像大小,linux,v4l2,Linux,V4l2,我一直在使用USB网络摄像头和v4l2 API开发一些视频应用程序。API提供了大量ioctl()调用来枚举通用功能、视频标准、像素颜色格式等。但是没有ioctl()来枚举USB网络摄像头支持的所有可能的图像大小 这样做的首选方式是什么 API文档说明可以设置特定的图像大小,ioctl()将返回最接近的匹配。所以我想我可以尝试所有可能的图像大小,看看USB网络摄像头是否会拒绝它。但是,在有这么多标准大小格式(QCIF、CIF、4CIF、16CIF、VGA、DV、SVGA、XGA、UVGA、SXG

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

这样做的首选方式是什么

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

谢谢


-安德烈斯

我会回答我自己的问题

事实证明,我一直在查看v4l2上的一些非常旧的文档,其中没有任何关于图像大小的ioctl()引用。较新的文档确实有一个VIDIOC_ENUM_FRAMESIZES ioctl(),用于枚举所有支持的帧大小

这个故事的寓意是:对于您打算使用的任何API,始终获取最新的文档。对于video4linux2,请使用以下命令:

-安德烈斯