开发视频直播为避免延迟可以做这些优化( 二 )

第二种 , 传输网络优化

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

第三种 , 推流、播放优化

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

第四种 , 传输协议优化

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

推荐阅读