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?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章