视频直播延时的解决方法

问题描述

在使用阿里云视频直播过程中,完成相关配置后,在进行视频直播时,存在延时情况。

解决方案

视频直播延时受多种因素影响,以下主要从推流端、服务端和播流端三方面说明导致视频直播延时的原因:

推流端

  • 编码GOP(Group Of Picture)大小,即关键帧间隔大小,为降低延迟通常设置为1s,视频的关键帧数量过大会造成直播延时。

  • 编码缓存过大,很多第三方推流软件通过采用增大编码缓存解决上行带宽不足导致的卡顿问题,建议您使用阿里推流SDK减少这方面的影响。

  • 编码端设置码率帧率以及编码档位过高,由于硬件条件限制,导致编码延迟。

    说明

    对于推流设备的使用,推流iOS建议您使用硬编码,因为硬编码不仅效率高,而且省电。而Android端因为机型复杂,CPU类型众多,采用硬编码可能会出现兼容性问题,所以Android端推流建议您使用软编码。

服务端

  • RTMP/FLV

    • 播放前延迟:为了保证直播秒开以及降低卡顿,服务端默认会缓存4s的数据,根据GOP大小不同会有波动,造成一定的直播延时。

    • 播放中延迟:由于网络出现抖动导致数据无法发送到客户端,这部分数据会缓存在服务端,待网络恢复后将这部分数据发送给客户端,因此会造成2秒~3秒的延时。

  • HLS

    苹果主推的HLS(M3U8)是基于小文件的TS分片的流媒体协议,每个分片有5s以上的时长(标准默认是10s),分片数量一般为3~4个,所以总延迟较高。

播放端

  • 开播支持快进策略:少部分自研SDK在收到大于接收缓存的数据后,会进行丢帧快进,保证低延迟。

  • 开播不支持快进策略:大部分播放器都是在接收缓存收满后,才进行解码显示,这部分接收缓存的大小也会导致延迟。

解决方案

如何降低直播延时,您可参见直播延时配置,对直播延时进行配置,根据不同的播流协议来配置延时时间。请参见直播延迟,降低直播延时。如果仍未帮您降低延时,您可以尝试使用低延时服务RTS(Real-time Streaming)。RTS具备千万级并发场景下的毫秒级延时直播能力,适用于较大的互动直播场景,弥补了传统直播3秒~6秒延时的问题,保障低延时、低卡顿、秒开流畅的极致直播观看体验。详情请参见低延时直播功能介绍

适用于

  • 视频直播