延时在很多的视频直播应用软件中都是一项十分重要的特征。
任何一类视频通信应用软件,像会议、辩论、竞标、直播、医学会诊,或者娱乐圈人士可以跟粉丝互动的应用,都要求延时一定要低。
什么是延时?
延时是接收到视频帧到播放此帧之间的时间差。
对于网络流应用来说,延时可以来源于任何工作流程,比如摄像头/编码器,上游网络,流服务器,下游网络,或者观看者的视频播放器都可以产生延时。
通常延时都是在缓存视频帧的时候产生的。对于25fps的视频来说,一个存储50帧的视频缓存会产生2秒的延时。
缓存会增加延时
对于广播应用软件,视频缓存区会对网络中断进行补偿。这也就是为什么用于直播的视频流应用总会有那么长的延时。你也许在IPTV或者网页上观看体育赛事,同时在广播中收听同场赛事解说的时候会感受到网络的延时。广播有很低的延时,但是网络视频流就会有几秒的滞后。
目前,此类网络应用的平均延时会有30秒或者更长。
低延时需求
对于商业使用的视频通信软件,尽可能小的延时是极为重要的。端到端延时的准确值会有差别,从8-10秒到1秒以内不等。
如何保证低延时?
因为缓存会发生在任意一个处理流程中,所以从编码器到服务器到播放器都需要控制延时。正确的流格式和架构也很重要。使用现在的HTML5技术,比如HLS或者DASH通常会产生较多的延时,但使用RTMP或者WebRTC的延时就会相对较短。