亚马逊 KVS WebRTC SDK 适配乐鑫芯片及 ESP RainMaker Camera

简介

乐鑫正式宣布亚马逊 KVS WebRTC SDK 已完成在 ESP-IDF 上的移植与适配,为乐鑫微控制器带来企业级 WebRTC 视频流能力。该版本针对 ESP32 系列设备进行了深度优化,使设备能够实现实时音视频流传输,并支持 STUN/TURN ICE 服务器、双向音视频通信、数据通道 (Data Channel) 以及通过 WebRTC 向 KVS 进行视频推流 (WebRTC ingestion) 等功能。

乐鑫的适配不仅仅是简单的移植,还引入了多项创新特性,例如面向电池供电设备的 WebRTC Split Mode 架构、多项内存占用优化,以及一套简化的 API,使开发者能够更轻松地将 WebRTC 集成到产品中。

为了展示该 SDK 的能力,乐鑫还发布了 ESP RainMaker Camera ------ 一款基于 KVS WebRTC SDK 构建的量产级摄像头解决方案。ESP RainMaker 已广泛应用于各类 IoT 设备,而随着摄像头支持的加入,开发者现在可以以更低成本构建安全、低延迟的视频流解决方案。

适用于乐鑫产品的亚马逊 KVS WebRTC SDK

适用于乐鑫产品的亚马逊 KVS WebRTC SDK 是亚马逊 WebRTC SDK 的完整 ESP-IDF 适配版本,并针对资源受限的乐鑫微控制器进行了专门优化。该移植版本使 ESP32 设备能够实现具备企业级能力的实时音视频流传输。

关键适配与增强特性

内存占用优化

ESP 版本针对微控制器部署场景引入了多项关键内存优化:

  • 替代 WebSocket 客户端:可选择使用 esp_websocket_client 替代 libwebsockets,从而降低整体内存占用。
  • 动态内存分配:默认情况下,KVS 为每条 signaling 消息静态分配约 20KB 的大型缓冲区。ESP 版本实现了动态内存分配策略,使所有消息能够在相同的内存占用范围内完成处理。
  • SPIRAM 集成:通过修改内存分配 API,使其尽可能使用 SPIRAM(外部 RAM),从而保留宝贵的片上 SRAM 资源用于关键任务。

WebRTC Split Mode 架构

本次移植中最重要的创新之一是 WebRTC Split Mode 架构:

  • 双设备架构:Split Mode 将 WebRTC 功能分布在两个处理器上:
  • 媒体处理器(例如 ESP32-P4):负责视频 / 音频采集、编码以及流媒体传输
  • 网络处理器(例如 ESP32-C6 或 ESP32-C5):负责网络连接以及与 AWS KVS 的 signaling 通信
  • 功耗优化:在未进行流媒体传输时,媒体处理器可以进入深度睡眠模式,而网络处理器则在轻睡眠模式下保持网络连接
  • 快速唤醒:共享的网络协议栈使设备在唤醒后能够立即获取 IP 地址,从而避免连接延迟
  • 电池供电应用:该架构使摄像头设备能够在电池供电场景下运行,并显著降低整体功耗

具备智能默认配置的简化 API

该 SDK 提供了一套简化的高层 API,大幅降低配置复杂度。

这种架构允许开发者根据具体需求灵活组合组件,无论是构建简单的单设备方案,还是复杂的多设备系统。

部署架构

SDK 支持多种部署架构,每种架构都针对不同的应用场景进行了优化。

Split Mode --- 双芯片方案

例如:

  • ESP32-P4 Function EV Board
  • ESP32-P4-C5 Core Board

Standalone Mode

  • 双芯片方案:例如 ESP32-P4 Function EV Board 搭配网络适配固件(参见 Option 2)
  • 单芯片方案:例如 ESP32-S3-EYE(参见 Option 3)

乐鑫示例项目

KVS WebRTC SDK 的 ESP 移植版本包含多个完整示例,用于展示不同的部署场景。每个示例都展示了特定能力与应用场景。

示例对比

