Skip to content

networkAdaptor

pengbin edited this page Jul 24, 2017 · 3 revisions

网络自适应(Network Adaptor)


移动直播一般使用的是无线网络, 相对于有线网络, wifi和4G等无线网络的可靠性要差很多. 直播过程中可能会经常遇到信号覆盖不佳导致的高丢包、高延时等问题. 并且直播主要是使用上行带宽, 而众所周知,在国内上行的带宽是要远小于下行的. 在用网高峰期,由于上行带宽的限制, 网络拥塞的情况时有发生。本推流SDK 主要通过网络自适应的策略来针对弱网的问题尽心优化. 主要是在SDK内部通过对发送数据的收集和统计, 根据网络的特性得出当前网络状况的估计值, 在根据估计结果对视频的编码策略进行调整, 最终保证直播推流的流畅.

  • 网络状况估计 主要就是判断出当前的网络状况在变差还是变好, 并且得出当前上传的带宽的估计值

    • 在网络变差的时候需要牺牲部分质量, 压缩得厉害一些, 这样码率可以小一点(需要上传的数据更少一点)
    • 在网络变好的时候需要能够提高画面质量, 适当调高码率, 这样能够充分利用带宽得到更优的观看体验

以上功能会影响到最终的观看体验, 因此我们增加了开关, 如果用户对网络比较自信,可以关闭此功能

  • 视频编码参数调整 视频编码的调整主要包括如下三种情况
    • 动态修改编码器的目标码率 代价最小的一种调整方式, 调整结果主要是当网络差时, 画面会模糊一些, 当网络较好时, 画面变清晰.

    • 当数据累计时, 丢弃不重要的部分视频数据 由于视频数据之间是有参考关系的, 被参考的帧的重要性要高于不被参考的帧 因此丢弃数据的时候需要有优先级的概念, 优先丢弃重要性低的. 而当被参考帧被丢弃时, 参考它的所有图像也必须丢弃,否则会引起花屏.

    • 动态修改编码的帧率

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally