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 Repository: lowpower_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.