直播推流端网络优化策略

移动直播推流端的网络优化是直播开发的难点之一,下面简单说下我的理解和解决策略。


总体原则
要尽量加深对 H.264 等协议的理解,协议规范的制定者想出来的这些算法一方面当然是要尽量提高压缩效率,但同时他们也考虑到了 H.264 的各种应用,尤其是网络传输,事实上,直播推流端的网络优化要做好,必须要和编码器的算法配置相结合的


原则1
优先确保音频传输,这是以前视频会议的传输策略,在直播中,其实也可以借鉴


原则2
尽量确保传输过去的数据都是有用的数据
在由于视频帧分为I P B 三种帧,如果I帧有数据丢失,则后继传输的P帧和B帧因为不能单独解码,即使拿到解码出来意义也不大,很多player端会采取画面冻结等待I帧刷新的策略,因此,在网络不好时,可在降低帧率、码率的同时,适当改变GOP 结构,有时候也是不错的策略
同样,对I帧编码,适当采取多slice的策略也可以提高直播体验,虽然多slice可能会略微降低编码效率,但是在网络不稳定的情况下却可以提高直播体验


原则3
相比较短线重连,最好还是保持持续推流状态,即使画质下降得比较严重,当然,如果网络情况确实太差,那断线也是没办法的事情


原则4
注意传输包size,传输包size越大,越容易发生丢包(udp)或发送失败(tcp),而传输包size越小,包头等无效信息越多,似乎传输效率越低


tips
I 帧编码量化系数适当提高有时候也是不错的策略,由于I帧压缩率最低,因此,提高I帧量化系数可以减少I帧size,降低丢包概率,也可以稍微提高直播体验
动态码率和帧率是标配,不再赘述

你可能感兴趣的:(直播推流,视讯技术)