USB Video Class driver overview

If you're providing a driver for a webcam or a digital camcorder, consider using the system-supplied USB Video Class (UVC) driver, Usbvideo.sys. The USB Video Class (UVC) driver is a Microsoft-provided AVStream minidriver that provides driver support for USB Video Class devices. When your device uses UVC, you don't need to supply your own driver. Instead, the device works automatically with the system-supplied driver.

In the USB Video Class model, vendors don't write driver. Instead, vendors implement video streaming hardware according to the guidelines in the Universal Serial Bus Device Class Definition for Video Devices Specification document located on the USB Implementers Forum website. The UVC driver queries the hardware directly to obtain its capabilities and then drives the device, with no proprietary driver required.

You can optionally extend UVC driver functionality to add vendor-specific processing.

The following table shows support for UVC in different versions of Windows:

UVC Version Windows 7 Windows 8
USB Video Class 1.5 (H.264 video codec) Not supported Supported
USB Video Class 1.1 Supported Supported
USB Video Class 1.0 Supported Supported

Beginning with Windows 8, the H.264 video codec (encoder/decoder) is supported. H.264 is an open standard that allows efficient video compression techniques for reducing the use of network bandwidth and storage space. This approach leads to a higher video quality for a given bit rate. For more information, see USB H.264 Video Cameras Support. Also refer to Microsoft Proposed Extensions to the USB Video Class for H.264.

The following list shows some advantages to using the Usbvideo.sys driver:

  • No CD required for installation

  • No driver writing cost

  • No maintenance cost

  • Opportunity for vendors to add functionality

  • Easier debugging with public symbols

  • Works with Driver Verifier

  • Works with checked OS builds

  • Compliant with ACPI power management

  • Compliant with Selective Suspend power management

  • Supports multimedia APIs in Media Foundation and DirectShow

The system-supplied Usbvideo.sys driver supports the following UVC features in different versions of Windows:

UVC feature Windows 7 Windows 8
Single video control interface and one or more video streaming interfaces Supported Supported
Standard units and terminals, including Extension units Supported Supported
Still image capture support for all three methods defined in the UVC specification Supported Supported
Bulk and isochronous devices Supported Supported
Streaming parameter negotiation using probe commit controls Supported Supported
Compressed formats: MJPEG, DV Supported Supported
Uncompressed formats: YUY2, NV12 Supported Supported
Supports both capture and render devices Supported Supported
Compressed format: MPEG2TS Not Supported Not Supported
Stream-based and frame-based formats Supported Supported
H.264 video codec Not Supported Supported

Customizing the UVC driver

You can customize your support for UVC by supplying an Extension Unit plug-in. Extension units provide a private control channel between device and vendor-supplied application.

Other resources

To test your UVC implementation, you can use the following tools:

  • GraphEdit

  • KsStudio

  • USBView

For more information about these tools, see AVStream Testing and Debugging.

You can find specifications for USB Video Class 1.1 on the USB Implementers Forum website.