Table of contents
TOC
Collapse the table of content
Expand the table of content

USB Video Class Driver Overview

Last Updated: 8/26/2016

If you are providing a driver for a webcam or a digital camcorder, consider using the system-supplied universal serial bus (USB) Video Class 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 do not need to supply your own driver. Instead, the device works automatically with the system-supplied driver.

In the USB Video Class model, vendors do not write drivers; instead, vendors implement video streaming hardware according to the guidelines in the Universal Serial Bus Device Class Definition for Video Devices Specification. 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 VersionWindows Vista/XPWindows 7Windows 8
USB Video Class 1.5 (H.264 video codec)Not supportedNot supportedSupported
USB Video Class 1.1Not supportedSupportedSupported
USB Video Class 1.0SupportedSupportedSupported

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 bandwith and storage space. This leads to a higher video quality for a given bit rate. For more information, see USB H.264 Video Cameras Support. Also refer to the 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 featureWindows Vista/XPWindows 7Windows 8
Single video control interface and one or more video streaming interfacesSupportedSupportedSupported
Standard units and terminals, including Extension unitsSupportedSupportedSupported
Still image capture support for all three methods defined in the UVC specificationSupportedSupportedSupported
Bulk and isochronous devicesSupportedSupportedSupported
Streaming parameter negotiation using probe commit controlsSupportedSupportedSupported
Compressed formats: MJPEG, DVSupportedSupportedSupported
Uncompressed formats: YUY2, NV12SupportedSupportedSupported
Supports both capture and render devicesSupportedSupportedSupported
Compressed format: MPEG2TSNot SupportedNot SupportedNot Supported
Stream-based and frame-based formatsNot supportedSupportedSupported
H.264 video codecNot SupportedNot SupportedSupported

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.

Additional 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 download a compressed set of specifications for USB Video Class 1.1 from the Device Class page on the USB Implementers Forum website.


Send comments about this topic to Microsoft

© 2017 Microsoft