質量透明那些事兒(二):卡了?糊了?三步找出問題所在

此前一篇中,我們聊到了在實時音視頻場景下會遇到哪些常見的質量問題,對質量問題追根溯源的方法,以及將實時音視頻質量“透明化”的重要性。那麼在一通視頻通話中,哪些因素會影響質量?各因素之間的關聯是什麼?發現問題後,如何從衆多監測數據中尋找出線索?如何分析?我們在這一篇內容中以免費面向開發者的實時音視頻質量透明工具聲網水晶球爲例,講講如何查詢。

聲網水晶球(Agora Analytics)是 Agora 爲開發者提供的全週期通話質量監測、回溯和分析的解決方案,致力於幫助你及時發現問題、定位原因,並最終解決問題以提升用戶體驗。水晶球中有三大功能:

  • 通話調查:是免費開放給所有開發者的。

  • 數據洞察:面向用戶量較大的開發者,可以通過它瞭解整體的用量與質量。

  • 實時數據:可以幫助你實時地掌握整體動態,及時識別異常通話體驗和異常根因。

通過水晶球的“通話調查”可以讓開發者實時地查詢到每一通通話的質量情況,包括上下行碼率、網絡上下行質量、用戶行爲、用戶設備性能與狀態等信息。我們將這些數據信息全部進行了可視化處理,能讓開發者一眼看出問題所在。

通話調查中提供的數據包括:

  • 設備 CPU 狀態

  • 本地採集/遠端播放音量

  • 音視頻發送/接收碼率

  • 視頻發送/接收幀率

  • 視頻接收分辨率

  • 音視頻上行和端對端的丟包率

  • 音視頻卡頓情況

  • 用戶行爲(一些重要的行爲,比如加入頻道失敗、關閉麥克風等)

  • 用戶對通話的主觀評分

通過對這些數據的交叉分析,我們可以找到質量問題的根源。在水晶球中,這些數據都會以可視化的形式直觀顯示出來。

與質量有關的那些關鍵詞

在瞭解任何一個工具如何使用之前,我們首先都要先將概念統一。以下這些概念,你會頻繁地在使用水晶球的過程中遇到:

頻道:頻道都是在調用 API 時創建的,用戶會在頻道中進行音視頻通話,當最後一個用戶離開頻道的時候,這個頻道會被自動銷燬。

通話:我們將第一個用戶加入到頻道,直至最後一個用戶離開頻道,整個過程視作一個通話。如果發現某個頻道出現了卡頓,在「通話調查」中搜索頻道號的時候,就會顯示頻道號相關的通話。

用戶名:每個用戶在頻道中都有唯一的用戶名。開發者可以用UID(整型)或 User Account(字符串型)來表示用戶名。當用戶加入頻道的時候,就會傳入用戶名。所以在進行通話調查的時候,你也可以通過搜索用戶名的方式來找到出問題的通話。

接收端、發送端:在一個通話中,每個用戶都可以是發送端或接收端。但是在數據統計中,如果有一個用戶持續發送數據一定時間,比如持續的在說話,那麼我們就會將 TA 當做這段通話中的發送端,你也會在水晶球中看到 TA 的用戶名後面會跟着一個小喇叭的圖標。這會更便於我們調查問題原因是出在發送端,還是接收端。

總時長:對於一個通話來說,總時長計算的是從通話開始到通話結束經過的時間,也就是從頻道內第一個用戶進入到最後一個用戶離開經過的時間。對於通話中的一個用戶來說,總時長計算的是該用戶在這個通話中第一次加入頻道到他/她最後一次離開頻道所經過的時間。一個通話中的某個用戶可能多次加入和離開頻道,因此該時長不能準確反映用戶在頻道內的總時間。

另外,至於碼率、分辨率、幀率,我們就不多贅述了,相信大家早已爛熟於心。

進入通話調查你會看到什麼?

