duvc-ctl C++ API Documentation¶
A guide to using the duvc-ctl C++ library/API for controlling USB Video Class (UVC) cameras on Windows.
Refer the Doxygen docs here!: C++ API (Doxygen)
Contents¶
Getting Started
Core Concepts
Utility Functions & Helpers
Platform Abstraction
Vendor-Specific Extensions
Internal Implementation
Property Reference
Usage Patterns & Best Practices
Build System Integration
Platform-Specific Information
Device Support & Compatibility
Troubleshooting & Debugging
Examples & Tutorials
Contributing & Extending
FAQ
Appendices
Overview¶
duvc-ctl is a C++ library for controlling UVC cameras on Windows through the DirectShow API. The library exposes camera properties (pan, tilt, zoom, exposure, focus) and video properties (brightness, contrast, white balance) without requiring vendor-specific drivers or SDKs.
Supported operations:
Device enumeration and connection
Camera properties: pan, tilt, roll, zoom, exposure, iris, focus, scan mode, privacy, digital zoom, backlight compensation, lamp
Video properties: brightness, contrast, hue, saturation, sharpness, gamma, color enable, white balance, backlight compensation, gain
Hot-plug detection and device change notifications
Vendor-specific extensions (Logitech cameras supported)
Requirements:
Windows 7 SP1 or later (Windows 10/11 recommended)
C++17 compiler: Visual Studio 2019/2022, or MinGW-w64 with GCC 9+
CMake 3.16 or later
DirectShow (included with Windows)