webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题

Posted 靑い空゛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题相关的知识,希望对你有一定的参考价值。

webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题


记录个iusse.

插入音频数据后,GetAudioInternal 进行操作决策:

Normal:正常播放。
Acceleration:变声不变调的减速播放算法。
Preemptive expand:变声不变调的减速播放算法。
Expand:由 NetEq 或解码器生成的丢包隐藏。
Merge:如果上一次是 Expand 造假出来的数据,那为了听起来更舒服一些,会跟正常数据包做一次融合算法。
Comfort noise (CNG):是用来产生舒适噪声的,比单纯的静音包听起来会更舒服的静音状态。
Expand(PLC):丢包补偿,最重要的无中生有算法模块,解决 “真丢包” 时没数据的问题,造假专业户 ;

测试网络良好不丢包,关闭视频,单独听音频,存在很多gap,主要原因为缓存数据不足.


high limit : 目标水位,图中红色曲线,缓存水位高于此水位会进行加速播放
low limit : 低水位,图中蓝色曲线,缓存水位低于此水位会进行拉伸音频样本减速速播放
buffer limit : 当前音频缓存水位,图中黄色曲线

可见当前高低水位分别在220ms和160ms左右,缓存水位常小于低水位,造成数据不足产生gap。

定位到原因,就对拉升做做文章就好了,调整expand拉升参数,使水位稳定到低水位上

前后波形对比:
红色箭头指示部分gap位置

参考:
https://developer.aliyun.com/article/782756?

以上是关于webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题的主要内容,如果未能解决你的问题,请参考以下文章

webrtc QOS笔记三 RTT计算,SRS增加XR

WebRTC笔记之N:最简单的聊天(音频+视频)

WebRTC系列分享 | WebRTC视频QoS全局技术栈

WebRTC[40]- WebRTC 如何在安卓系统上采集音频数据

WebRTC[40]- WebRTC 如何在安卓系统上采集音频数据

WebRTC系列分享 第二期 | WebRTC QoS方法之Pacer实现