天天看点

打造“零距离”互动直播间,低延时流媒体技术实践

作者| 阿里文娱技术专家 乾戒

一、行业的用户体验分析

互动直播场景中有主麦主播、辅麦主播、粉丝三个要素,这三者之间关系构成了直播间的 各种互动场景。

1)主麦主播、辅麦主播可以无障碍的进行音视频通话,通常延时在 300ms 以内;

2)(主麦、辅麦)主播与粉丝互动场景;主播说话,而粉丝以文字、图片、送礼物等方式 进行互动;这种差别造成一次互动的延时在 3000ms 以上,想象一下如下互动场景:

a)进场特效播放完依然没有收到问候; b)当主播与粉丝一起玩“王者荣耀”时需要偷塔时,无法满足; c)当主播与主播 PK 时,其中一个主播最后几秒想拉票时,无法满足。

如何提升直播过程中三个要素之间的互动,让主播与主播之间、主播与粉丝之间达到一致 的用户体验?优酷直播流媒体团队做了低延时流媒体技术的探索实践,实现了在用户体验不下 降的基础上,让主播与主播延时<300ms,主播与粉丝延时<600ms,解决了直播间各类互动问题。

二、作茧自缚-传统解决方案

传统直播解决方案中主播之间以实时通信的方式传输延时小于 300ms,但是主播与观众之 间通过链路传输、CDN 分发整个延时往往在 3000ms 左右;如下图:

打造“零距离”互动直播间,低延时流媒体技术实践

从图上我们可以看到产生延时的主要原因就是 RTMP 传输链路、CDN 环节、观众播放器缓 存三个环节产生;如果想要提升用户的体验,就必然从这三个环节上做改动,尤其是 CDN 把 持了传输链路环节,然而 CDN 不是你想改就能改的。

基于这样的分析我们可以得出这样的结论:

1)视频 CDN 大大减少了开发人员的工作量;

2)你能做多好,取决于你控制的链路有多长;

3)CDN 侧不可控,所以等待 CDN 的改变也遥遥无期;

4)CDN 侧不可控,所以做一个和服务器交互的低延时播放器也没戏;

5)传统的解决方案是一张温柔而又可怕的温床。

三、蜕变之痛-低延时直播系统

针对上面的问题,我们解决方案简单粗暴:做一个全链路都可以控制的流媒体传输系统, 如下图:

打造“零距离”互动直播间,低延时流媒体技术实践

1. 山重水复疑无路-项目挑战

想好就做,但是蛮干往往没有好结果。这个设计使用 CDN 的思想改造了整个实时通信系 统,既兼顾 CDN 的大并发分发,又兼顾实时通信的低延时。无论是谈实时通信系统还是谈 CDN 都不是个小题目,何况两个融合的系统,这里面“水很深”“坑很多”。

打造“零距离”互动直播间,低延时流媒体技术实践

然而挑战还不止这些,实际的工程中,如何降低延时、如何保证流畅率往往有是相互矛盾 的话题,降低延时就要降低播放侧 buffer 和服务侧的 buffer,随之卡顿率就会上升;而想流畅率 上升就要增大 buffer,随之延时就变得更长;无论怎么调整 buffer,问题都这里,如何解决呢?

打造“零距离”互动直播间,低延时流媒体技术实践

2.柳暗花明又一村-解决方案

低延时直播系统根据具体业务需求,融合 CDN、私有实时通信协议、WebRTC、云原生等 技术完美解决了项目的各类苛刻要求,把问题模型转换为技术角度看:

打造“零距离”互动直播间,低延时流媒体技术实践

1)延时的产生及可控性分析:

打造“零距离”互动直播间,低延时流媒体技术实践

从上图我们可以看出来,可控的唯二也就是传输层、播放器 buffer 两部分了。在低延时项 目中 RDN 系统控制了整个传输过程,优化了每一个细节,把延时降至 118ms 以内,低延时播 放器自适应动态控制 buffer 大小、严格控制音视频加减速,保证流畅率的基础上又使延时在 415ms 以内。通过控制播放侧目标延时实现流畅优先、延时优先两种策略,满足主播连麦互动、 粉丝互动两种业务场景。

2)CDN 进阶为 RDN 系统

传统的 CDN、视频会议系统可以自行查看网上的方案,RDN 系统是一个融合 CDN 架构, 并以视频会议媒体服务器为节点的系统。RDN 在进行媒体传输采用懒加载的方式进行,当主播 把流传输至接收的边缘节点,此时如果有观众播放流,会通过 GSLB 返回最近的边缘节点并进 行资源的索引把流快速的下发至播放侧的传输 SDK。媒体流的分发示意图如下:

打造“零距离”互动直播间,低延时流媒体技术实践

3.唯快不破-传输延时如何降至最低

传输延时、播放侧延时是唯二可控的部分,且看我们如何把传输降到最低:

打造“零距离”互动直播间,低延时流媒体技术实践

1)播放器进阶为低延时播放器 低延时播放器是系统中延时控制的重要环节,是系统中唯一延时可控且可调的部分。相比

于传统播放器功能既要满足流畅率、秒开率、音画同步等用户指标,又要保证延时足够低。低

延时播放器架构图:

打造“零距离”互动直播间,低延时流媒体技术实践

4.用户体验第一-低延时场景下如何保证用户体验

低延时播放器通过定制优化后的 neteq,抵抗网络的抖动、丢包等问题,显著提升弱网情况 下的用户体验,通过滤波后的音画同步方案,保证在音视频快速加减速同时又能保证用户的体验。

打造“零距离”互动直播间,低延时流媒体技术实践

1)扁鹊全链路监控系统 扁鹊系统收集端侧、服务器侧日志,不但整个链路的服务质量,也用于排查各类线上问题。

打造“零距离”互动直播间,低延时流媒体技术实践

四、羽化之美-数据报告

在流畅率、秒开率不低于传统直播方案的场景下,互动延时指标大幅降低 86%。系统自 2017 年稳定运行至今,为直播用户提供了低延时互动、点击即见、清晰、流畅的高质量互动直播间。 并支撑了来疯秀场 PK,低延时直播各类场景,保证了来疯两年多的各类比赛顺利进行。

五、回顾历史-我的思考

低延时直播系统是由传统直播技术、实时通信技术、WebRTC 技术融合,专为互动直播而 生的系统。达到了文字和音视频同步的效果,像“欢迎大哥”“拉拉票”、“打他”这些欢迎、拉票 等直播互动再也不需要等待。回顾整个系统的诞生,我的技术思想也在逐渐的变化,回想初次 接触这三个技术:

1)传统直播技术 = RTMP、CDN、ijkplayer 2)实时通信技术 = MCU、SIP、RTP/RTCP

3)WebRTC 技术 = JSEP、P2P 、SFU、ICE、SDP、neteq 后来深入了解这些技术细节、互动直播业务的需求、开发过程中的痛点,开始思考可以用

这些技术再往前走一步,自研一套低延时直播系统一劳永逸的解决这些问题。经过前期详细论

证确定正确方向后,虽然过程困难重重,秉着“只要路对了就不怕远”“只要精神不滑坡,方法总 比困难多的”精神,最终还是安全的抵达了对岸。

本章内容出自《智慧文娱》电子书,118篇精选文章,900页丰富呈现,覆盖8大技术栈,纵览文娱技术全景。阿里文娱团队匠心出品,

点击免费下载完整版!