常見場景
TXLiteAVSDK通過TXLivePushListener和TXLivePlayListener的onNetStatus 回調累颂,會每隔 1-2 秒將 SDK 內部的狀態(tài)指標同步出來。例如暂筝,移動直播的Demo根據這個回調顯示的儀表盤:
問題定位
TXLivePushListener
1. 判斷推流質量:
指標 | 說明 |
---|---|
VRA + ARA = SPD | 說明推流質量好 |
VRA + ARA > SPD | 說明推流質量不佳,并且這種情況的持續(xù)時間比較長硬贯,音視頻數據會堆積在主播的手機上并最終被 SDK 丟棄 |
2. 卡頓問題:
指標 | 說明 |
---|---|
系統(tǒng)CPU使用率超過80% | 音視頻編碼的穩(wěn)定性會受到影響焕襟,可能導致畫面和聲音的隨機卡頓 |
系統(tǒng)CPU使用率經常100% | 會導致視頻編碼幀率不足,音頻編碼跟不上饭豹,必然導致畫面和聲音的嚴重卡頓 |
FPS <= 10 | 視頻幀率低于10幀會導致播放端明顯卡頓 |
TXLivePlayListener
QUE參數數值 | 參數名 | 單位 | 含義 | 計算方式 | 備注 | |
---|---|---|---|---|---|---|
1834 | audio_cache | ms | 音頻緩沖時長 | |||
1880 | video_cache_ts | ms | 視頻緩沖時長 | 最新接收的視頻幀pts - 當前正在渲染的視頻幀pts | ||
47 | video_cache_cnt | 幀數 | videojitterbuff緩沖總幀數 | videojitterbuffer本身list的緩沖幀數 + 視頻解碼器緩沖幀數 | video_cache_cnt / fps * 1000 可轉換成緩沖時長 | |
4 | video_dec_cache_cnt | 幀數 | 視頻解碼器緩沖幀數 | |||
-52 | av_recv_interval | ms | 音視頻當前網絡收幀時間差 | 當前最新接收的音頻幀pts - 當前最新接收的視頻幀pts | 標示當前的網絡收幀同步狀態(tài) | |
-47 | av_render_interval | ms | 音視頻當前幀渲染時間差 | 當前正在播放的音頻幀pts - 當前正在渲染的視頻幀pts | 標示當前播放音畫同步的狀態(tài) | |
5.0 | balance_point | ms | 平衡點 |
1. 音畫不同步問題:
指標 | 說明 |
---|---|
audio_cache 約等于 video_cache_ts 約等于( 視頻緩存總幀數 / fps * 1000 ) | 三者相互之間的差值超過500ms會導致音畫不同步 |
av_recv_interval > 500ms | 說明引起音畫不同步的原因可能是網絡收幀的時候就已經不同步鸵赖,可能的原因是推流的時候已經音畫不同步了 |
av_render_interval > 500ms | 說明引起音畫不同步的原因可能是SDK播放器的同步策略有問題 |
2. 播放回聲問題:
指標 | 說明 |
---|---|
0 | 表示沒開啟回聲消除 |
1 | 表示使用系統(tǒng)aec |
2 | 表示使用trae |
一般回聲問題是沒開啟回聲消除導致的。
3. 卡頓問題:
FPS視頻幀率低于10幀拄衰,當前視頻就會明顯看到卡頓現象了它褪。
原理參考
1.更多細節(jié)參考文檔:https://cloud.tencent.com/document/product/454/9867