编者按: 随着互联网的发展、流量咨询费用的下降,直播互动越来越多的呈现在大众面前。直播带货、游戏主播,亦或者是大型网课,在直播中良好的网络环境与低延时是优质交互体验的关键。在这个各家云服务厂商标准不统一的年代,如何让低延时直播更加便捷稳定呢?本次LiveVideoStackCon 2022音视频技术大会上海站邀请到了毕伟老师为我们介绍网易云信的解决方案。
文/毕伟
整理/LiveVideoStack
大家下午好!我是网易云信资深音视频引擎研发工程师毕伟,今天为大家介绍云信开源低延时播放器的相关内容。云信开源播放器基于WebRTC二次开发,并且现在已经将代码上传到GitHub上,感兴趣的各位可以关注一下。
接下来我会从直播行业背景、低延时直播现状、低延时播放器框架、关键指标优化和未来展望5个方面逐步介绍。
一、直播行业背景
近几年直播发展非常迅速,已经渗透到各行各业。举两个非常典型的例子,一个是电商直播,另一个是在线教育。
电商直播中,存在主播直播和粉丝互动的环节,观众会通过下部的评论问主播相关的问题。如果延时很大,问完问题5到10秒才能听到主播的回答,会带来很差的交流体验,导致用户没有及时的收到反馈而直接退出直播间,成交转化率也较低。
因为疫情的原因,在线课堂十分火热,尤其是一个老师对应很多学生的大班课。老师在上课中也会和学生进行互动,高延时也会降低互动体验,影响课堂质量。
这两个典型场景的主要诉求都是低延时。现在市面上主流的仍然是标准CDN直播,即主播通过RTMP协议推流到CDN,CDN再进行分发,最后观看者通过HTTP-FLV、HLS、RTMP等协议进行拉流。整个方案基于TCP进行传输。因为TCP重传效率低,ACK反馈延迟导致数据积压,所以TCP方案的延时基本上在3到10秒。虽然HTTP-FLV/RTMP可以做到3秒左右,但是HLS因为切片的原因,会延长到10秒。综上所述,TCP方案并不适合用于低延时直播。
现在各大云厂商陆续推出了低延时直播的服务,主要是改造下行链路。通过把下行链路的RTMP转换成RTP,再进行UDP传输。整个直播过程包含主播端的采集、编码和发送、CDN分发、播放端接收、解码和渲染,主播端的延时相对较低,CDN内部走专网专线所以延时也是可控的。整个延时主要是下行TCP网络相对不太可控造成的,需要播放器加大缓冲区对抗网络抖动。正因如此,TCP方案端到端网络延时较大。事实上,改造下行网络带来的收益是最大化的。只需要将下行改为UDP传输,整个端到端延时就可以降低至1秒左右。现在市面上基于UDP的方案也有很多,例如QUIC、SRT、WebRTC等。目前WebRTC方案非常火热,大多数浏览器都支持,生态也很不错,所以云信也选择WebRTC作为低延时直播的基础。
云信也推出了自己的低延时直播服务。这张图是云信整个低延时直播的系统流程图