|-----------------|-----------|-----------------|---------------|--------|--------------|
| 示例 | Signaling | Peer Connection | 硬件 | 功耗模式 | 适用场景 |
| webrtc_classic/ | KVS | KVS | 单 ESP32 | 标准 | 学习与 AWS 集成 |
| esp_camera/ | AppRTC | KVS | 单 ESP32 | 标准 | 浏览器测试,无需 AWS |
| split_mode/ | | | | | 双芯片电池摄像头实现 |
| streaming_only/ | Bridge | KVS | ESP32-P4 | 支持深度睡眠 | 电池供电流媒体 |
| signaling_only/ | KVS | Bridge | ESP32-C6 / C5 | 轻睡眠 | 常在线连接 |

说明:streaming_onlysignaling_only 需要成对使用,以实现 split mode 部署。它们通常运行在双芯片开发板上,例如:

  1. ESP32-P4 Function EV Board (ESP32-P4 + ESP32-C6)
  2. ESP32-P4-C5 Core Board (ESP32-P4 + ESP32-C5)

有关详细的配置步骤和 API 文档,请参阅 esp_port READMEAPI_USAGE.md

ESP RainMaker Camera ------ 量产级应用方案

ESP RainMaker Camera 展示了一个基于 KVS WebRTC SDK 构建的量产级摄像头方案。

该示例展示了如何将 SDK 的能力与 ESP RainMaker 设备管理生态结合,从而构建完整、安全的摄像头解决方案。

RainMaker Camera 如何使用 KVS SDK

RainMaker Camera 使用了 SDK 的多个关键能力:

  • 简化 API:采用 SDK 的四行配置方式,并结合智能默认参数。
  • Split Mode 架构:在电池供电部署中实现 split mode 架构。
  • 凭证管理:将 RainMaker 提供的 AWS 凭证 API 与 SDK 的凭证回调机制集成。
  • 可插拔接口:无缝使用 KVS signaling 与 peer connection 接口。

RainMaker Camera 组件

ESP RainMaker 包含三个主要组件:

  • 云端后台 (Cloud Backend)
  • 开源手机应用 (Android 与 iOS)
  • 开源固件 SDK

摄像头支持已加入所有组件中,开发者无需额外开发即可直接使用。

RainMaker Camera 架构

RainMaker Camera 采用与 KVS WebRTC SDK 相同的部署架构,同时支持 Standalone Mode 与 Split Mode。Standalone Mode 可以:

  • 在单芯片设备上运行(如 ESP32-S3-EYE)
  • 或使用双芯片结构并搭配网络适配器

Split Mode 则将 signaling 与 streaming 分布在两个处理器上,以实现更高的功耗效率。上文 部分中的架构图展示了这些部署模式。

核心能力

ESP32-P4 **性能:**RainMaker Camera 充分利用 ESP32-P4 的处理能力,可实现 1080p@30fps 的音视频流传输。ESP32-P4 支持 MIPI-CSI 摄像头接口与硬件 H.264 编码,非常适合新一代联网摄像头应用。

电池供电运行: RainMaker Camera 是首个运行在微控制器上的支持电池供电的 WebRTC 摄像头方案。其工作方式如下:

  • signaling 与 streaming 由两个芯片分别处理
  • ESP32-P4 负责流媒体处理,并在空闲时进入深度睡眠
  • ESP32-C6 或 ESP32-C5 在轻睡眠模式下保持网络连接
  • 只有在请求视频流时两个设备才会被唤醒
  • 视频流结束后设备重新进入睡眠,从而显著降低功耗

**安全与隐私:**该方案提供符合现代法规要求的安全与隐私保护机制,确保远程查看过程安全可靠。 RainMaker 可安全存储设备证书,并提供 API 获取用于 KVS signaling 连接的安全 Token。

开发者体验: 开发 RainMaker Camera 与开发其他 RainMaker 设备的体验基本一致。

开发者可以继续使用熟悉的 ESP-IDF 工作流程,只需增加摄像头支持即可。同时,signaling 与凭证管理由系统自动处理,无需开发者关心底层细节。

