Welcome to ESP32 USB Stream
ESP32_USB_STREAM is an Arduino library designed to support USB UVC + UAC host driver for ESP32-S2/ESP32-S3. It enables multimedia streaming from USB devices, supporting up to one UVC camera, one microphone, and one speaker simultaneously.Key Features
USB Video (UVC)
Stream video from USB cameras with configurable resolution and frame rates
USB Audio (UAC)
Capture microphone input and output to speakers with full control
Concurrent Streaming
Support for simultaneous video and audio streaming from multiple devices
Stream Control
Suspend, resume, and dynamically configure streams at runtime
Hardware Support
ESP32_USB_STREAM is compatible with ESP32-S2 and ESP32-S3 SoCs only. These chips include the necessary USB host hardware.
Quick Start
Install the Library
Install ESP32_USB_STREAM through the Arduino Library Manager or download from GitHub.View detailed installation instructions →
Connect Your Hardware
Wire your ESP32-S2/S3 board with USB host capability and connect a USB device.See hardware requirements →
Run Your First Example
Start with a simple UVC camera streaming example to capture video frames.Explore the quickstart guide →
What You Can Build
USB Camera
Capture video frames from USB cameras
Audio Recording
Record audio from USB microphones
Audio Playback
Play audio through USB speakers
Popular Guides
UVC Camera Setup
Configure video streaming from USB cameras with custom resolutions and frame rates
UAC Audio Setup
Set up microphone and speaker streaming with volume control
Memory Management
Optimize buffer allocation and memory usage for streaming
Troubleshooting
Common issues and solutions for USB streaming
API Reference
Browse the complete API documentation to integrate USB streaming into your projects.Core API
USB_STREAM class and lifecycle methods
UVC Methods
Video streaming configuration and control
UAC Methods
Audio streaming configuration and control
Community & Support
GitHub Repository
View source code, report issues, and contribute to the project
Component Documentation
Read the underlying usb_stream component documentation