Understanding linux standard USB webcam drivers
I'm trying to understand the layers of software that interface with USB webcams.
As I understand it:
A standard webcam fits into the category of a 'USB Video Device Class', or 'UVC'.
And in linux, Video4Linux (V4L, V4L2) encapsulates all video capture devices. V4L(2) provides two APIs: one is for programs that want to get and use the data from the capture devices. The other API is internal, for the drivers themselves, so those drivers can then be accessed by programs via V4L(2)'s external API.
One of those V4L(2) drivers is the UVC driver which encompasses all standards-compliant USB webcams.
My question:
Looking at that homepage of the UVC driver, it shows a list of supported devices. Has each one of those devices been catered for individually within the UVC driver? Or only if a device had a peculiarity that needed to be dealt with? In other words, should all standards-compliant USB webcams automatically work with the UVC driver, whether or not they're on that list?
Thanks
I believe the text right under the "Supported devices" headline answers your question:
The table below lists known UVC devices. Other UVC compliant video input devices are very likely to be supported.
So, un-listed devices that comply with the standard should work. Speaking from experience with mass storage ("USB flash drives") in embedded environments, your mileage will probably vary since not all devices are fine examples of engineering.
The USB Video Class have released manuals that have specifications, that a Vendor should implement. When a Vendor designs their product considering these specifications, that device becomes UVC Compliant.
I am using a Webcam that is UVC Compliant but not listed.
When I plug in my webcam to a Linux machine, a simple 'dmesg' shows the following messages 1. UVC Complaint device found 2. The device is unlisted.
I am able to easily stream uncompressed frames through this webcam.
链接地址: http://www.djcxy.com/p/81018.html上一篇: 使用Flash保存从网络摄像头捕获的视频
下一篇: 了解linux标准USB摄像头驱动程序