终端用户体验: 用户可通过 RainMaker App 完成设备配网,随后即可一键开启实时视频流。

安全能力由乐鑫硬件与 ESP-IDF 社区共同保障。

商业价值: 该方案提供了一个 低成本、完整功能的解决方案,能够加速原型开发并缩短产品上市时间,同时依托成熟的生态系统支持。

硬件选择指南

KVS WebRTC SDK ESP 版本支持多款 ESP32 开发板。 同一硬件可根据不同应用场景运行不同示例。

|------------------------|---------------|----------|------|---------|----------------|
| 开发板 | 视频能力 | 编码 | 兼容示例 | 功耗模式 | 适用场景 |
| ESP32-P4-Function EV | 1080p@30fps | 硬件 H.264 | 全部示例 | 标准 / 电池 | 量产级流媒体 |
| ESP32-P4-C5 Core Board | 1080p@30fps | 硬件 H.264 | 全部示例 | 标准 / 电池 | 高性能 5GHz Wi-Fi |
| ESP32-S3-EYE | QVGA@5--10FPS | 软件编码 | 部分示例 | 标准 | 开发与原型验证 |

硬件说明

  • **ESP32-P4 Function EV Board:**量产级开发板,内置硬件 H.264 编码器。板上同时集成 ESP32-P4 与 ESP32-C6,可支持 standalone 或 split mode。
  • ESP32-P4-C5 Core Board:与 Function EV Board 类似,但使用 ESP32-C5 作为网络处理器,支持 5 GHz Wi-Fi。
  • **ESP32-S3-EYE:**内置摄像头与麦克风,适用于开发与测试。

重要说明

在双芯片开发板(ESP32-P4 Function EV 或 C5 Core Board)上使用 Standalone Mode 时,网络处理器(ESP32-C6 或 ESP32-C5)必须烧录 network_adapter 固件,作为 Wi-Fi Modem 使用,并透明地将网络流量转发给主处理器。

Split Mode 中:

  • ESP32-P4 负责流媒体处理
  • ESP32-C6 / C5 负责 signaling

当没有流媒体请求时,P4 可以进入睡眠,从而实现电池供电摄像头应用。

示例入门指南

我们提供两类示例:

即将推出的功能

  • 支持更多开发板
  • 基于 AI 与视觉能力的活动检测
  • 视频片段存储
  • 本地存储
  • 云端存储(RainMaker 云)
  • 多客户端并发观看
  • 双向音视频(适用于视频门铃等场景)

欢迎尝试该方案,并与我们分享您的应用成果。我们也非常期待您的反馈。

注意

3.4.0 版本 开始,摄像头支持已提供私有部署版本 。如果您想了解更多,欢迎联系乐鑫商务团队

相关推荐
前端摸鱼匠2 小时前
【AI大模型春招面试题15】自回归(Autoregressive)与自编码(Autoencoding)语言模型的区别?
人工智能·语言模型·面试·回归·大模型·求职招聘
AI程序员2 小时前
Claude Code 的三种多 Agent 模式:Coordinator、Swarm 和 Fork
人工智能
AI程序员2 小时前
Claude Code 的三层记忆系统:从"一次性对话"到"有记性的搭档"
人工智能
Lethehong2 小时前
从零搭建 BettaFish:打造自己的多 Agent 舆情分析系统
人工智能·docker·开源·蓝耘元生代·蓝耘maas
Kelvin4real2 小时前
10分钟速通 ACP 协议:LLM 生态的标准化时代
人工智能
monsion2 小时前
Claude Code 的三种多 Agent 模式:Coordinator、Swarm 和 Fork
人工智能·vscode·个人开发
YA8888888888892 小时前
数字时代B端拓客:号码核验的价值重构与行业突围,氪迹科技法人股东号码筛选系统,阶梯式
大数据·人工智能·重构
贵慜_Derek2 小时前
长程 Agent 卡住,多半不是模型不行,是下一棒接不住
人工智能
Neptune12 小时前
一文讲透 RAG 原理:让大模型「看见」你的私有知识
人工智能·深度学习·机器学习