我正在尝试了解与USB网络摄像头连接的软件层。
据我所知:
标准网络摄像头适合'USB Video Device Class', or 'UVC'的类别。
在linux中,Video4Linux (V4L, V4L2)封装了所有视频捕获设备。 V4L(2)提供了两个API:一个用于希望获取和使用捕获设备数据的程序。另一个API是内部的,用于驱动程序本身,因此程序可以通过V4L(2)的外部API访问这些驱动程序。
其中一个V4L(2)驱动程序是UVC driver,它包含所有符合标准的USB网络摄像头。
我的问题:
查看UVC driver的主页,其中显示了受支持设备的列表。这些设备中的每一个都是在UVC驱动程序中单独提供的吗?或者只有当设备具有需要处理的特性时?换句话说,是否所有符合标准的USB网络摄像头都能自动使用UVC驱动程序,无论它们是否在该列表中?
由于
答案 0 :(得分:4)
我相信“支持的设备”标题下的文字可以回答您的问题:
下表列出了已知的UVC设备。很可能支持其他符合UVC标准的视频输入设备。
因此,符合标准的未列出的设备应该工作。根据嵌入式环境中大容量存储(“USB闪存驱动器”)的经验,您的里程数可能会有所不同,因为并非所有设备都是很好的工程示例。
答案 1 :(得分:4)
USB视频类已经发布了具有规范的手册,供应商应该实施。当供应商根据这些规范设计其产品时,该设备将符合UVC标准。
我使用的是符合UVC标准但未列出的网络摄像头。
当我将网络摄像头插入Linux机器时,一个简单的“dmesg”会显示以下消息 1.发现UVC投诉设备 2.该设备未列出。
我可以通过此网络摄像头轻松传输未压缩的帧。