WebRTC CDN 实现

2022-03-30 14:14:59 浏览数 (1)

核心设计

  • 把RTC技术与CDN架构融合,一套架构同时支持WebRTC和RTMP
  • 支持一对一,多人互动场景
  • 支持直播,大规模分发场景
  • 架构保持足够简单,降低运维成本

对RTMP协议的改造

  • 如果要让webrtc和rtmp无缝互通,需要拓展rtmp对opus编码(48k采样)的支持,rtmp本身并不支持opus
  • 同时在ffmpeg中拓展rtmp对opus编码(48k采样)的支持

边缘节点设计

  • 边缘节点支持的能力: rtmp/webrtc推流,webrtc拉流
  • 边缘节点不做任何的编解码操作,只作为接入点和分发点
  • 支持rtmp(h264/aac/opus)的回源
  • 如果是webrtc推流,转封装为rtmp(h264/opus)
  • 为保证低延迟,回源跳数应该控制3-4跳以内

源站设计

  • 回源协议协议全部为rtmp
  • 源站做aac/opus的转码和重采样
  • 支持第三方CDN的回源

客户端SDK的设计

  • 把推流SDK抽象为RTCPusher,封装rtmp和webrtc推流的能力
  • 把拉流SDK抽象为RTCPlayer,封装webrtc播放的能力
  • 直播场景为一个pusher, 一个player
  • 互动场景为一个pusher, 多个player

WebRTC回源设计

媒体服务器集群

0 人点赞