MQTT+WebRTC 音视频接入
约 1389 字大约 5 分钟
2026-10-17
MQTT 交换会话、完整 SDP 和轨控制;WebRTC PeerConnection 实际传音视频(DTLS-SRTP),RTP、摄像头帧与 Opus 包不经过 MQTT。先完成 MQTT 基础接入。浏览器/App 用 应用命令与事件接口 交换同类信令,不登录设备 Topic。
连接前准备
设备实现或接入可用 WebRTC 媒体栈;平台配置媒体节点及当前部署实际的 ICE/中继网络可达性。这里不约定额外 iceServers 下发字段,也不提供真实 SDP 或端点。麦克风、摄像头、扬声器分别授权,未获授权不启动采集。AI 语音、人与人、IPC 都复用媒体建立,但各自的接听与观看权限不能互换。
完整 SDP 与实际就绪
| 步骤 | 设备动作 | 等什么/如何确认 | 详细契约 |
|---|---|---|---|
| 创建/接受 | 只申请实际支持的轨和 sourceId | sessionCreated 或邀请的有效接受结果 | 能力与会话 |
| 本地 offer | 安装选定收发方向,等 ICE gathering complete | 不发送半份 SDP,不实现自创 trickle 消息 | mediaOffer |
| 远端 answer | 关联原 msgToken 和 mediaRevision 后 setRemoteDescription | 完整 SDP 交换不等于媒体连通 | mediaAnswer |
| 实际连通 | ICE/DTLS 成功后上报 mediaState | 平台核验并发 sessionEstablished;未建立不启动业务输入 | mediaState |
| 业务收发 | 按用途和轨权限启用实际媒体 | 音频解码非静音、视频解码真实帧,另记播放状态 | AI 语音、通话与会议、IPC |
| 重协商/结束 | 串行处理当前端新代次或立即本地结束 | 旧代次不能操作新轨,结束后 close Peer、释放设备资源 | 弱网与恢复 |
关键报文
{
"msgToken": "s20-78",
"method": "mediaOffer",
"sessionId": "s20-session",
"params": {
"mediaRevision": 1,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP offer>"
}
}
}{
"msgToken": "s20-78",
"method": "mediaAnswer",
"sessionId": "s20-session",
"data": {
"mediaRevision": 1,
"webrtc": {
"iceMode": "complete",
"sdp": "<SDP answer>"
}
},
"code": 200
}上例 SDP 仅展示 JSON 形状,不能提交到实际连接。真实 SDP 由本端媒体栈生成,完整收集候选、以 v=0 与 CRLF 格式开头并满足长度限制。不要复制其他端的 SDP,或把 sessionId/cameraId 当作 RTP mid。完整创建、音轨和结束序列见 WebRTC AI 完整报文;字段定义见 媒体协商。
同一媒体建立,不同业务许可
| 业务 | 接听/授权 | 建立后做什么 | 退出 |
|---|---|---|---|
| AI 语音 | 用户允许输入,设备与平台选 halfDuplex/fullDuplex;真实 AEC 决定能否全双工 | audioStart 后按 AI 输入策略传音频 | 结束模型输入、回复与 Peer |
| 人际通话/会议 | 来电必须接听,成员及 MAC 控制轨权限 | 会话腿独立发/收,静音不取消成员身份 | 退出本腿不退 IM 群,不影响其他成员 |
| IPC 预览 | cameraId 合法;产品选择 direct 或 accept | 只订阅获授权视频;开启对讲另行授权 | 仅关闭本端订阅;隐私/撤权立即停流 |
视频编码与方向必须取协商结果;浏览器能够播放不代表嵌入式有该编解码能力。WebRTC 不等于 AI 全双工,也不替代人际接听。AI 取帧独立授权,预览打开不等于允许送模型。AI 视频等未启用分支只按 支持范围 阅读设计,不当作当前可操作功能。
结束与验证
用户挂断先停采集/发送,随后请求结束并关闭 Peer;远端结束同样幂等清理。断网先收紧采集,恢复不得自动开启用户已关闭的麦克风或摄像头。验证必须看实际解码帧、轨状态和结束后采集停止,不只看 SDP 或 HTTP 202。对应故障恢复见 失败教程。
更新日志
2026/10/17 03:27
查看所有更新日志
d04e1-docs(AI与音视频): 按公共主线与场景分支整合接入手册于
