# USB video device class

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.

## Devices
### Webcams

Webcams were among the first devices to support the UVC standard and are currently the most popular UVC devices.

### TV receivers and video recorders

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

## Formats

* Uncompressed YUV formats YUY2, NV12
* DV formats SD-DV, SDL-DV, and HD-DV (525-60, 625–50, 1125–60, 1250–50)
* Frame-based
* Video stream formats like MPEG-2 TS, H.264, MPEG-4 SL, SMPTE VC1, VP8 and MJPEG

## Revision history

For detailed history on releases, see the revision history section of the published USB UVC documents, available from the USB.org page.
| 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
### Android

    As of the release of Android 10 (and still as of June 2020) Android does not support UVC(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.

### Linux

    USB video class support for Linux is provided by the Linux UVC driver, although as of July 2017 support for still-image capture is not yet implemented. 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, 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, updated in 10.4.9 to work with iChat.

### 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. Windows 7 added UVC 1.1 support. Support for UVC 1.5 is currently only available in Windows 8, 10 and 11. Most device manufacturers do, however, provide their own drivers tailored to the capabilities of the product in question.:
| 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

    FreeBSD added the uvc driver for UVC devices in Jan 18, 2011; added in the 9.0 release.

### NetBSD

    NetBSD added the uvideo driver for UVC devices in September 2008; added in the 5.0 release.

### OpenBSD

    OpenBSD added the uvideo driver for UVC devices in April 2008; it appears in the 4.4 release.

### 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 build 56 and later.