feat(esp32-timer-cam): Update timer cam example to be RTSP video streamer#635
Merged
Conversation
|
✅Static analysis result - no issues found! ✅ |
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the esp32-timer-cam example to act as an RTSP MJPEG video streamer, adding WiFi connectivity, RTSP server setup, and runtime monitoring/CLI tooling.
Changes:
- Reworked the example app to initialize the camera, connect to WiFi, and stream captured JPEG frames over an RTSP server with mDNS.
- Added project configuration (Kconfig) and partitioning defaults to support streaming use-cases (PSRAM, custom partitions).
- Updated the example build configuration to include additional dependencies/components for networking and streaming.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| components/esp32-timer-cam/example/sdkconfig.defaults | Expands default SDK config (PSRAM, stacks, LWIP/WiFi settings, custom partition table). |
| components/esp32-timer-cam/example/partitions.csv | Adds a custom partition table including a LittleFS partition. |
| components/esp32-timer-cam/example/main/Kconfig.projbuild | Introduces menuconfig options for RTSP port and WiFi credentials. |
| components/esp32-timer-cam/example/main/idf_component.yml | Adds Component Manager dependencies for the example (camera, mdns, espp components). |
| components/esp32-timer-cam/example/main/esp_timer_cam_example.cpp | Implements the RTSP streamer example: camera init, WiFi STA, RTSP server + mDNS, capture loop, and monitoring CLI. |
| components/esp32-timer-cam/example/CMakeLists.txt | Updates the example build/component inclusion configuration for new dependencies. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR updates the ESP32 TimerCam example from a simple board demo into a full
RTSP video streamer built on the
espp::RtspServercomponent.The updated example:
states
This PR also includes follow-up robustness fixes for the streamer path:
shared_ptrsnapshot ofrtsp_serverbefore sending frames0xFF 0xD9markerand avoid out-of-bounds access on short frames
partially initialized state
Motivation and Context
This change makes the ESP32 TimerCam example much more useful as a practical
reference application by turning it into a complete RTSP video streaming demo.
It solves a few problems:
endpoint
rtsp_serverlifetime during frame sendunusable streaming state
How has this been tested?
The updated example was tested by building:
components/esp32-timer-cam/exampleThe follow-up safety fixes were also validated by rebuilding the same example
after:
Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):
Types of changes
Checklist:
Software
.github/workflows/build.ymlfile to add my new test to the automated cloud build github action.