移动直播已经成为大家茶余饭后消遣娱乐的方式之一,直播平台搭建也逐渐走进大家的视野。对于开发者来讲,除了关注如何能快速实现不同应用场景重点音视频通讯,另一个更需要关注的可能就是“低延时”。因为这将直接影响直播的用户体验,涉及到一个直播平台的成败。
直播平台搭建场景主要有以下几种:
秀场直播
这个不用说,在各个直播平台都存在的形式
游戏直播
游戏直播对码率要求比较高,观看人数也多,所以它也是流量贡献最大的直播形式。
移动直播
移动直播是最近一两年比较火的直播形式,比较明显的特点就是推流和播放比较容易, 通过手机APP就可以进行直播,所以手机直播一般也是推流数最多的直播形式。
活动赛事直播
这类直播一般对交互要求不高,所以一般都是HLS播放形式,延迟相对其他都会多一些。
答题直播
新型直播形式,每场直播的时间不长,突发流量比较高。
像移动直播、游戏直播等场景因为涉及到实时性的互动,对延时的要求也比较高。3~5秒延时基本上满足之前遇到的直播形式,但在某些场景下,直播的体验非常差,例如我们最常见的连麦,如果延时超过了1s,基本上整段垮掉。我们先来看一下延时是如何产生的。
在直播平台搭建的音视频传输过程中,不同阶段都会产生延时,总体可以分为三类:
1、设备端上的延时:包括采集端的采集、前处理、编码,播放端的接收、解码、后处理过程产生的延时,以及两端在编码后和解码前产生端网络延时。
2、设备端与服务器间延时:包括采集端传输数据到服务器的延时,以及服务器传输数据到播放端的延时。
3、服务器之间的延时:包括服务器间的传输延时、排队延时、服务器处理延时。
在直播平台搭建中如何降低延迟呢?在开发时候要怎么做呢?
1、对于这种场景,现在一般的直播平台采取的方案一般是借助第三方的连麦服务,然后再推给CDN厂商来加速视频传输的速度。
CDN就是视频加速,比如你的服务器在广州,而用户在北京,北京的用户看视频就会觉得很卡,CDN就是只能选择离用户最近的网络节点,北京的用户用北京的网络节点看视频,就不卡了。
2、推流、播放的优化
在开发音视频直播APP的时候,则会根据客户的需求定制专门的音视频SDK功能。在音视频效率和延迟方面,可根据不同的需求去优化相对应的音视频采集和处理能力,也可以在网络情况不好的情况下,降低码率进行播放,减少延迟。
3、传输协议的优化
手机视频直播APP是通过互联网进行传播的,所以也就会存在传输协议,而在传输的过程中想要降低整体的传输延迟,就需要使用到RTMP而不是基于HTTP的HLS协议进行传输。另外也可以使用定制的UDP协议来替换TCP协议,省去弱网环节下的丢包重传也可以起到降低延迟的作用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。