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位置
作者 —— 靑い空゛
出处:http://www.cnblogs.com/ailumiyana/
除特别注明外,本站所有文章均为靑い空゛原创,欢迎转载分享,但请注明出处。
出处:http://www.cnblogs.com/ailumiyana/
除特别注明外,本站所有文章均为靑い空゛原创,欢迎转载分享,但请注明出处。