云计算是直播的本源,视频云技术是解决三大难题的关键
互动直播在技术上有三大难题,但火热的直播行业同时让用户暴涨,这便给直播的发展带来了更大的压力,生存难度也由此增加。作为一款好用的直播产品,都应该思考在直播过程中,如何满足用户低延时流畅清晰的基本需求。这里的延时是端到端延时,包括采集、编码、打包、发送、网络传输、接收、解码到显示。
其中网络传输延时占比最大,要做到低延时在传输层一般选用udp的传输协议,让数据包尽力传输。因为TCP的延时较大,尤其在wifi/4G这种丢包时有发生的时候。然而UDP是没有qos的,无法保障其传输的服务质量,而满足用户的流畅清晰的视觉体验,要求传输一定要是可靠的,这就需要在应用层自主开发实现一套流控机制,来提供整个互动直播链路的服务保障。
那么,到底如何来实现这样一套行之有效的流控方案呢?我们可以从12月10日中国软件技术大会上,网易视频云技术专家朱玲的分享中找到一些答案。在技术上,面对互动直播出现的乱序、延时抖动、丢包等不确定的网络现象,网易视频云将解决方案分成三个步骤:即平滑发送、扛丢包以及抗抖动。
步骤1:平滑发送。就是在发送端维护一个rtp数据包buffer,这是一个发送优先级队列。当rtp数据包产生后并不是立刻发送,而是存放到buffer中缓存。并开启一个发送定时器线程,将数据包从数据buffer中取出,存放在优先级队列中进行发送。在发送之前,会进行网络探测,根据探测到的可用带宽,自适应的调节发送速率。这样,就实现了优先选择以及自适应性的精准发送,根据带宽的情况适当发送数据包。
步骤2:扛丢包。网络丢包有两种原因:一种是网络中存在的固有,随机丢包,另一种是网络拥塞丢包。针对随机丢包,可以通过fec前向纠错编码方式,对传输的媒体包添加合理的冗余包,接收端利用接收到部分媒体包部分冗余包恢复出全部媒体包的信息,让接收端对丢包完全无感知,另一方面,也是大多数情况我们要做的事情,就是避免拥塞,对我们的发送的数据流量做合理的带宽估计,并基于最大发送带宽估计中,控制视频编码器,发送最有效的,最有价值的视频信息。
文章TAG:直播 互动