视频直播延迟高?您可能需要选择更合适的方案
文章来源:互联先锋
直播中的卡顿、延时会大大影响用户的体验,那么我们可以从哪些方面实现低延时?优化视频直播中的延时,可以通过下面几个环节:采集,编码,推流,转码,分发,拉流,解码和渲染。在一个实时的音视频系统架构里,每个环节都会有一定程度的优化空间。
RTMP和WebRTC的优劣何在?
目前国内主流的低延时框架是RTMP。RTMP是基于TCP的标准协议,CDN网络普遍支持,也能做到相对比较低的延迟。在推流端使用RTMP协议,拉流端兼容三种协议:RTMP,HLS。优化后的延时可以控制在2-3秒内,如果配合CDN加速,延时会更低。
WebRTC是近两年看好的方向,大多采用RTMP框架的流媒体系统在处理直播中的问题时会用到WebRTC。WebRTC最初是由Google开发的,它们作为基于浏览器的实时通信的开源解决方案发布。它使用UDP来进行媒体推流,而不需要创建离散的媒体段,这为所有客户端提供了始终如一的低延时。随着苹果的WebRTC支持加入了Safari 11,它现在已经被所有主流浏览器(包括Google Chrome,Firefox,和Microsoft Edge)所支持。WebRTC协议的设计使其可以很灵活的进行各种实现,使企业能够尝试针对一对一,一对多,甚至一对数百万的解决方案。此外,它支持通过TLS进行交付,以确保传输过程中内容的安全。
除了低延时流传输外,WebRTC还提供了一个实时双向数据通道,可用于发送和接收数据流。这种双向数据技术给在线流现在如何能成为一种交互式的体验提供了很多有趣的可能性。观众可以实时的在演唱会期间投票选出他们最想让歌手唱什么歌。体育粉丝可以在比赛或者比赛期间接收定制的体育直播数据统计。在线购物渠道可以显示不同客户的定制优惠或定价。这种可能性似乎可以深刻的改变实况视频的体验。
除了WebRTC,HLS/DASH/Smooth和其他HTTP流变体都可能是未来
他们都是用大多数终端设备所广泛支持的标准编解码器提供的点播内容的可扩展传送。这些自适应分段流格式使用标准的HTTP,以各种比特率或空间分辨率传送内容。通过实现需要较少缓冲的较小块大小,可以明显降低流延迟。但是如果块大小太小,则会由于所有其他HTTP请求而产生额外的开销,并可能导致更高的重新缓冲率。