创建 RTC 会议并排查连接
视频会议页面用于把人员摄像头、麦克风和屏幕放进同一个 SFU 房间。1.0.0.158 可把已授权的外部视频通道接入会议,但具体 GB28181/RTSP 设备和编码兼容仍须在目标环境验收。会议媒体不会自动变成每人都能播放的格式;会后的按需整场 MP4 与会中 SFU 转发不是同一件事。

这张编号图来自较早的 RTC 页面;1.0.0.158 的导航名称为“视频会议”。按实际安装版本寻找会议列表、加入入口和对象状态。
按编号操作:① 新建或预约会议;② 在会议列表选择“加入”;③ 业务系统场景填写短时入会票据后加入;④ 选中成员或媒体,在右侧确认发布状态、编码、码率和丢包。
第一次测试只做两个人
- 使用 HTTPS 打开 RTC 页面,创建一个测试会议。
- 第一个浏览器加入并允许摄像头、麦克风权限。
- 第二个浏览器或另一台电脑加入同一会议。
- 双方分别发布音视频,并订阅对方画面。
- 让双方轮流静音、关闭摄像头、共享屏幕,再正常离开。
成功时,成员列表与实际人数一致,双方都有声音和画面,离开后成员与媒体会话会被释放。
浏览器到媒体节点的链路
sequenceDiagram
participant B as 浏览器
participant A as AKStream.Next
participant M as MediaServer SFU
B->>A: 加入房间并取得短时票据
B->>A: WHIP 发布 SDP Offer
A->>M: 代理本次发布协商
M-->>A: SDP Answer 与会话位置
A-->>B: 返回已授权协商结果
B->>A: WHEP 订阅目标流
A->>M: 代理本次订阅协商
M-->>B: ICE 连通后传输媒体
WHIP/WHEP 请求体是 application/sdp,不是 JSON。应用应通过同批 RTC SDK 维护会话、令牌续签和释放;直接集成协议时必须处理真实会话 ID、Location 和 ETag,不能只保存 SDP 文本。页面刷新或重连也需要释放旧设备会话。
为什么必须配置 HTTPS、STUN 和 TURN
主流浏览器只在安全上下文中开放摄像头和麦克风。HTTPS 解决页面与信令安全,但媒体能否连通还取决于 ICE:
| 现场网络 | 通常需要 |
|---|---|
| 同一局域网 | 主机候选可能足够 |
| 普通家庭或公网 NAT | STUN 帮助发现公网映射 |
| 对称 NAT、严格企业网、运营商网络 | TURN relay |
| 禁止 UDP 的网络 | TURN TCP/TLS 路径 |
TURN 凭据必须短时有效,端口池和带宽要单独容量规划。多网卡服务器不能向浏览器发布不可达的网卡地址。
有画面没声音或只有一方能看
按顺序检查:
- 浏览器地址栏是否拒绝了摄像头或麦克风。
- SDP 中对应的 audio/video m-line 是否存在,方向是否正确。
- 双方是否有共同 codec,Safari 是否经过单独兼容验证。
- ICE candidate 是否可达,是否一直停在 checking/failed。
- 企业网是否封锁 UDP,TURN TCP/TLS 是否真的可用。
- 刷新后是否残留旧 Participant 或 MediaSession。
房间事件使用稳定序号或游标续读,调用方要幂等处理。成员心跳超时后,平台应同步释放发布、订阅和相关资源。
做完后这样验收
- 覆盖 Chrome、Edge 和项目要求的 Safari。
- 覆盖局域网、公网 NAT、TURN relay 和禁用 UDP。
- 测试双人、多成员、屏幕共享、拒绝权限和重复加入。
- 测试刷新、短暂断网、睡眠唤醒和正常离开后的资源释放。
- 房间录制能从发布流走到文件与索引,而不只是返回控制成功。
仍然失败时进入 RTC 或浏览器连接失败。