USB video device class
TheUSB video device class(alsoUSB video classorUVC) is aUSBdevice classthat describes devices capable of streaming video likewebcams,digitalcamcorders,transcoders,analog video converters andstill-image cameras.
The latest revision of the USB video class specification carries the version number 1.5 and was defined by theUSB Implementers Forumin a set of documents describing both the basic protocol and the different payload formats.[1]
Devices
[edit]Webcams
[edit]Webcamswere among the first devices to support the UVC standard and are currently the most popular UVC devices.[citation needed]
TV receivers and video recorders
[edit]This section'sfactual accuracy isdisputed.(July 2020) |
UVC v1.5 supports transmission of compressed video streams, includingMPEG-2 TS,H.264,MPEG-4 SLSMPTE VC1andMJPEG.[1]
Formats
[edit]- UncompressedYUVformatsYUY2,NV12[1]
- DVformatsSD-DV,SDL-DV,andHD-DV(525-60, 625–50, 1125–60, 1250–50)[1]
- Frame-based[1]
- Video stream formats likeMPEG-2 TS,H.264,MPEG-4 SL,SMPTE VC1,VP8andMJPEG[1]
Revision history
[edit]For detailed history on releases, see the revision history section of the published USB UVC documents, available from theUSB.orgpage.
Version | Date | Description |
---|---|---|
1.0 | September 4, 2003 | Initial release |
1.0a | December 4, 2003 | Add additional descriptor subtypes for "extension" types. FAQ: Added section 2.21 Interlaced video |
1.0b | Unknown | Changes to FAQ only: Protocol STALL behavior, current and future payload header formats |
1.0c | June 5, 2004 | Changes to FAQ only: Added motion JPEG characteristics |
1.1 | June 1, 2005 | Major update including among other things: New documents specifying for stream and frame based payloads, latency optimizations for stream-based formats, specification of absolute and relative control relationship, asynchronous controls behavior, change naming from "VDC" to "UVC", obsolete old formats and add new ones, add a flag to distinguish between dynamic and fixed frame rate devices (RR0043). |
1.5 | June 6, 2012 | Added H.264 and VP8 payloads, and accompanying controls for video encoders. Included references to USB 3.0 |
Operating system support
[edit]This section needs to beupdated.(January 2013) |
- Android
- As of the release of Android 10 (and still as of June 2020) Android does not support UVC[2](USB video devices). Earlier Android versions do support UVC. As of December 2023 Feature drop update to Android 14 UVC support returns to the system.[3]
- Linux
- USB video class support forLinuxis provided by theLinux UVC driver,although as of July 2017 support for still-image capture is not yet implemented.[4]The UVC driver has been included in the Linux kernel source code since kernel version 2.6.26.Detectionof UVC 1.5 devices was introduced in Linux kernel version 4.5,[5]but support in the driver for UVC 1.5 specific features or specific UVC 1.5 devices was not added and MPEG-2 TS, H.264 and VP8 payloads are not supported yet. The result is that some UVC 1.5 devices that also support UVC 1.1 work correctly.
- macOS
- macOSships with a UVC driver included since version 10.4.3,[6]updated in 10.4.9 to work withiChat.[7]
- Windows
- Windows XPhas aclass driverfor USB video class 1.0 devices sinceService Pack 2,as doesWindows VistaandWindows CE 6.0.A post-service pack 2 update that adds more capabilities is also available.[8]Windows 7 added UVC 1.1 support. Support for UVC 1.5 is currently only available in Windows 8, 10 and 11.[9][10][11][12]Most device manufacturers do, however, provide their own drivers tailored to the capabilities of the product in question.[citation needed]:
UVC Version | Windows XP/Vista | Windows 7 | Windows 8/10/11 |
---|---|---|---|
USB Video Class 1.0 | Supported | Supported | Supported |
USB Video Class 1.1 | Not supported | Supported | Supported |
USB Video Class 1.5 (H.264 video codec) | Not supported | Not supported | Supported |
- FreeBSD
- FreeBSDadded theuvcdriver for UVC devices in Jan 18, 2011; added in the 9.0 release.[13]
- NetBSD
- NetBSDadded the uvideo driver for UVC devices in September 2008; added in the 5.0 release.[14]
- OpenBSD
- OpenBSDadded the uvideo driver for UVC devices in April 2008; it appears in the 4.4 release.[15]
- PlayStation 3
- ThePlayStation 3added support for UVC compatible webcams in firmware version 1.54 (only works for video chat, not games.)
- MenuetOS
- MenuetOSadded support for UVC compatible webcams in version 0.87
- Solaris
- Solarisincludes support for UVC webcams in the form of the usbvc driver for OpenSolaris. The driver ships with Solaris Expressbuild 56and later.[16]
See also
[edit]References
[edit]- ^abcdefUSB Device Class Definition for Video Devices, Revision 1.5,June 2012.
- ^"Android 10 no UVC issue".
- ^"Android 14 December feature drop USB Webcam".6 December 2023.
- ^"Linux UVC driver & tools".ideasonboard.org.
- ^"Enable UVC 1.5 device detection".
- ^Mac OS X 10.4.3 update "comes with native support for UVC devices",NCH Software. Retrieved June 29, 2019.
- ^Mac OS X 10.4.9 update "Includes iChat support for USB Video Class webcams",Apple Inc. April 8, 2008. Retrieved January 28, 2010.
- ^The updated USB Video Class (UVC) driver for Windows XP with Service Pack 2 is available.
- ^USB Video Class Driver Overview.Microsoft. Retrieved July 22, 2014.
- ^barrygolden."USB Video Class Driver Overview - Windows drivers".docs.microsoft.Retrieved2020-05-26.
- ^barrygolden."Windows 10 UVC camera implementation guide - Windows drivers".docs.microsoft.Retrieved2020-05-26.
- ^barrygolden."Microsoft extensions to USB Video Class 1.5 specification - Windows drivers".docs.microsoft.Retrieved2020-05-26.
- ^"UVC(4) FreeBSD Kernel Interfaces Manual".2012-08-06. Archived fromthe originalon 2013-09-11.Retrieved2013-09-10.
- ^"uvideo(4) - NetBSD Manual Pages".man.netbsd.org.
- ^"uvideo(4) - OpenBSD manual pages".man.openbsd.org.
- ^"USB Video Class driver on Solaris".Archived fromthe originalon 2007-08-23.Retrieved2007-08-23.