随着全球数字化、“一带一路”战略的推进,亚太内容分大会暨CDN峰会的影响力正在逐渐向全球延伸,同时也将中国智造CDN及产业链推广向全球每一个角落。
在6月9日举办的【互动直播论坛】上,ZEGO 即构科技合伙人兼CPO颜延先生带来了以《如何在千万并发规模下打造毫秒级延迟直播新体验》为题的主题演讲。演讲中,颜延从五个方面入手,讲解了即构科技在音视频领域的技术优化、场景完善等方面取得的经验和进展。
演讲开始,颜延简短介绍了即构科技。即构科技成立于 2015 年,其核心团队专注实时音视频领域已有20年之久。他表示,对于今天互动直播这一话题,可以说既熟悉又陌生。熟悉之处在于,近几年通过服务海量的直播业务合作伙伴,将实时音视频和直播无缝结合起来,积累了大量经验;而陌生之处在于,即构科技从 0 开始打造自研直播产品 —— “低延迟直播”,整个过程中一开始是陌生的,经过不断打磨和完善,最终产品顺利面世,并在市场上得到了强有力的验证。
随后,颜延将主题分为五大部分,将即构科技在直播产品的构建思路全面分享给大家。
目前,互动直播场景演化出更多的互动形式以及更大的互动密度。而“互动”并不仅仅是音视频相关的沟通与玩法,还包括音视频与各类新动作的结合,典型的包括在线教育中的互动大班课、一起看电影、电商直播、远程拍卖等多个场景。
颜延以大班直播课为例介绍道:“在上课过程中,老师经常会出题让学生完成练习,一开始有可能会语音解释题干或考察点,如果延迟较高或学生收题速度不一致,上课体验就会非常差。甚至会出现老师讲完了,还有很多人没有看到题干的情况。又如在抢答环节,在高延迟或没有同步的效果下,整个在线课堂的体验会非常糟糕,这是我们直接从实际案例中看到的反馈。”
为了解决这样的问题,即构科技沿着清晰的三层结构打造低延迟直播产品。
第一层是架构层,是一个极具张力的去中心化全连通架构,即支持千万级并发的基础;而光有一个好的架构还不够,要解决通信过程中的一些实际问题比如物理远、网络差,为了让数据高效流动起来,需要一层软件定义的东西来保障低延迟与强同步,这层也就是即构低延迟直播的全自研私有协议和媒体网络;做到了高并发、低延迟、强同步,在第三层提供更广泛的平台能力和更优的体验效果。
那么该如何进一步了解低延时直播的三层结构?颜延为在座的听众进行了详细的讲解。
第一层全联连架构是千万级并发的基础。在此之前,先看看 CDN 直播拓扑和传统实时通话拓扑。
CDN 直播拓扑可以说是一个树状的结构,通过 RTMP 等标准流媒体协议,将画面、声音推到源站,源站再继续向下级边缘分发。“CDN 直播拓扑天然支持大规模分发,同时它在协议、分层、缓存等技术应用上的一些特点,使体验存在一定问题,比如弱网抗性差、超高延迟、订阅端之间弱同步等。”颜延介绍说。
传统实时通话拓扑是一个中心化的星型结构,在传统的会议场景最为常见,必须由一个或多个级联的 MCU 做房间流的聚合,整体分发。很明显中心化的架构使得计算和网络负载集中在 MCU 上,难以支撑大规模通信或分发。但其特点也较为明显,不太会出现多个订阅端延迟不一致的情况。“因为一定会经过中心的聚合,所以这里它一定是低延迟和强同步的。因此我们考虑到,既然这两种网络都有各自的一些优势和应用场景,如何整合分发网络与实时网络的一些特点。”颜延说。
因此,即构科技打造了具有自己特色的中心化全连通架构。颜延讲解道,全连通是一种能力,单从一条流的视角看,其往下不断分发的过程还是去中心化的树状结构;该结构支持灵活分层,还可以按推拉标签定义分层角色;此外,低延迟网络与实时网络(RTC)可无缝切换,毫秒间完成互动与分发角色的相互转化。“这就是去中心化全连通的基础架构,可以说解决了大规模并发的问题。”
那么,如何优化音视频通信中的延迟,又如何保障订阅端之间的同步性? 同样,颜延详细阐述了即构科技对这两个命题的解答。
颜延介绍了第二层的软件定义低延迟和强同步的做法。
在降低直播延迟之前,需要明确延迟是如何产生的,在音视频数据的分发过程中,在采集、前处理、编码、传输、解码、后处理、渲染每个阶段,都有可能产生延迟,所以需要各个击破。在一系列的优化处理后,即构科技低延迟直播产品的端到端延迟达到 500 - 600ms。
一是数据采集过程中的延迟。数据的采集很多情况下与设备和采集的参数配置相关,例如音频通常需要考虑采样频率及采样点数。如果以44.1K Hz采样,1024采样点缓冲区,采集延迟就会大于23.2ms;如果以48K Hz采样,192采样点缓冲区,这时的延迟只有4ms。对于采集延迟而言并不是时间越短效果越好,而是需要在各项指标之间进行权衡,比如采样点越少,CALLBACK的次数越多,交互增加使得CPU相应增加,帧越短可能需要拼帧来完成编码等一系列的操作都会导致成本增加。
二是音频前处理。关于音频前处理大概可分为音频3A处理、变声、视频滤镜和美颜、挂件,造成音频前处理延迟的两大因素分别是算法延迟和计算延迟。算法延迟是滤波器固有延迟,而计算延迟对音频来说还可以接受,但在对于视频的计算延迟存在很多挑战,首先计算量需要多少CPU周期与CPU相关,其次CPU带来的异构计算和OpenGL都会带来延迟。
三是编解码。音视频通信延迟的编码部分主要是指信源编码,信源编码需要做到减少传输所需字节数,压缩数据量,压缩也要权衡音/ 画质、码率、延迟和吞吐四个方面,因此选择合适的编码方案就显得尤为重要。在同等码率下编码方案所用的延迟越高,压缩质量也会越高,两者不可兼得。比如HE AAC在配置时不论CPU运行速度有多快,都会引入129ms的固有延时,而OPUS可以把延时控制在10ms内,在同等低码率条件下HE AAC的压缩效果会比OPUS好,但我们会将码率提高到一定程度使得音质不会受损,在低延迟的情况下还是会选择OPUS编码方案。
四是流媒体数据传输。传输在音视频通信中是非常复杂的过程,其中涉及到运营商、物理距离、接入方式和节点部署。光纤中光速可达到20万km/s,从北京到深圳靠光纤传递信息大概需要10ms,但实际上数据每经过网络中一个节点都会引入延迟,并可能出现丢包现象。使用traceroute可以探测一个IP包送到目的地所经过的节点,通过发送 icmp 包,并指定 ip 包里的 TTL字段的值。TTL 指的是 Time To Live,IP 协议为了防止一个 IP 在网络中无限游荡,每个 IP 包都有这么一个字段,一个 IP 每经过一个节点,都会把这个值减1,如果这个值变成 0,就会丢掉。将TTL从小设置到大,直到足够送达目标地址。
但仅仅靠这两个简单的工具还不能够掌握网络的复杂性,这是由于有些服务器不响应 ICMP,导致没有响应,或者网络中某些节点,不会去修改 TTL,导致看到的节点数比真实的少,但这也不妨碍traceroute对网络情况和链路问题的判断。网络链路情况是非常复杂的,但是我们可以针对应用场景和兴趣给网络建模,建模主要的参数有 RTT、丢包率和带宽预测。
最后一个带来延迟的原因是渲染。渲染主要是和系统接口打交道,重点是选择合适的接口以及参数配置。对于 Android来说,使用 OpenSL ES 接口才能达到低延迟的最佳效果。还有一些手机厂商的私有接口,比如华为、OPPO、VIVO……例如耳返功能就有不少厂家提供了私有接口,可以更低延迟的实现耳返。上图列举了厂家私有 API 的耳返优化效果,例如VIVO x9在没有耳返优化的状态下延迟达到279ms,而在开启耳返优化后延迟降到了14ms,目前即构低延迟直播 SDK 已经可以支持主流手机厂商的耳返优化。
综上,降低延迟是一项系统性工程。因为任何单个节点出现异常,都会引发整体异常。
除了对延迟的极限压榨之外,还要保证强同步。“这部分的工作大量需要在服务端,即构打造了一张 MSDN 海量有序媒体网络来支撑强同步的分发能力。我们从五个方面考量,包括负载均衡、就近接入、质量评估、动态路由、算法。”颜延说。
此外,颜延分享了第三层平台与体验方面的成果,即构科技在低延迟直播产品中适配了 10 余个平台或开发框架,让更多的开发者与企业合作伙伴能够轻松便捷地接入到整个系统中。特别地,即构科技也完美支持了 WebRTC、小程序与自研大网的融合,浏览器、小程序可以经网关对协议、编码方案的转化后,融入低延迟网络。
对体验方面,颜延用两个典型案例,对即构科技如何将低延迟直播解决在线教育等场景中的典型问题进行了介绍。“还是说回直播答题的过程,老师将通过低延迟网络语音宣介题目,同时,会把题干的文字一同在低延迟网络中分发给学生。学生则通过信令网络做出答题回复,快速反馈到老师面前。而且即便在千万级学生订阅的规模下,都能做到同步收题。解决这个问题,得益于整张自研网络低延迟、强同步的特性。”颜延说。
另一案例,是在互动大班课的互动板书。在 CDN 方案中,老师边教学边在白板上书写,为了保持与教学音频的同步,学生端接收白板图元后往往要延迟几秒才将这笔渲染画出。但在低延迟网络的下就无需久等。即构科技的互动白板进一步将这两种异构传输的数据在接收端上做收敛,最终实现让老师的嘴型和书写的内容强同步呈现出来。
“以上两个 case 是我们大量业务合作伙伴普遍存在的典型需求,通过低延迟直播产品以及一系列的配套服务得以很好满足,我们贴着实际场景去解决技术问题,让业务方真正专注业务。” 颜延说。