2个月前,我在某直播平台上看了一场游戏直播,那叫一个难受,连延迟带卡顿,看到后半场卡的我直上厕所,回来后发现画面虽变了但仍旧卡,一气之下果断的关了直播。上个月去上海参加华为手机的发布会,想在现场做一下直播,移动4G竟然连信号都没有,只能退回到3G网络在朋友群发一些图片。面对移动网络的问题,只能是沉默再沉默了。
其实不只是我看直播会卡,网上还有很多人反映类似情况,某些硬件论坛探讨直播延迟卡顿的帖子还真是不少。很多人以为用PC和手机看直播或者做直播时延迟卡顿是硬件的事,其实硬件只是其中的一部分因素,直播软件的自身原因是另一部分因素,主要因素还是在于网络带宽,以及为直播应用提供云服务的视频云计算产品。所以,视频云计算产品的能力,决定这一个互动直播产品的运行情况。为了让大家更清楚,下面,我们就来谈谈互动直播遇到的难题以及视频云的直播解决方案。
用户体验,决定了互动直播在技术上面临三大难题
使用互动直播的用户最关心三个问题:延时、画面流畅性与直播清晰度。理想的直播状态当然是低延时、高流畅性与高清晰度。这意味着,延时最大不超过500ms,越小越好;流畅性最好能够接近电影及电视的播放速率;清晰度上,至少是用户主观能够感受到清晰。
原因在于,当前4G/wifi的复杂网络传输情况,并不能满足用户对互动直播产品视频体验的要求甚至说是基本需求,实现直播时用户的最佳体验,高清晰对眼下的移动直播而言其实是一个比较奢侈的存在。其实只要不会频繁出现延迟、卡顿等情况,就已经是提高了用户体验。
除了4G网络本身的传输速率限制,当前直播行业的上千款移动直播产品其实是在瓜分有限的4G网络资源。尤其是在同一直播现场大量移动直播应用同时工作的时候,会严重加剧延迟与卡顿,有些用户甚至无法正常使用移动直播。事实上,当前中国仍旧有80%的移动环境处于弱网状态,基本上所有的移动直播,内容传输商都会更加困难。相关数据显示,有75%的视频从业者认为,延迟和卡顿阻碍了直播行业的整体发展。延时、卡顿不流畅、不够清晰,可以说是实现互动直播产品在技术上面临的三大难题。
云计算是直播的本源,视频云技术是解决三大难题的关键
互动直播在技术上有三大难题,但火热的直播行业同时让用户暴涨,这便给直播的发展带来了更大的压力,生存难度也由此增加。作为一款好用的直播产品,都应该思考在直播过程中,如何满足用户低延时流畅清晰的基本需求?这里的延时是端到端延时,包括采集、编码、打包、发送、网络传输、接收、解码到显示。其中网络传输延时占比最大,要做到低延时在传输层一般选用udp的传输协议,让数据包尽力传输。因为TCP的延时较大,尤其在wifi/4G这种丢包时有发生的时候。然而UDP是没有qos的,无法保障其传输的服务质量,而满足用户的流畅清晰的视觉体验,要求传输一定要是可靠的,这就需要在应用层自主开发实现一套流控机制,来提供整个互动直播链路的服务保障。
那么,到底如何来实现这样一套行之有效的流控方案呢?我们可以从12月10日中国软件技术大会上,网易视频云技术专家朱玲的分享中找到一些答案。在技术上,面对互动直播出现的乱序、延时抖动、丢包等不确定的网络现象,网易视频云将解决方案分成三个步骤:即平滑发送、扛丢包以及抗抖动。
步骤1:平滑发送。就是在发送端维护一个rtp数据包buffer,这是一个发送优先级队列。当rtp数据包产生后并不是立刻发送,而是存放到buffer中缓存。并开启一个发送定时器线程,将数据包从数据buffer中取出,存放在优先级队列中进行发送。在发送之前,会进行网络探测,根据探测到的可用带宽,自适应的调节发送速率。这样,就实现了优先选择以及自适应性的精准发送,根据带宽的情况适当发送数据包。
步骤2:扛丢包。网络丢包有两种原因:一种是网络中存在的固有,随机丢包,另一种是网络拥塞丢包。针对随机丢包,可以通过fec前向纠错编码方式,对传输的媒体包添加合理的冗余包,接收端利用接收到部分媒体包部分冗余包恢复出全部媒体包的信息,让接收端对丢包完全无感知,另一方面,也是大多数情况我们要做的事情,就是避免拥塞,对我们的发送的数据流量做合理的带宽估计,并基于最大发送带宽估计中,控制视频编码器,发送最有效的,最有价值的视频信息。
步骤3:抗抖动:。除了丢包这种常见网络问题以外,抖动也是无处不在的,所谓抖动就是包到达对端的延时是变化的,不一定的,导致的结果播放的不流畅;那要解决网络抖动问题。一般是引入jitter buffer策略,在解码器与显示之间维持一个缓冲buffer,当数据解码之后,并不是立刻送去播放,而是估计一个抖动最优值,延时这个最优值时间再讲数据播放,实现的难点是如何动态估计这个jitter。 JitterBuffer值过大则延时增加,过小则抖动导致播放不流畅情况恶化。可以采用卡尔曼滤波方式自回归迭代逐步收敛到最优的jitter值,作为我们的估计值,来平滑抖动。
经过以上3个步骤,目前网易视频云服务的互动直播产品的平均延时,在网络较好情况下,端到端延时控制在200ms左右,在网络差强人意的情况下,丢包率保持在20%以内。这个数据,足可以为用户提供较为流畅清晰的视频体验。
更多行业引入互动直播,视频云3步解决方案很有意义
在移动直播诞生以后,我认为直播会是各行业快速连接互联网的方式之一。随着直播行业的迅速发展,多个行业都开始对直播这种方式来进行一些适当的运用。譬如在线教育行业,最大的短板就是师生互动问题,没有互动只有内容会大大降低用户体验,将直播引入,同时配合教学白板的互动,立即就有了现场交流感。再如健康医疗行业的临床教学,也是一个难题,不可能所有学生都进入手术室现场去学习,手术直播则可以解决这个问题,教授们在做手术的时候同时做直播与学生进行交流,这是医疗行业的一个非常大的进步。除此,直播互动在娱乐秀场、游戏、会场及安防监控等领域的应用,已成业内常态。
互动直播应用的越广泛,也就意味着直播行业面临的挑战越大,每个行业不同的直播都可能遇到更多的问题。实际上,这也是对每个互动直播产品背后的视频云服务产品解决方案的挑战。目前而言,在我见过的视频云计算解决方案中,网易视频云的三步式解决方案,思路是是比较简洁的,同时也是比较有效的。简单的通过平滑发送、扛丢包以及抗抖动三步,就能达到延时控制在200ms左右,丢包率在20%以内。事实上,业内人士都能看出来这个解决方案背后的框架模型设计、算法以及技术难度怕是并不简单,其团队应该付出了很多的努力。独创了3步视频云解决方案,应该为团队感到骄傲,但我认为,这个思路可以为更多的云计算团队指引一个方向,才是其最大的价值。
当前来看,互动直播在将来对于一些行业的重要性是不言而喻的,同时移动直播行业的发展与壮大也需要更多视频云为其提供解决方案。这就需要更多的云计算产品能持续创新直播技术,以为各行业的升级转型以及直播行业的进一步发展,提供更多的帮助。
网易视频云,在技术上先一步而行,值得点赞。