Example for ESP32-S3-BOX (docs), ESP32-S3-BOX-3(mouser), and LilyGo T-Deck which receives an MJPEG camera stream from the camera-streamer app over WiFi and displays them on the screen.
To facilitate discovery, this sample uses mDNS to find the camera-streamer app (or any RTSP server that advertises itself as _rtsp._tcp.local).
Table of Contents
rtsp_client_server_compressed.mp4
You must first program your hardware. Afterwards, you can configure it via a USB connection using its built-in CLI.
Download the release programmer executable from the latest releases page for windows, macos, or linux - depending on which computer you want to use to perform the one-time programming. There are a few programmers pre-built for either the ESP-BOX or the LilyGo T-Deck.
- Download the programmer
- Unzip it
- Double click the
exe(if windows), or open a terminal and execute it from the command line./camera-display-<hardware>_programmer_v2.0.0_macos.bin, where hardware is one ofesp-boxort-deck.
To configure it, simply connect it to your computer via USB and open the serial port in a terminal (e.g. screen, PuTTY, etc.) at 115200 baud. Once there, you can use it as you would any other CLI - and the help command will provide info about the commands available.
Any SSID/Password you set will be securely saved in the board's NVS, which is managed by the ESP-IDF WiFi subsystem.
sta> help Commands available: - help This help message - exit Quit the session - log <verbosity> Set the log verbosity for the wifi sta. - connect Connect to a WiFi network with the given SSID and password. - connect <ssid> <password> Connect to a WiFi network with the given SSID and password. - disconnect Disconnect from the current WiFi network. - ssid Get the current SSID (Service Set Identifier) of the WiFi connection. - rssi Get the current RSSI (Received Signal Strength Indicator) of the WiFi connection. - ip Get the current IP address of the WiFi connection. - connected Check if the WiFi is connected. - mac Get the current MAC address of the WiFi connection. - bssid Get the current BSSID (MAC addressof the access point) of the WiFi connection. - channel Get the current WiFi channel of the connection. - config Get the current WiFi configuration. - scan <int> Scan for available WiFi networks. - memory Display minimum free memory. - stats Display RTSP client statistics.If you wish to modify / recompile the code, you will need to set up your development environment to be able to build and flash your target hardware.
This project is an ESP-IDF project, currently ESP-IDF v.5.5.1.
For information about setting up ESP-IDF v5.5.1, please see the official ESP-IDF getting started documentation.
Build the project and flash it to the board, then run monitor tool to view serial output:
idf.py -p PORT flash monitor (Replace PORT with the name of the serial port to use.)
(To exit the serial monitor, type Ctrl-].)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
This sample is designed to run on the ESP32-S3-BOX, ESP32-S3-BOX-3, and LilyGo T-Deck all of which have a 320x240 LCD (over SPI) running on a ESP32-S3.
This sample has two main tasks:
- RTSP client that receives mjpeg frames split into RTP packets, turns them back into JPEG images, and pushes them into a queue.
- Display task, which pulls image data from the queue, decodes the jpeg, and displays it on the screen.
It is built with these libraries:


