USB video device class

{{Short description|USB device class for webcams and other video input devices}}

{{About | connecting cameras with USB | connecting displays to cell phones through the Micro-USB port | Mobile High-Definition Link}}

{{see also|List of USB video class devices}}

The USB video device class (also USB video class or UVC) is a USB device class that describes devices capable of streaming video like webcams, digital camcorders, transcoders, analog video converters and still-image cameras.

The latest revision of the USB video class specification carries the version number 1.5 and was defined by the USB Implementers Forum in a set of documents describing both the basic protocol and the different payload formats.[https://www.usb.org/sites/default/files/USB_Video_Class_1_5.zip USB Device Class Definition for Video Devices, Revision 1.5], June 2012.

Devices

=Webcams=

Webcams were among the first devices to support the UVC standard and are currently the most popular UVC devices.{{Citation needed|date=October 2013}}

=TV receivers and video recorders=

{{Disputed|Is it really being used for tv tuners?|date=July 2020|what=section}}

UVC v1.5 supports transmission of compressed video streams, including MPEG-2 TS, H.264, MPEG-4 SL SMPTE VC1 and MJPEG.

Formats

Revision history

For detailed history on releases, see the revision history section of the published USB UVC documents, available from the [https://www.usb.org/documents USB.org] page.

class="wikitable"
VersionDateDescription
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

| {{unk}} || 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

{{update|section|date=January 2013}}

; Android:As of the release of Android 10 (and still as of June 2020) Android does not support UVC {{Cite web|title=Android 10 no UVC issue|url=https://issuetracker.google.com/issues/139087809}} (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.{{Cite web|title=Android 14 December feature drop USB Webcam|date=6 December 2023 |url=https://blog.google/products/pixel/pixel-feature-drop-december-2023/#footnote-8}}

; Linux:USB video class support for Linux is provided by the [http://www.ideasonboard.org/uvc/ Linux UVC driver], although as of July 2017 support for still-image capture is not yet implemented.{{Cite web|url=http://www.ideasonboard.org/uvc/#status|title=Linux UVC driver & tools|website=www.ideasonboard.org}} The UVC driver has been included in the Linux kernel source code since kernel version 2.6.26. Detection of UVC 1.5 devices was introduced in Linux kernel version 4.5,{{cite web|url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8afe97be37fad85b1ad7d4ab5d6b06f6fc04a274|title=Enable UVC 1.5 device detection}} 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: macOS ships with a UVC driver included since version 10.4.3,[https://www.nchsoftware.com/capture/kb/1791.html Mac OS X 10.4.3 update "comes with native support for UVC devices"], NCH Software. Retrieved June 29, 2019. updated in 10.4.9 to work with iChat.[http://support.apple.com/kb/HT1525 Mac OS X 10.4.9 update "Includes iChat support for USB Video Class webcams"], Apple Inc. April 8, 2008. Retrieved January 28, 2010.

; Windows: Windows XP has a class driver for USB video class 1.0 devices since Service Pack 2, as does Windows Vista and Windows CE 6.0. A post-service pack 2 update that adds more capabilities is also available.[http://support.microsoft.com/kb/899271 The updated USB Video Class (UVC) driver for Windows XP with Service Pack 2 is available]. Windows 7 added UVC 1.1 support. Support for UVC 1.5 is currently only available in Windows 8, 10 and 11.[http://msdn.microsoft.com/en-us/library/windows/hardware/ff568651(v=vs.85).aspx USB Video Class Driver Overview]. Microsoft. Retrieved July 22, 2014.{{Cite web|title=USB Video Class Driver Overview - Windows drivers|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/usb-video-class-driver-overview|last=barrygolden|website=docs.microsoft.com|language=en-us|access-date=2020-05-26}}{{Cite web|title=Windows 10 UVC camera implementation guide - Windows drivers|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-camera-implementation-guide|last=barrygolden|website=docs.microsoft.com|language=en-us|access-date=2020-05-26}}{{Cite web|title=Microsoft extensions to USB Video Class 1.5 specification - Windows drivers|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/stream/uvc-extensions-1-5|last=barrygolden|website=docs.microsoft.com|language=en-us|access-date=2020-05-26}} Most device manufacturers do, however, provide their own drivers tailored to the capabilities of the product in question.{{citation needed|date=January 2013}}: In Microsoft Windows, hardware acceleration support for UVC device required vendor drivers must be installed.

class="wikitable"

!UVC Version

!Windows XP/Vista

!Windows 7

!Windows 8/10/11

USB Video Class 1.0

|{{yes|Supported}}

|{{yes|Supported}}

|{{yes|Supported}}

USB Video Class 1.1

|{{no|Not supported}}

|{{yes|Supported}}

|{{yes|Supported}}

USB Video Class 1.5 (H.264 video codec)

|{{no|Not supported}}

|{{no|Not supported}}

|{{yes|Supported}}

; FreeBSD:FreeBSD added the uvc driver for UVC devices in Jan 18, 2011; added in the 9.0 release.{{cite web |title=UVC(4) FreeBSD Kernel Interfaces Manual |url=http://www.manualpages.de/FreeBSD/FreeBSD-ports-9.0-RELEASE/man4/uvc.4.html |archive-url=https://archive.today/20130911151028/http://www.manualpages.de/FreeBSD/FreeBSD-ports-9.0-RELEASE/man4/uvc.4.html |url-status=dead |archive-date=2013-09-11 |date=2012-08-06 |access-date=2013-09-10 }}

; NetBSD:NetBSD added the uvideo driver for UVC devices in September 2008; added in the 5.0 release.{{Cite web|url=https://man.netbsd.org/uvideo.4|title=uvideo(4) - NetBSD Manual Pages|website=man.netbsd.org}}

; OpenBSD:OpenBSD added the uvideo driver for UVC devices in April 2008; it appears in the 4.4 release.{{Cite web|url=http://man.openbsd.org/OpenBSD-current/man4/uvideo.4|title=uvideo(4) - OpenBSD manual pages|website=man.openbsd.org}}

; PlayStation 3:The PlayStation 3 added support for UVC compatible webcams in firmware version 1.54 (only works for video chat, not games.)

; MenuetOS:MenuetOS added support for UVC compatible webcams in version 0.87

; Solaris:Solaris includes support for UVC webcams in the form of the usbvc driver for OpenSolaris. The driver ships with Solaris Express {{nowrap|build 56}} and later.{{cite web |url=http://www.opensolaris.org/os/community/device_drivers/projects/usb/uvc/ |title=USB Video Class driver on Solaris |access-date=2007-08-23 |url-status=dead |archive-url=https://web.archive.org/web/20070823203924/http://www.opensolaris.org/os/community/device_drivers/projects/usb/uvc/ |archive-date=2007-08-23 }}

See also

References