Jump to content

USB video device class

From Wikipedia, the free encyclopedia

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]

UVC v1.5 supports transmission of compressed video streams, includingMPEG-2 TS,H.264,MPEG-4 SLSMPTE VC1andMJPEG.[1]

Formats

[edit]

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 Un­known 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]
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]
  1. ^abcdefUSB Device Class Definition for Video Devices, Revision 1.5,June 2012.
  2. ^"Android 10 no UVC issue".
  3. ^"Android 14 December feature drop USB Webcam".6 December 2023.
  4. ^"Linux UVC driver & tools".ideasonboard.org.
  5. ^"Enable UVC 1.5 device detection".
  6. ^Mac OS X 10.4.3 update "comes with native support for UVC devices",NCH Software. Retrieved June 29, 2019.
  7. ^Mac OS X 10.4.9 update "Includes iChat support for USB Video Class webcams",Apple Inc. April 8, 2008. Retrieved January 28, 2010.
  8. ^The updated USB Video Class (UVC) driver for Windows XP with Service Pack 2 is available.
  9. ^USB Video Class Driver Overview.Microsoft. Retrieved July 22, 2014.
  10. ^barrygolden."USB Video Class Driver Overview - Windows drivers".docs.microsoft.Retrieved2020-05-26.
  11. ^barrygolden."Windows 10 UVC camera implementation guide - Windows drivers".docs.microsoft.Retrieved2020-05-26.
  12. ^barrygolden."Microsoft extensions to USB Video Class 1.5 specification - Windows drivers".docs.microsoft.Retrieved2020-05-26.
  13. ^"UVC(4) FreeBSD Kernel Interfaces Manual".2012-08-06. Archived fromthe originalon 2013-09-11.Retrieved2013-09-10.
  14. ^"uvideo(4) - NetBSD Manual Pages".man.netbsd.org.
  15. ^"uvideo(4) - OpenBSD manual pages".man.openbsd.org.
  16. ^"USB Video Class driver on Solaris".Archived fromthe originalon 2007-08-23.Retrieved2007-08-23.