6

我试图了解与 USB 网络摄像头接口的软件层。

据我了解:

标准网络摄像头属于“USB 视频设备类”或“UVC”类别

而在linux中,Video4Linux(V4L,V4L2)封装了所有的视频采集设备。V4L(2) 提供了两种 API:一种是用于希望从捕获设备获取和使用数据的程序。另一个 API 是内部的,用于驱动程序本身,因此程序可以通过 V4L(2) 的外部 API 访问这些驱动程序。

其中一个 V4L(2) 驱动程序是UVC 驱动程序,它包含所有符合标准的 USB 网络摄像头。

我的问题:

查看UVC 驱动程序的主页,它显示了支持的设备列表。UVC 驱动程序中是否单独满足了这些设备中的每一个?还是仅当设备具有需要处理的特性时?换句话说,是否所有符合标准的 USB 网络摄像头都应该自动使用 UVC 驱动程序,无论它们是否在该列表中?

谢谢

4

2 回答 2

4

USB 视频类已发布具有规范的手册,供应商应实施这些规范。当供应商考虑这些规格来设计他们的产品时,该设备就符合 UVC 标准。

我正在使用符合 UVC 但未列出的网络摄像头。

当我将网络摄像头插入 Linux 机器时,一个简单的“dmesg”会显示以下消息 1. 发现 UVC 投诉设备 2. 该设备未列出。

我可以通过这个网络摄像头轻松流式传输未压缩的帧。

于 2013-04-02T17:47:43.440 回答
4

我相信“支持的设备”标题下的文字可以回答您的问题:

下表列出了已知的 UVC 设备。很可能支持其他符合 UVC 的视频输入设备。

因此,符合标准的未列出设备应该可以工作。从嵌入式环境中的大容量存储(“USB 闪存驱动器”)的经验来看,您的里程可能会有所不同,因为并非所有设备都是工程的优秀示例。

于 2013-03-25T13:01:06.777 回答