Overview
ESP WebRTC Solution v1.2 is a significant update that brings enhanced stability, new features, expanded hardware support, and improved developer experience. This release includes major component updates, critical bug fixes.
What's New
1️⃣ Peer Connection Enhancements
esp_peer updated to v1.2.7
New Features:
- ✔️ Support for multiple data channels
- ✔️ Support for Forward-TSN (Transmission Sequence Number)
- ✔️ Support for ESP32-C5 microcontroller
Bug Fixes:
- ✔️ Fixed stability issues under poor network conditions
- ✔️ Fixed potential crash caused by race conditions
- ✔️ Fixed DTLS role mismatch issue
- ✔️ Added msid attribute in SDP for better stream identification
- ✔️ Fixed TURN relay connectivity issues
2️⃣ New Capture System – GMF-based esp_capture
The legacy capture system has been replaced with a GMF (Generic Media Framework) implementation, providing significant extensibility improvements:
- Support for multiple capture paths
- Automatic capability negotiation to simplify configuration
- Enhanced pipeline flexibility for multimedia processing
3️⃣ Published Components to ESP-IDF Registry
Now available as independent, reusable components:
4️⃣ Solution Updates
New Solution:
- Added kms_demo for Kurento Media Server Publisher
Improvements:
- Added AI processing (Pedestrian Detection) to doorbell_local demo
- Fixed OpenAI demo function call build error
5️⃣ Other Features and Improvements
- HTTP client refined: supports redirect and OPTIONS requests
- Added SEI injection support via video send hook – thanks to Todd Sharp
- Fixed WHIP signaling issue when ICE server not configured
- Added bitrate setting control for esp_webrtc
- Fixed crash issue when resetting while renderer is created
- Fixed data queue read/write dead-loop issue
- Fixed codec board pin configuration issue
🆕 New board supports:
- ESP32P4-EYE
- XIAO ESP32S3 Sense
Migration Guide — Upgrading to v1.2.0
This release introduces the GMF-based Capture System, which replaces the old esp_capture APIs. To upgrade smoothly, please review the following compatibility changes:
For detailed changes, please refer to commit 0ad48d.
Users only need to update media_sys.c and replace the relevant APIs or configurations as shown in the table below.
Capture System API Changes
| Legacy API (Simple Capture) | New API (GMF Capture) | Notes |
|---|---|---|
| esp_capture_audio_codec_src_cfg_t | esp_capture_audio_dev_src_cfg_t | Renamed |
| esp_capture_new_audio_codec_src | esp_capture_new_audio_dev_src | Renamed |
| ESP_CAPTURE_CODEC_TYPE_* | ESP_CAPTURE_FMT_ID_* | Renamed |
| esp_capture_path_handle_t | esp_capture_sink_handle_t | Renamed |
| esp_capture_setup_path | esp_capture_sink_setup | Renamed |
| esp_capture_enable_path | esp_capture_sink_enable | Renamed |
| esp_capture_acquire_path_frame | esp_capture_sink_acquire_frame | Renamed |
| esp_capture_release_path_frame | esp_capture_sink_release_frame | Renamed |
Obtaining v1.2.0
Users can obtain the release code using either of the following methods:
Method 1: Using Git (Recommended)
git clone -b v1.2.0 https://github.com/espressif/esp-webrtc-solution.git esp-webrtc-solution-v1.2.0
cd esp-webrtc-solution-v1.2.0/This is the recommended method for obtaining v1.2.0 of ESP WebRTC Solution.
Method 2: Download Archive
Alternatively, you can download the release archive directly from GitHub:
esp-webrtc-solution-v1.2.0.zip
Support
For issues and feature requests, please use the GitHub issue tracker.
Contributors
We thank all contributors who helped improve this release.