如何做好 Android 端音视频测试?
在用戶眼中,優(yōu)秀的音視頻產(chǎn)品應(yīng)該具有清晰、低延時(shí)、流暢、秒開、抗丟包、高音效等特征。為了滿足用戶以上要求,網(wǎng)易云信的工程師通過自建源站,在SDK端為了適應(yīng)網(wǎng)絡(luò)優(yōu)化進(jìn)行QoS優(yōu)化,對視頻編碼器進(jìn)行優(yōu)化,同時(shí)對音頻算法進(jìn)行優(yōu)化。
推薦閱讀
《短視頻技術(shù)詳解:Android端的短視頻開發(fā)技術(shù)》
《如何快速實(shí)現(xiàn)移動(dòng)端短視頻功能?》
?
弱網(wǎng)環(huán)境測試
?
網(wǎng)易云信直播項(xiàng)目上線后,出現(xiàn)了音視頻卡頓的問題,音視頻卡頓現(xiàn)象通常出現(xiàn)在網(wǎng)絡(luò)條件不是特別理想的情況,一般直播畫面頻繁出現(xiàn)緩沖標(biāo)志或者直播畫面一卡一卡的現(xiàn)象。
造成直播視頻卡頓的原因:
1、CDN 節(jié)點(diǎn)覆蓋不全:CDN服務(wù)器覆蓋不足導(dǎo)致區(qū)域卡頓、運(yùn)營商覆蓋力度不足導(dǎo)致區(qū)域性卡頓;
2、CDN 接流節(jié)點(diǎn)不佳:主播上行推流卡頓導(dǎo)致直播卡頓;
3、主播網(wǎng)絡(luò)差:數(shù)據(jù)上傳受阻;
4、觀眾網(wǎng)絡(luò)差: 數(shù)據(jù)下行受阻;
?
分析解決策略:
1、CDN節(jié)點(diǎn)覆蓋不全:接入多家CDN節(jié)點(diǎn),盡可能覆蓋全球網(wǎng)絡(luò);
2、CDN接流節(jié)點(diǎn)不佳:自建源站;
3、主播網(wǎng)絡(luò)差:SDK開發(fā)對QoS上行調(diào)整;
4、觀眾網(wǎng)絡(luò)差:SDK開發(fā)對QoS下行調(diào)整;
?
測試需求:直播端QoS測試;
?
測試難點(diǎn):
1、如何實(shí)現(xiàn)低成本、高效率的弱網(wǎng)環(huán)境?
2、怎樣的網(wǎng)絡(luò)才是導(dǎo)致用戶卡頓的弱網(wǎng)環(huán)境?
3、弱網(wǎng)優(yōu)化參數(shù)這么多,如何高效提取分析數(shù)據(jù)?
4、測試完了,怎么可以快速提供簡潔清晰的結(jié)果給開發(fā)?
?
弱網(wǎng)測試工具:
弱網(wǎng)損傷儀、network emulator、fiddler、tc;
弱網(wǎng)損傷儀成本比較高,使用復(fù)雜;network emulator是微軟的開源工具,可以實(shí)現(xiàn)帶寬、丟包、延時(shí)、抖動(dòng)等弱網(wǎng)參數(shù)的限制,被稱為簡易版本的弱網(wǎng)損傷儀,實(shí)現(xiàn)成本比較低,最終搭建弱網(wǎng)環(huán)境選擇的是networkemulator工具;
network emulator工具使用建議:
1、辦公環(huán)境內(nèi)使用人多時(shí),4G信號通道出現(xiàn)擁塞,雖然網(wǎng)絡(luò)上行下行帶寬足夠,但網(wǎng)絡(luò)丟包嚴(yán)重,造成限制網(wǎng)絡(luò)不穩(wěn)定的現(xiàn)象;
解決方法:開通支持開啟5G信道的無線熱點(diǎn),部分緩解網(wǎng)絡(luò)擁塞的現(xiàn)象;
2、弱網(wǎng)限制效果驗(yàn)證;
弱網(wǎng)環(huán)境參數(shù)選擇;
常見弱網(wǎng)限制參數(shù);
帶寬、丟包、延時(shí)、抖動(dòng)、綜合網(wǎng)絡(luò);
具體數(shù)值選擇方法:
第一步:逼近法,對上述限制參數(shù)從由高到低、由低到高給出范圍;
第二步:業(yè)界標(biāo)準(zhǔn)和產(chǎn)品需求去反向要求開發(fā)優(yōu)化的力度;
第三步:通過大數(shù)據(jù)篩選用戶卡頓場景數(shù)據(jù),覆蓋用戶出現(xiàn)卡頓的場景;
弱網(wǎng)測試常用參數(shù):
?
測試常用高清視頻分辨率為640*480,一般要求碼率為800kbps以上,帶寬限制一般設(shè)置為三擋,800kbps、600 kbps以及400kbps;丟包會(huì)設(shè)置5%、3%、1%;延時(shí)會(huì)設(shè)置300ms、200ms、100ms等限制;綜合網(wǎng)絡(luò)情況是將帶寬、丟包以及延時(shí)進(jìn)行結(jié)合的參數(shù);為了監(jiān)控用戶實(shí)際使用的一些情況,也會(huì)進(jìn)行一些4G、3G網(wǎng)絡(luò)的覆蓋;
測試流程:
開發(fā)提交測試之后,測試會(huì)針對入網(wǎng)效果進(jìn)行簡單測試,針對網(wǎng)絡(luò)場景發(fā)現(xiàn)的bug返回給開發(fā)繼續(xù)優(yōu)化,開發(fā)優(yōu)化完成之后傳給測試,測試將結(jié)果再傳給開發(fā)進(jìn)行詳細(xì)優(yōu)化,過程需要反復(fù)進(jìn)行,下圖為測試開始進(jìn)行的環(huán)境圖:
?
直播與播放連接在同一個(gè)Wifi下面,用network emulator進(jìn)行弱網(wǎng)限制,直播與播放都是從CDN拉流,然后獲取直播和播放端一些音視頻相關(guān)的統(tǒng)計(jì)數(shù)據(jù),在播放端通過觀測方式主觀評測優(yōu)化效果。
測試效率分析:
1、Android 端數(shù)據(jù)手工收集;
2、數(shù)據(jù)導(dǎo)入excel分析,耗時(shí)間;
3、測試工作量比較大;
解決策略:
1、Android 端開發(fā) MCN 性能數(shù)據(jù)收集以及日志分析工具;
2、測試工具平臺接收來自Android端的數(shù)據(jù),進(jìn)行數(shù)據(jù)匯總分析;
MCN Android 端:提供設(shè)備性能數(shù)據(jù)上傳,包括CPU占用率、內(nèi)存占用率、電量等數(shù)據(jù),SDK統(tǒng)計(jì)數(shù)據(jù)上傳,輔助弱網(wǎng)測試、視頻測試等的開展。
實(shí)現(xiàn)原理:利用Android的系統(tǒng)API獲取系統(tǒng)性能參數(shù)getProcessMemoryInfo,讀取SDK存儲(chǔ)在本地的日志,通過HTTP接口上傳到測試工具平臺展示。
測試工具平臺:支持解析日志文件和HTTP請求,利用highcharts作圖,提供數(shù)據(jù)對比分析作圖并且保存功能,大大降低了測試完成之后數(shù)據(jù)整理作圖分析的工作量,給開發(fā)提供了最為直觀的測試結(jié)果。
測試執(zhí)行:
測試結(jié)果展示:
上圖中的藍(lán)色線是實(shí)際帶寬,黑色線代表的是評估帶寬,從aos-1108-1這個(gè)圖可以看出評估以及實(shí)際占用的帶寬是非常接近的,通過這個(gè)圖開發(fā)可以了解優(yōu)化的效果,測試可以了解測試的結(jié)果。
?
視頻測試
?
用戶在視頻實(shí)際使用過程中會(huì)發(fā)現(xiàn),網(wǎng)絡(luò)以及設(shè)備一致時(shí),有些主播視頻可以更加清晰;有些主播動(dòng)態(tài)的圖片會(huì)模糊,出現(xiàn)馬賽克的情況;有些主播畫面看起來比較細(xì)膩,甚至主播的毛孔都可以清晰看到,而有些主播看起來畫面是模糊的;這就需要開發(fā)通過替換編碼器的一些算法或者做一些參數(shù)的調(diào)優(yōu)對編碼器進(jìn)行優(yōu)化;
安卓端視頻測試方面會(huì)影響的因素包括:拍攝場景、編碼參數(shù)、設(shè)備性能、安卓兼容性以及網(wǎng)絡(luò)。
前期的視頻測試主要依靠主觀評估,通過人肉眼查看編碼的不同序列,運(yùn)動(dòng)劇烈的畫面看馬賽克、復(fù)雜的畫面需看細(xì)節(jié)、錄屏密集文字看邊緣銳度等等;客觀評估需要用PSNR。
PSNR評估是對編碼器性能的評估,在排除網(wǎng)絡(luò)影響的情況下,依賴一些視頻序列評估編碼器的編碼質(zhì)量。
同時(shí)視頻測試還需要看一下碼率控制,看一下輸出碼率是否符合設(shè)置給編碼器的碼率;
視頻測試還需要考慮移動(dòng)端設(shè)備的性能,相同編碼參數(shù)下的CPU、內(nèi)存的占比情況;
?
測試執(zhí)行:
?
測試環(huán)境會(huì)用到MCN Android端去搜集實(shí)時(shí)音A端和實(shí)時(shí)音B端的數(shù)據(jù),需要用network emulator模擬一些網(wǎng)絡(luò)參數(shù)的影響,然后去測試工具平臺上進(jìn)行評估。
?
音頻優(yōu)化測試
?
音頻決定了70%的用戶體驗(yàn),雖說用戶對畫面的直觀感受是以看為主,以聽為輔。如果說一個(gè)主播在直播時(shí)只有畫面沒有聲音,這將直接影響用戶體驗(yàn);如果主播直播時(shí)聲音斷斷續(xù)續(xù),或者主播聲音質(zhì)量較低,都會(huì)影響直播的質(zhì)量。
在音頻方面面臨的挑戰(zhàn)有:音頻編碼器,不同的音頻編碼器有Opus,AAC等,這些編碼器里面的部分算法不太一樣,其中包括對音頻的處理,對聲音峰值的處理,對網(wǎng)絡(luò)參數(shù)的應(yīng)對,它的處理方式不太一樣。實(shí)時(shí)音端的編碼器用的是Opus,Opus相對于AAC來說,編碼碼率會(huì)更低,能夠提供一些更高質(zhì)量的音頻體驗(yàn);網(wǎng)絡(luò)對音頻體驗(yàn)也有影響,無論音頻還是視頻都會(huì)受網(wǎng)絡(luò)的影響;回聲消除對音頻體驗(yàn)也有影響,如果沒有回聲消除,用戶的音頻體驗(yàn)會(huì)相對較差;嘯叫以及安卓設(shè)備的差異都會(huì)對音頻質(zhì)量產(chǎn)生影響。
?
音頻質(zhì)量的評估
音頻從IP電話開始發(fā)展,音頻的技術(shù)處理已經(jīng)相對成熟,同時(shí)對音頻的測試技術(shù)也相對成熟,目前有較多付費(fèi)軟件可以實(shí)現(xiàn)對音頻質(zhì)量的評估,包括VQT等;
VQT:語音質(zhì)量客觀評估工具,可以包括 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)等音頻質(zhì)量的評估;
目前網(wǎng)易云信使用VQT中的POLQA來評估網(wǎng)絡(luò)變化對音頻的影響,該評估主要使用了MOS分值,這是衡量通信系統(tǒng)語音質(zhì)量的重要指標(biāo),5分為評估的最高分;
安卓端的覆蓋策略首先會(huì)提供一個(gè)線上數(shù)據(jù)收集平臺,根據(jù)不同的手機(jī)型號提交測試需求,也會(huì)挑選市面上TOP20的機(jī)型去做覆蓋,也會(huì)挑選一些用戶反映問題最多的機(jī)型去做一些針對性測試覆蓋;
VQT中POLQA的環(huán)境配置:
優(yōu)化后的POLQA環(huán)境配置:
?
優(yōu)化后的POLQA環(huán)境配置可以對網(wǎng)絡(luò)參數(shù)進(jìn)行評估,對數(shù)據(jù)進(jìn)行整合,實(shí)現(xiàn)多組數(shù)據(jù)的對比,實(shí)現(xiàn)自動(dòng)化結(jié)果的展示。
?
以上就是安卓端音視頻測試全過程,想要獲取更多產(chǎn)品干貨、技術(shù)干貨,記得關(guān)注網(wǎng)易云信博客。
?
?
總結(jié)
以上是生活随笔為你收集整理的如何做好 Android 端音视频测试?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剧本杀,继狼人杀之后的下一个风口
- 下一篇: 互联网1分钟 |1114