
1) 【一句话结论】:为保障教师在线直播视频流的高可用与低延迟,需采用WebRTC(或RTMP)作为核心传输协议,结合CDN边缘节点全局部署实现内容加速与缓存,并设计多区域容灾方案(如主备数据中心+负载均衡),通过协议的NAT穿透、CDN的就近访问、容灾的快速切换,共同确保视频流的稳定传输与低延迟。
2) 【原理/概念讲解】:
视频传输协议:
CDN部署策略:
容灾方案:
3) 【对比与适用场景】:
| 方面 | WebRTC(P2P+UDP) | RTMP(TCP) | CDN边缘节点(全局部署) | 容灾方案(多区域+负载均衡) |
|---|---|---|---|---|
| 定义 | 实时音视频通信协议,支持P2P | 流媒体传输协议,基于TCP | 分布式内容分发网络,边缘缓存 | 多数据中心部署,故障自动切换 |
| 特性 | 低延迟(<100ms)、NAT穿透 | 高可靠性(重传)、延迟稍高 | 就近访问、缓存加速 | 多活/主备、快速切换(<秒级) |
| 使用场景 | 教师直播(低延迟要求)、实时互动 | 对延迟不敏感的直播(如录播回放) | 大流量视频访问(如直播观看) | 区域故障(如地震、断网) |
| 注意点 | 需处理网络抖动、丢包(如NACK重传) | TCP拥塞控制可能导致延迟 | 边缘节点缓存更新延迟 | 容灾切换时需保证数据一致性(如会话续传) |
4) 【示例】:
1. 服务器(如WebRTC服务器)生成SDP:
s=教师直播
m=video 1234 RTP/AVP 96
a=mid:video
a=setup:active
a=rtcp:port 1235
2. 客户端(教师端)发送ICE候选(如STUN服务器):
"candidate": "srtp:192.168.1.100:1234 typ:udp"
3. 客户端(学生端)通过SDP协商,建立P2P连接,传输视频流。
GET /live/teacher/stream.m3u8 HTTP/1.1
Host: cdn.wjcy.com
User-Agent: Mozilla/5.0
Accept: application/vnd.apple.mpegurl
边缘节点返回HLS分片(如stream_0001.ts),用户从就近节点获取,延迟约50-100ms。5) 【面试口播版答案】:
“老师,要保证视频流高可用和低延迟,核心是选对传输协议、用好CDN、做容灾。首先,传输协议选WebRTC,它基于UDP,支持P2P直接连接,通过ICE处理NAT穿越,延迟通常低于100ms,适合实时直播。然后,CDN方面,在全球主要城市部署边缘节点,缓存视频流内容,用户请求时从就近节点获取,减少网络跳数,比如用户在深圳,请求从深圳的CDN节点返回,延迟降到几十ms。容灾的话,采用多区域部署,比如华东和华南两个数据中心,通过全局负载均衡器分发请求,当主区域故障时,自动切换到备用区域,切换时间控制在秒级内,确保服务不中断。这样,视频流既低延迟,又高可用。”
6) 【追问清单】:
7) 【常见坑/雷区】: