好未来直播中台:自研RTC在教育场景的应用实践( 二 )


好未来直播中台:自研RTC在教育场景的应用实践
文章图片
好未来直播中台:自研RTC在教育场景的应用实践】围绕RTC这一核心产品 , 衍生出了全场景的音视频产品矩阵;
先说RTC产品 , 支持标准WebRTC协议及自研私有协议 , 也就是支持Web端及Native端 , 其中Native端支持移动端Android和iOS , PC端支持Windows和macOS , 此外还支持Linux服务端(方便业务方拉流去做进一步处理 , 比如本地服务端录制、AI审核等) 。 为了提高业务对接效率 , 也支持一些前端框架SDK , Unity(C#)、Electron(JavaScript)、Flutter(Dart) 。
为了支持大班课大规模观看的需求 , 我们搭建了支持标准CDN直播协议RTMP/FLV/HLS的标准直播 。 通过RTC的媒体服务器将RTC流转码为RTMP流 , 旁路推流到RTMP标准直播源站进行分发 。 RTC的录制和标准直播的RTMP录制文件会自动上传到点播云进行处理;点播云对视频进行二次加工 , 比如媒资管理、拼接、云剪辑、裁剪、截图、水印、转码等其他相关的媒体处理 , 便于学生课后观看回放复习或者做教学内容的二次剪辑推广 。
好未来直播中台:自研RTC在教育场景的应用实践
文章图片
整个直播中台的RTC能力是部署在IaaS层计算资源的基础上的 , IaaS层使用了云主机+线下IDC物理机的组网方式 , 使用IDC物理机的原因是网络质量、线路质量有保障、物理机的算力和性能更好 , 这部分资源作为兜底资源 , 而云主机主要是为了应对量级变化时可以快速弹性伸缩 , 当线上的用量有突增时用云主机快速扩容 , 当线上用量下降时用云主机快速缩容 。 为了应对量及突发时达到快速弹性伸缩的目的 , 我们在此基础上构建了一个可视化管理后台 , 能够高效的通过可视化页面的方式快速弹性伸缩 , 目前能够实现分钟级扩容/下线上百台机器 , 针对线上用量做精细化管理 , 保障线上稳定可用的同时做到精细化成本管理 , 降低业务成本 。
好未来直播中台:自研RTC在教育场景的应用实践
文章图片
这张图是直播中台的产品全景图 , 我们可以看到从底层的音视频服务端+客户端SDK;再到中间的调度管理、负载均衡、房间管理、后台管理系统、云控配置下发以及引擎切换相关的系统 。
最上层是对外提供标准化产品服务的官网和开发者中心 , 方便前台的业务高效、便捷地使用我们的产品和服务 , 提高业务对接效率 。
右侧是一套服务支撑以及保障系统 , 比如驾驶舱管理系统 , 主要负责实现弹性扩容、引擎切换、云控配置下发等功能;其中需要重点谈一下云控配置下发功能 , 云控配置下发是为了解决什么问题呢?因为客户端SDK发版具有一定周期性 , 且SDK发版后需要终端用户升级后新功能才能生效 , 不便于新功能的灰度和全量推广;云控配置下发可以在SDK不发版的情况下将一些新功能、新特性、调度策略等配置下发到客户端 。
告警系统主要是基于全链路的质量监控进行异常行为告警、便于研发和运维同事及时处理线上问题 , 将问题消灭于萌芽阶段 , 避免问题的影响面扩大 。
全链路质量监控系统 , 主要监控全链路的QoS/QoE的质量和体验指标、比如五大指标(入会成功率、延时、卡顿、音画同步、端上性能开销)和服务器资源水位监控 , 通过可视化的管理页面 , 配合上面提到的告警系统 , 实现及时的针对异常情况进行提前干预和保障 。 全链路质量监控还有另一些比较重要的功能 , 比如根因分析 , 技术支持同事可以通过根因分析系统快速定位问题 , 从而解决用户反馈的问题 。