cover_image

新东方云教室课程回放系统简介

邱晔 新东方技术
2021年05月20日 02:05
作为在线教育系统,课后回放视频的生成,对于用户来说至关重要,是直播系统中必不可少的一部分。
云教室的课后回放生成系统,从最初的快速完成业务功能,到目前稳定支撑高峰时期每日近9万节课回放生成,期间经历了一系列的技术方案选型及迭代升级。

第一版

最初的版本,主要以快速上线满足业务功能为目标。
此阶段的技术方案选型,尽量利用了第三方提供的成熟方案,以便于快速部署上线。
  • 声网提供录制服务
  • 自建集群,部署录制服务,调度录制任务及课后合成任务
  • 频道中音视频数据按用户单独录制
  • 课程接收后,将每个用户的音视频数据合成,拼接转码得到完整mp4
图片
弊端:大量基于三方服务,并且需要自建集群,需要大规模转码运算,计算量密集,大规模课程时录制集群需要不断扩容以满足负载,运营压力及成本不断增加,同时三方服务成本高居不下。

第二版

基于直播的方案,利用声网的推流配合CDN的直播能力,将老师端展现内容推流到CDN,在老师上课过程中可以实时观看,同时又能兼顾回放生成。
  • 利用声网提供推流服务,避免自建录制集群
  • 可利用多个CDN配合分流,峰值承载能力大幅提高,利于扩展
  • 支持m3u8及mp4,视频生成多采用拼接,减少转码,加快视频生成速度
图片
弊端:依赖声网推流能力,高峰期承载依赖于声网,并且费用极高。CDN有多家,同一节课可能分布在不同CDN,无法得到完整视频。

第三版

同样基于直播推流方式,直接从客户端推流到CDN,并保持声网推流能力做降级方案进行容错。
研发小型处理集群,对于分布在多个CDN的视频进行合并,得到完整的课程回放。
  • 从客户端推流模块自研,不再依赖三方服务承载能力,大幅优化成本
  • 推流过程监课,实时定位问题
  • 小规模自研集群,对分布在不同CDN的视频进行整合
  • 多样化任务,拼接,转码,增加滤镜等处
  • 异常ts文件处理,避免因个别ts文件无法解码造成视频生成失败
  • 回放文件生成优先级可控,便于特殊课程立即生成回放视频
客户端推流模块:
图片
回放任务处理集群:
图片

图片


继续滑动看下一个
新东方技术
向上滑动看下一个