返回学习记录

从 MJPEG 到 WebRTC:一次实时监控链路升级

记录音视频同步、TURN 穿透和树莓派媒体采集中的关键取舍。

问题背景

最初的监控页面分别使用 MJPEG 视频流和独立音频流。它们各自缓存、播放,没有共同时间戳,运行一段时间后容易出现音画漂移。

改造思路

使用 WebRTC 将 H.264 视频和 Opus 音频放进同一会话:

Picamera2 + USB麦克风
        ↓
H.264 + Opus
        ↓
WebRTC / TURN
        ↓
浏览器 video 元素

这次实践让我更清楚地认识到:连接成功不等于媒体发送成功。ICE、编解码和设备采集要分别观察状态与统计数据。

记录下来的经验

  • 先用最小命令验证硬件参数。
  • 为媒体轨道增加首帧与发送字节日志。
  • 外网场景要把信令连接和媒体连接分开排查。
  • 配置文件中的密钥不要写进代码仓库。