The Yealink UVC40 All-in-One (AIO) USB video bar features a high-quality AI-powerd camera, microphone arrays and speaker, all of which are integrated into a single device to create an elegantly streamlined audio-video meeting endpoint, combining a highly compact design with rich camera performance. 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, 4 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 UVC class driver Usbvideo.sys queries the video camera directly to obtain its capabilities and then drives the device, with no proprietary driver required. For information on the current implementation of the guidelines, you must refer to the Microsoft Specification of Video Class Driver for H.264/MPEG-4.

The USB video device class (also USB video class or UVC) is a USBdevice 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.[1]



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


Uvc Driver Mac

TV receivers and video recorders[edit]

UVC v1.5 supports transmission of compressed video streams, including MPEG-2 TS, H.264, MPEG-4 SLSMPTE VC1 and MJPEG.[1]


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

Revision history[edit]

For detailed history on releases, see the revision history section of the published USB UVC documents, available from the page.

1.0September 4, 2003Initial release
1.0aDecember 4, 2003Add Additional Descriptor Subtypes for 'Extension' types. FAQ: Added section 2.21 Interlaced Video
1.0b?Changes to FAQ only: Protocol STALL behavior, Current and Future Payload Header Formats
1.0cJune 5, 2004Changes to FAQ only: Added Motion JPEG Characteristics
1.1June 1, 2005Major 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.5June 6, 2012Added H.264 and VP8 payloads, and accompanying controls for video encoders. Included references to USB 3.0

Operating system support[edit]

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.
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.[3] 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,[4] 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.
OS X ships with a UVC driver included since version 10.4.3,[5] updated in 10.4.9 to work with iChat.[6]
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.[7] Windows 7 added UVC 1.1 support. Support for UVC 1.5 is currently only available in Windows 8 and 10.[8][9][10][11] Most device manufacturers do, however, provide their own drivers tailored to the capabilities of the product in question.[citation needed]:
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
FreeBSD added the uvc driver for UVC devices in Jan 18, 2011; added in the 9.0 release.[12]
NetBSD added the uvideo driver for UVC devices in September 2008; added in the 5.0 release.[13]
OpenBSD added the uvideo driver for UVC devices in April 2008; it appears in the 4.4 release.[14]
PlayStation 3
The PlayStation 3 added support for UVC compatible webcams in firmware version 1.54 (only works for video chat, not games.)
MenuetOS added support for UVC compatible webcams in version 0.87
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.[15]


Uvc Driver Mac Download

  1. ^ abcdefUSB Device Class Definition for Video Devices, Revision 1.5, June 2012.
  2. ^'Android 10 no UVC issue'.
  3. ^'Linux UVC driver & tools'.
  4. ^'Enable UVC 1.5 device detection'.
  5. ^Mac OS X 10.4.3 update 'comes with native support for UVC devices', NCH Software. Retrieved June 29, 2019.
  6. ^Mac OS X 10.4.9 update 'Includes iChat support for USB Video Class webcams', Apple Inc. April 8, 2008. Retrieved January 28, 2010.
  7. ^The updated USB Video Class (UVC) driver for Windows XP with Service Pack 2 is available.
  8. ^USB Video Class Driver Overview. Microsoft. Retrieved July 22, 2014.
  9. ^barrygolden. 'USB Video Class Driver Overview - Windows drivers'. Retrieved 2020-05-26.
  10. ^barrygolden. 'Windows 10 UVC camera implementation guide - Windows drivers'. Retrieved 2020-05-26.
  11. ^barrygolden. 'Microsoft extensions to USB Video Class 1.5 specification - Windows drivers'. Retrieved 2020-05-26.
  12. ^'UVC(4) FreeBSD Kernel Interfaces Manual'. 2012-08-06. Archived from the original on 2013-09-11. Retrieved 2013-09-10.
  13. ^'uvideo - NetBSD Manual Pages'.
  14. ^'uvideo(4) - OpenBSD manual pages'.
  15. ^'USB Video Class driver on Solaris'. Archived from the original on 2007-08-23. Retrieved 2007-08-23.
Retrieved from ''

Step 1: Get started with USB Video Class (UVC) using documentation from and Microsoft

Use these links to get acquainted with UVC:

  • Access the USB class documentation (non-UVC specific) at

  • Download the USB Video Class 1.5 documentation from

  • Review the USB Video Class driver overview topic

Step 2: Implement the platform-supplied Device MFT

  • The platform-supplied Device MFT is for RGB USB cameras. It provides common functionality, for example, face detection based ROI for 3A prioritization (if the camera firmware supports ROI control specified in UVC 1.5 standard).

  • To enable this functionality, you need to ensure that the camera supports ROI. If you need to disable this functionality, you must do so through registry keys (for example, an INF file entry).

Step 3: Implement the custom Device MFT and MFT0 for your device

  • Device MFT is a user-mode component of UVC. You can insert this component to add extensions and differentiators to the UVC.

  • Review the Device MFT design guide.

  • Review the Device MFT sample code.

  • Review relevant information on MFT0 in the Creating a camera driver MFT for a UWP device app topic.



The Device MFT model supersedes the MFT0 model. While Windows continues to support the MFT0 model, we encourage you to use Device MFT instead, as it simplifies the design and supports more functionality and scalability.

Step 4: Implement Microsoft-specified UVC extensions

  • Method 2 still image capture:

    • documentation:

      • Review the section for Method 2 that begins on page 17 of the UVC 1.5 Class specification.pdf you downloaded in Step 1 above.
    • Microsoft-specific documentation:

      • Review section 2.2.1 and 2.2.2 in the Microsoft extensions to USB Video Class 1.5 specification.

Step 5: Test your UVC implementation to ensure it passes HLK tests and meets required functionality and performance

  • Run Windows HLK tests

  • Run camera-specific Device.Streaming HLK tests

  • Ensure the camera meets any requirements and passes HLK tests for other products that the camera must also be compliant with (for example, Skype, Windows Hello, and so on).