在使用者眼中,優秀的音視訊產品應該具有清晰、低延時、流暢、秒開、抗丟包、高音效等特徵。為了滿足使用者以上要求,網易雲信的工程師通過自建源站,在SDK端為了適應網路優化進行QoS優化,對視訊編碼器進行優化,同時對音訊演算法進行優化。
推薦閱讀
《短視訊技術詳解:Android端的短視訊開發技術》
《如何快速實現移動端短視訊功能?》
弱網環境測試
網易雲信直播專案上線後,出現了音視訊卡頓的問題,音視訊卡頓現象通常出現在網路條件不是特別理想的情況,一般直播畫面頻繁出現緩衝標誌或者直播畫面一卡一卡的現象。
造成直播視訊卡頓的原因:
1、CDN 節點覆蓋不全:CDN伺服器覆蓋不足導致區域卡頓、運營商覆蓋力度不足導致區域性卡頓;
2、CDN 接流節點不佳:主播上行推流卡頓導致直播卡頓;
3、主播網路差:資料上傳受阻;
4、觀眾網路差: 資料下行受阻;
分析解決策略:
1、CDN節點覆蓋不全:接入多家CDN節點,儘可能覆蓋全球網路;
2、CDN接流節點不佳:自建源站;
3、主播網路差:SDK開發對QoS上行調整;
4、觀眾網路差:SDK開發對QoS下行調整;
測試需求:直播端QoS測試;
測試難點:
1、如何實現低成本、高效率的弱網環境?
2、怎樣的網路才是導致使用者卡頓的弱網環境?
3、弱網優化引數這麼多,如何高效提取分析資料?
4、測試完了,怎麼可以快速提供簡潔清晰的結果給開發?
弱網測試工具:
弱網損傷儀、network emulator、fiddler、tc;
弱網損傷儀成本比較高,使用複雜;network emulator是微軟的開源工具,可以實現頻寬、丟包、延時、抖動等弱網引數的限制,被稱為簡易版本的弱網損傷儀,實現成本比較低,最終搭建弱網環境選擇的是networkemulator工具;
network emulator工具使用建議:
1、辦公環境內使用人多時,4G訊號通道出現擁塞,雖然網路上行下行頻寬足夠,但網路丟包嚴重,造成限制網路不穩定的現象;
解決方法:開通支援開啟5G通道的無線熱點,部分緩解網路擁塞的現象;
2、弱網限制效果驗證;
弱網環境引數選擇;
常見弱網限制引數;
頻寬、丟包、延時、抖動、綜合網路;
具體數值選擇方法:
第一步:逼近法,對上述限制引數從由高到低、由低到高給出範圍;
第二步:業界標準和產品需求去反向要求開發優化的力度;
第三步:通過大資料篩選使用者卡頓場景資料,覆蓋使用者出現卡頓的場景;
弱網測試常用引數:
測試常用高清視訊解析度為640*480,一般要求位元速率為800kbps以上,頻寬限制一般設定為三擋,800kbps、600 kbps以及400kbps;丟包會設定5%、3%、1%;延時會設定300ms、200ms、100ms等限制;綜合網路情況是將頻寬、丟包以及延時進行結合的引數;為了監控使用者實際使用的一些情況,也會進行一些4G、3G網路的覆蓋;
測試流程:
開發提交測試之後,測試會針對入網效果進行簡單測試,針對網路場景發現的bug返回給開發繼續優化,開發優化完成之後傳給測試,測試將結果再傳給開發進行詳細優化,過程需要反覆進行,下圖為測試開始進行的環境圖:
直播與播放連線在同一個Wifi下面,用network emulator進行弱網限制,直播與播放都是從CDN拉流,然後獲取直播和播放端一些音視訊相關的統計資料,在播放端通過觀測方式主觀評測優化效果。
測試效率分析:
1、Android 端資料手工收集;
2、資料匯入excel分析,耗時間;
3、測試工作量比較大;
解決策略:
1、Android 端開發 MCN
效能資料收集以及日誌分析工具;
2、測試工具平臺接收來自Android端的資料,進行資料彙總分析;
MCN Android 端:提供裝置效能資料上傳,包括CPU佔用率、記憶體佔用率、電量等資料,SDK統計資料上傳,輔助弱網測試、視訊測試等的開展。
實現原理:利用Android的系統API獲取系統效能引數getProcessMemoryInfo,讀取SDK儲存在本地的日誌,通過HTTP介面上傳到測試工具平臺展示。
測試工具平臺:支援解析日誌檔案和HTTP請求,利用highcharts作圖,提供資料對比分析作圖並且儲存功能,大大降低了測試完成之後資料整理作圖分析的工作量,給開發提供了最為直觀的測試結果。
測試執行:
測試結果展示:
上圖中的藍色線是實際頻寬,黑色線代表的是評估頻寬,從aos-1108-1這個圖可以看出評估以及實際佔用的頻寬是非常接近的,通過這個圖開發可以瞭解優化的效果,測試可以瞭解測試的結果。
視訊測試
使用者在視訊實際使用過程中會發現,網路以及裝置一致時,有些主播視訊可以更加清晰;有些主播動態的圖片會模糊,出現馬賽克的情況;有些主播畫面看起來比較細膩,甚至主播的毛孔都可以清晰看到,而有些主播看起來畫面是模糊的;這就需要開發通過替換編碼器的一些演算法或者做一些引數的調優對編碼器進行優化;
安卓端視訊測試方面會影響的因素包括:拍攝場景、編碼引數、裝置效能、安卓相容性以及網路。
前期的視訊測試主要依靠主觀評估,通過人肉眼檢視編碼的不同序列,運動劇烈的畫面看馬賽克、複雜的畫面需看細節、錄屏密集文字看邊緣銳度等等;客觀評估需要用PSNR。
PSNR評估是對編碼器效能的評估,在排除網路影響的情況下,依賴一些視訊序列評估編碼器的編碼質量。
同時視訊測試還需要看一下位元速率控制,看一下輸出位元速率是否符合設定給編碼器的位元速率;
視訊測試還需要考慮移動端裝置的效能,相同編碼引數下的CPU、記憶體的佔比情況;
測試執行:
測試環境會用到MCN Android端去搜集實時音A端和實時音B端的資料,需要用network
emulator模擬一些網路引數的影響,然後去測試工具平臺上進行評估。
音訊優化測試
音訊決定了70%的使用者體驗,雖說使用者對畫面的直觀感受是以看為主,以聽為輔。如果說一個主播在直播時只有畫面沒有聲音,這將直接影響使用者體驗;如果主播直播時聲音斷斷續續,或者主播聲音質量較低,都會影響直播的質量。
在音訊方面面臨的挑戰有:音訊編碼器,不同的音訊編碼器有Opus,AAC等,這些編碼器裡面的部分演算法不太一樣,其中包括對音訊的處理,對聲音峰值的處理,對網路引數的應對,它的處理方式不太一樣。實時音端的編碼器用的是Opus,Opus相對於AAC來說,編碼位元速率會更低,能夠提供一些更高質量的音訊體驗;網路對音訊體驗也有影響,無論音訊還是視訊都會受網路的影響;回聲消除對音訊體驗也有影響,如果沒有回聲消除,使用者的音訊體驗會相對較差;嘯叫以及安卓裝置的差異都會對音訊質量產生影響。
音訊質量的評估
音訊從IP電話開始發展,音訊的技術處理已經相對成熟,同時對音訊的測試技術也相對成熟,目前有較多付費軟體可以實現對音訊質量的評估,包括VQT等;
VQT:語音質量客觀評估工具,可以包括 POLQA(ITU-T P.863),PESQ(ITU-TP.862),PESQLQ / LQO(P.862.1),PESQ WB(P.862.2),PAMS(ITU-TP.800)和PSQM / PSQM +(ITU-TP.861)等音訊質量的評估;
目前網易雲信使用VQT中的POLQA來評估網路變化對音訊的影響,該評估主要使用了MOS分值,這是衡量通訊系統語音質量的重要指標,5分為評估的最高分;
安卓端的覆蓋策略首先會提供一個線上資料收集平臺,根據不同的手機型號提交測試需求,也會挑選市面上TOP20的機型去做覆蓋,也會挑選一些使用者反映問題最多的機型去做一些針對性測試覆蓋;
VQT中POLQA的環境配置:
優化後的POLQA環境配置:
優化後的POLQA環境配置可以對網路引數進行評估,對資料進行整合,實現多組資料的對比,實現自動化結果的展示。
以上就是安卓端音視訊測試全過程,想要獲取更多產品乾貨、技術乾貨,記得關注網易雲信部落格。