在登錄聲網賬號,進入Console 後你就可以找到水晶球。如果你的應用已經有過了通話,那麼在水晶球中就可以看到通話的通話質量信息,包括:

  • 通話基本信息:包含了你的項目名稱、頻道名稱、開始與結束通話的時間、總時長

  • 用戶列表:用戶名、所在區域、進出頻道的時間、總時長、在頻道內的實際時間和 SDK 版本等。

  • 通話體驗質量:各用戶作爲接收端的通話體驗質量。

在通話體驗質量面板中,音頻和視頻質量分佈在時間線的下方和上方。水晶球會紅色虛線來表示視頻中出現的模糊,紅色豎線(我們管它們叫毛刺)來表示視頻卡頓和音頻卡頓。(如下圖)

當你發現一個通話中出現異常曲線(如下圖中紅色曲線)時,可以點擊“查看詳情”,當鼠標懸停在用戶 ID 上時,該 ID 對應曲線會顯示爲高亮狀態。點擊有 ID 就可以進入端到端詳情頁面進一步查看端到端數據,包括設備狀態、幀率、網絡丟包和分辨率,只要出現有異常的情況,水晶球都會用紅色折線來表示,可以一目瞭然地發現問題。

在最近更新的水晶球中,我們還在頁面最下方加入了可以體現一些用戶行爲的事件軸。事件軸上有紅色、黃色和綠色的箭頭,分別代表着嚴重事件、一般事件和正常事件。

  • 嚴重事件會直接影響通話體驗,接收端將難以看到正常的畫面。這些事件包括用戶加入頻道失敗、網絡連接失敗、主動關閉音視頻模塊或停止攝像頭採集等。

  • 一般事件對通話體驗可能造成一定影響,包括用戶網絡狀態未知、IP 地址變動、用戶停止發送/接收音視頻流等。

  • 正常事件不會影響通話體驗,包括用戶成功加入頻道、打開攝像頭採集和收到音視頻首幀等。

如果你在調查用戶質量問題時,發現視頻卡頓的同時,事件軸上出現了紅色的箭頭,那麼卡頓很有可能是因爲用戶端的一些誤操作導致的。

舉個例子????

如果我們只是介紹水晶球功能、按鈕,對於大家來講肯定是在聽天書一樣。所以我們以一個「由於發送端網絡問題導致卡頓」這樣一個案例來講講,你就明白了。

假設,現在你收到了一個用戶的反饋“我視頻好卡!”。於是,你在打開水晶球頁面,根據他的 UID 找到了這個用戶的通話體驗數據:

你發現左邊音視頻的接收碼率都是正常的,通話體驗良好。再看看另一個用戶的數據,他遇到了視頻模糊(紅色虛線)的情況,並且頻繁出現卡頓(紅色毛刺)。那麼我們打開右側這個用戶的體驗詳情來看看,如下圖。

圖中,左側一列是發送端的數據,右側則是接收端的數據。

我們一步一步地分析。首先看第一行的圖表,不論是發送端還是接收端的系統 CPU 佔用率和 App CPU 佔用率都處於正常範圍,沒有出現任何預警信號(紅色折線)。

但看第二行,視頻上行、下行端到端丟包情況中,網絡上行出現了丟包,可以初步推測發送端的網絡比較差,這也導致了在相同時間下行也出現了丟包,這使得接收端出現了卡頓。所以基本可以斷定接收端出現的卡頓是由於上行網絡較差導致的。

這時,你可能會產生疑問,那如果接收端的卡頓是由於接收端自身網絡問題產生的,那麼在水晶球中看到的圖表會是怎樣的呢?來看下圖。你會看到發送端所有的數據都表現正常,只有接收端出現了丟包。這就可以斷定接收端的卡頓與發送端無關,只是由於他自身的網絡問題導致的。

是不是覺得問題調查很簡單?我們還在聲網官方文檔中心準備了更多的相關內容,如果你想了解更多,請點擊「閱讀原文」獲取。

通過「通話調查」我們可以查詢單個通話的質量問題,但是如何查看自己所有用戶的質量狀態呢?我們會在下一期內容中進一步分享。


另外,在3 月 26 日(今天)下午 15:00,我們的數據產品經理會在線上與大家分享如何用水晶球排雷、評估質量、提升體驗。快來掃碼報名吧。

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