搞定直播软件系统延时问题的小技巧

发布来源:云豹科技
发布人:云豹科技
2019-01-04 09:10:25

常言道“巧干能捕雄狮,蛮干难捉蟋蟀。”即做事需要讲究方法不要蛮干,这个道理在开发直播软件系统的过程中也同样适用。我们都知道延时对于直播app来说就等于“致命伤害”,如果不克服这一点就无法在浩浩荡荡的互联网大军中生存。于是为了应对这一问题,我们可以简单总结一下关于低延迟优化方面的几点技巧。

1.传输协议的优化

如果终端的用户使用RTMP协议播放,就需要去靠近推流端的节点进行转码,这样一来传输的视频流就会比原始的视频流更小一些。在服务端的节点之间尽量使用RTMP进行传输,可以降低整体的传输延迟。有必要的话还可以使用定制的UDP协议,以避免弱网环境下的丢包重传,从而降低延迟。但是这一协议的缺点有两个:一个是容易出现丢包导致的花瓶或缺少关键帧的解码参考,另一个是视频流的传输和分发不通用。市面上的CDN厂商支持的都是标准的传输协议,所以就需要定制UDP协议的一方在UDP的基础上做好丢包控制。

直播软件源码

2.推流中播放的优化

播放端的缓存控制对视频的首开延迟有较大的影响,如果仅仅只优化首开延迟的话,就需要在零缓存的情况下,在数据到达之后就立即进行解码。但是如果为了消除在弱网环境下网络抖动所造成的影响,就需要设置一定的缓存然后在直播的稳定性和首开延迟优化之间找到平衡点。所以我们可以在播放器开启时采用非常小或者是零缓存的方法,通过下载首片视频的耗时决定下一个时间片段的缓存大小,还可以同时在播放过程中实时监测当前网络并调整播放过程中的缓存大小。这一方法不仅可以降低首开的时间还可以极大程度的消除网络抖动所造成的影响。除了调整缓冲器的大小,还可以利用实时监测的网络信息去动态调整播放过程中的码率,然后在带宽不足的情况下降低码率播放,减少延迟。

3.传输网络的优化

开发直播软件系统时,服务端的节点中会缓存当前的GOP然后配合播放端优化视频的首开时间。大部分的服务端都会实时记录每个视频流所流向每个环节时的码率和帧率,从而实时监控码率和帧率的波动情况,客户端可以通过查询获取当前最有节点和出现故障的节点或线路。

直播系统源码

4.编码的优化

编码器通常会有码控造成延迟,所以在不影响视频质量的情况下可以把码率设置的小一点降低延迟。而固定码率编码CBR能在一定程度上消除网络抖动的影响,并节省网络带宽降低延迟。

开发直播软件系统时需要在不影响用户使用体验的情况下做到低延迟,所以在优化直播过程中的延迟问题也是需要不同技巧的。无论是哪一种技巧,最终目的都是为了提升用户使用体验,增加用户黏性从而得到长久发展。

本文声明原创,转载请注明出处。(www.yunbaokj.com)

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任