在直播系统源码开发过程中延迟做的优化

  • 发布时间:2020-11-14 10:29:14,加入时间:2018年11月17日(距今2401天)
  • 地址:中国»山东»泰安:山东省泰安市岱岳区徽京国际大厦10楼云豹科技
  • 公司:泰安云豹网络科技有限公司, 用户等级:普通会员 已认证
  • 联系:刘爱,手机:17175331170 QQ:3002512678

一、编码环节

首先,在编码过程中,确保在编码译码器(Codec)开启了延迟的设置。编码译码器一般都会有低延迟优化的开关,对于H.264来说,其优化效果尤其明显。另外,编码译码器一般都会有码控造成的延迟,如果把它当成编码器和解码器比特流之间的缓存,在不影响视频质量的情况下,并将其设置得尽可能小的话,也能够降低延迟。还有,不要使用视频MJPEG的视频压缩格式,至少使用不带B帧的MPEG4视频压缩格式,使用像H.264baseline profile的编码。这样的话可以有效的降低延迟,因为它能够以更低的码率编码全帧率视频。

二、传输协议

简单来说,就是在服务端节点和节点之间尽量使用RTMP而非HLS协议进行传输,这样可以降低整体的传输延迟。如果终端用户使用RTMP来播放,尽量在靠近推流端的收流节点进行转码,这样传输的视频流要比原始视频流更小。此外,如果有必要,可以使用定制的UDP协议来替换TCP协议,省去弱网环节下的丢包重传也可以降低延迟。

三、传输网络

开发过程中,于服务器节点中缓存当前GOP,并配合播放端优化视频首开时间。还可以让服务端实时记录每个视频流流向每个环节时的秒级帧率和码率,用于实时监控码率和帧率的波动,然后针对此情况进行技术调节即可。

四、推流、播放优化

播放端缓存控制对于视频的首开延迟也有较大影响,如果仅优化首开延迟,可以在零缓存情况下在数据到达的时候立即解码。但如果在弱网环境下为了消除网络抖动造成的影响,那么设置一定的缓存也有必要,因此需要在直播的稳定性和首开延迟优化上找到平衡,从而调整优化缓冲区大小值。除了动态调整buffer大小的策略之外,也可以利用实时监测的网络信息来动态调整播放过程中的码率,在网络带宽不足的情况下降低码率进行播放,减少延迟。

联系我时请说明来自志趣网,谢谢!

免责申明:志趣网所展示的信息由用户自行提供,其真实性、合法性、准确性由信息发布人负责。使用本网站的所有用户须接受并遵守法律法规。志趣网不提供任何保证,并不承担任何法律责任。 志趣网建议您交易小心谨慎。