Skip to main content

USB Video Streaming

Overview

This section describes how to using UVC to Implement live Video Streaming via the UVC Protocol Based on the ESP32-S3.

Key Features

UVC(USB Video Class) is a protocol defined and maintained by the USB Implementers Forum (USB-IF). Key features include::

  • Support for High-resolution image captuure
  • Driverless operation with true plug-and-play functionality
  • Standardized interface for seamless cross-device integration
  • Broad host compatibility across major operating systems

Preparation

Hardware

  • NE100-MB01 Dev Board
  • UVC USB Camera Module

Software

1. Firmware

2. Environment Requirements

  • IDE Software:Visual Studio Code(v1.99.2+)
  • Development Framework:ESP-IDF Extension(v5.1.6)
  • Example Repositorylowpower_camera

Verify the video stream

Using Precompiled Firmware

  1. Hardware Connection

  2. Firmware flashing: Refer to the below to flash the firmware:

    the System Flashing and Initialization Guide

  3. Check the video streaming output

    • Press and hold the camera button to enter configuration mode.
    • Access the web management interface at http://192.168.1.1, as shown in the figure below.
    • Check if the video streaming displays correctly.

    Wifi Connection device Interface UVC Video Streaming

Using Source Code Development

1. Clone the repository using the following command

git clone https://github.com/camthink-ai/lowpower_camera.git

2.Project setup :

Open the directory in VS Code

Project Root Directory

3. Configuration :

Open the camera.h file located in the /main directory and enable the UVC feature.

Sensitivity Settings

4. Compile and deploy the source code

  1. Select esp32s3 as the target chip.:

Esp32s3 selection

  1. Select the build button to compile the source code.

Showing build output

  1. Select the flash button to upload the generated firmware to the device:

screenshot showing flashing process

5. Check the video streaming output

Same with using precompiled firmware

Notes

Protocol Limitations:

  • The ESP32-S3 only supports USB 1.1.
  • Ensure that the camera is compatible with the USB 1.1 standard.

Tip: During development, it is recommended to keep serial port monitoring enabled to capture any abnormal information in a timely manner.