Introduction
The Stream Video ESP32 SDK is an embedded SDK written in C that adds real-time video, audio and signaling to ESP32 applications through Stream's SFU (Selective Forwarding Unit). You can publish H.264 video and Opus audio to a Stream call. The SDK currently supports publishing only; subscribing to remote participants' audio and video is not yet supported. The API is designed to fit the ESP-IDF ecosystem on resource-constrained devices.
This SDK is the client half of your integration. Call types, recording, transcription, webhooks and SIP are configured from your backend with a server-side SDK or the REST API, and the token your device connects with has to be signed there too. See the server-side documentation for what to build there, starting with users and tokens.
Build with Stream CLI and Agent Skills
The Stream CLI and Agent Skills give AI coding agents the tools and knowledge to work with Stream. There is no dedicated skill pack for ESP32 yet, but the default skills still help with live documentation and CLI-driven API work.
Install the CLI and the default skills:
curl -fsSL https://getstream.io/cli.sh | bash
getstream skillsOnce installed, invoke /stream from your agent. It routes documentation lookups and API operations for you.
Stream Agent Skills can also be installed from skills.sh.
Supported hardware
- ESP32-S3 WROOM: Supported (example provided, default board).
- XIAO ESP32-S3 Sense: Supported (selectable in menuconfig).
Requirements
- ESP-IDF v5.4 or higher.
- WiFi connectivity for signaling and media.
Documentation
Add the SDK via Component Manager, dependencies and ESP-IDF setup.
Application flow, minimal example, build and run.
Init, join and leave, error handling, types.
Configure the token service URL, call type and call ID in main.c.
All SDK Kconfig options for core, ICE, board, video, audio and debug.
How your device fetches a token and passes auth_data to the SDK.
If something is missing or could be improved, contact us.