-
Notifications
You must be signed in to change notification settings - Fork 271
networkAdaptor
pengbin edited this page Jul 24, 2017
·
3 revisions
移动直播一般使用的是无线网络, 相对于有线网络, wifi和4G等无线网络的可靠性要差很多. 直播过程中可能会经常遇到信号覆盖不佳导致的高丢包、高延时等问题. 并且直播主要是使用上行带宽, 而众所周知,在国内上行的带宽是要远小于下行的. 在用网高峰期,由于上行带宽的限制, 网络拥塞的情况时有发生。本推流SDK 主要通过网络自适应的策略来针对弱网的问题尽心优化. 主要是在SDK内部通过对发送数据的收集和统计, 根据网络的特性得出当前网络状况的估计值, 在根据估计结果对视频的编码策略进行调整, 最终保证直播推流的流畅.
-
网络状况估计 主要就是判断出当前的网络状况在变差还是变好, 并且得出当前上传的带宽的估计值
- 在网络变差的时候需要牺牲部分质量, 压缩得厉害一些, 这样码率可以小一点(需要上传的数据更少一点)
- 在网络变好的时候需要能够提高画面质量, 适当调高码率, 这样能够充分利用带宽得到更优的观看体验
以上功能会影响到最终的观看体验, 因此我们增加了开关, 如果用户对网络比较自信,可以关闭此功能
- 视频编码参数调整
视频编码的调整主要包括如下三种情况
-
动态修改编码器的目标码率 代价最小的一种调整方式, 调整结果主要是当网络差时, 画面会模糊一些, 当网络较好时, 画面变清晰.
-
当数据累计时, 丢弃不重要的部分视频数据 由于视频数据之间是有参考关系的, 被参考的帧的重要性要高于不被参考的帧 因此丢弃数据的时候需要有优先级的概念, 优先丢弃重要性低的. 而当被参考帧被丢弃时, 参考它的所有图像也必须丢弃,否则会引起花屏.
-