直播類音視訊測試整理
測試人員,如何對直播類產品的直播質量進行測試呢?
使用者最關心的效能表現如何呢?
音視訊質量測試的標準是什麼呢?
真正決定未來競爭的關鍵,是在功能滿足使用者需求的前提下,提高直播軟體的各項質量指標,對流暢度、清晰度、音質、穩定性和流量消耗等進行專項測試,從而音視訊通話質量。
音視訊基本原理
工欲善其事,必先利其器。
首先,我們一起了解音視訊基本原理。
音視訊基本原理流程圖如下,雖然音訊和視訊每一塊環節上的處理方法上完全不同,但基本的流程一致:
1.採集
音視訊需要經過攝像頭、麥克風上等硬體裝置上通過其上的感測器採集傳輸轉化,最終成為計算機數字訊號的過程。其中雙人視訊和群視訊中的播片,採集播放都是由ffmpeg外掛完成。
2.前處理
採集完的音視訊資料需要經過一些處理得到更好的效果,音訊的前處理包括增益控制(AGC)、噪聲抑制(ANS)、回聲抵消(AEC)、靜音檢測(VAD)等,視訊的前處理包括視訊降噪、縮放 等。
3.編解碼
一個訊號或者一個數據流需要進行編解碼操作,這裡指的變換既包括將訊號或者資料流進行編碼(通常是為了傳輸、儲存或者加密)或者提取得到一個編碼流的操作。視訊編解碼器眾多,例如vp8、vp9、MPEG、H264等;音訊類編解碼器可分兩大類,語音類編解碼器(SILK、Speex、iSAC等)和音訊類編解碼器(ECELT、AAC等)。
4.網路傳輸
在網路傳輸中,會針對不同的網路環境選取UDP或TCP傳輸,在即時音視訊通話上一般優先採用UDP,因為其可自由度、延時都較好;除外還會針對傳輸過程中存在的損耗進行處理,包括控制包大小、FEC機制、丟包重傳、Jitter控制、時延、亂序等等。
5.後處理
資料經過網路傳輸到接受方後經過解碼進入後處理環節,該環節中,音訊資料可能需要重取樣或混音,而視訊可能需要消除塊效應、時域降頻等等。
6.播放/渲染顯示
在經過後處理後,數字訊號轉化為聲音及畫面的過程就是播放/渲染。Windows系統中常用的音訊播放api有DirectSound、WaveOut、CoreAudio。
視訊質量標準
以下介紹視訊質量標準和測試方法。
1. 進房速度
正常網路要求:進入房間耗時小於1秒(iOS和Android端)
弱網路要求:弱網路下對進房速度沒有制定標準
Android建議使用中低端機型(如小米note),IOS建議使用iphone6S測試
測試方法
覆蓋場景:入口要覆蓋全,比如app內部、QQ、QQ空間、微信、朋友圈、新浪微博
1.一臺手機開啟毫秒級的秒錶,然後另一臺測試手機開啟被測產品,進入主播房間;
2.進入主播房間出現第一幀畫面後,暫停秒錶記錄資料;
3.需要重複以上步驟,進行20次資料,最終結果取均值。
競品資料
機型 |
應用 |
進入房間耗時(ms) |
安卓 |
競品A |
|
競品B |
||
競品C |
||
競品D |
||
蘋果 |
競品A |
|
競品B |
||
競品C |
||
競品D |
2. 清晰度
正常網路要求:跟上個版本相比,清晰度沒有出現劣化現象
弱網路要求:在網路丟包率10%場景下,清晰度跟正常網路的資料相比沒有出現明顯下降
工具:Imatest
環境除錯:
1.攝像頭和目標卡片的距離為0.75m,光源與被拍攝卡片的角度保持在45°,以確保卡片表面不會有陰影產生;
2.使用熒光燈(D65/CWF/SP35)進行測試前,至少預熱光源15分鐘;
3.測量反射性卡片表面的9個點的照度和色溫,以確保燈光一致性,調節被測手機位置,使其拍攝位置居中。
操作步驟:
1.使用不同競品拍攝卡片,將拍攝的圖片匯入PC,使用Imatest工具計算清晰度,點選 SFR:New File;
2.選擇需要處理的圖片,進行新增,選中圖片上的13個分佈點(如下圖)框圖處理,框圖完成點選【 Yes,Continue】
3.點選【 OK 】和【 Yes 】,計算生成的MTF50P即為圖片的清晰度
影響因素
清晰度受視訊解析度和位元速率影響較大,傳送位元速率越大且解析度越高,則視訊清晰度越好,注意不要脫離位元速率僅僅依據解析度大小來判斷清晰度高低。
競品資料
主播手機平臺 |
競品 |
清晰度值 |
IOS |
競品A |
|
競品B |
||
競品C |
||
Android |
競品A |
|
競品B |
||
競品C |
3.幀率
正常網路要求:由於人類眼睛的特殊生理結構,如果所看畫面幀率高於16的時候,就會認為是連貫的,因此幀率建議不低於16幀。設定幀率時可根據需求綜合考慮,對比競品。而幀率低於5幀時,人眼能明顯感覺到畫面不連貫,產生卡的感覺。
弱網路要求:在網路丟包率10%場景下,幀率跟正常網路相比沒有出現明顯下降
測試方法
裝置:2臺電腦 + 1個攝像頭 + 2部手機。一臺電腦播放視訊,一臺電腦錄製視訊,一部手機當主播,一部手機當觀眾,攝像頭採集觀眾端畫面。
視訊源:特定視訊demo.avi
操作步驟:
1.電腦1播放迴圈視訊demo.avi,電腦2插入攝像頭,開啟“會聲會影”軟體;
2.手機A發起直播,手機B當該直播的觀眾,A對準播放視訊的電腦,開啟“會聲會影”軟體,將錄製視訊電腦的攝像頭對準B;
3.點選“會聲會影”軟體的捕獲——》捕獲視訊——》設定“捕獲資料夾”,點選捕獲視訊(大概錄製10~20s),視訊捕獲完成。捕獲之後的視訊格式為mpg格式;
4.將mpg格式的檔案轉換為yuv格式:編輯mepg2Dec.cmd檔案,如下圖所示,將檔名改為所捕獲的視訊檔名,儲存之後執行mpeg2dec.exe;
5.開啟YUVviewerPlus.exe檔案,如下圖所示,設定錄製視訊的解析度(會聲會影錄製檔案預設解析度為720*480),點選open File開啟轉換後的yuv格式檔案;
6.點選“next”開始數幀數,以1s 30幀為基準,30下內場景影象變動的次數即為幀率(最好是數3s)3s影象變動的次數取平均值。建議取錄製視訊的開頭/中間/尾部3處求平均值。
影響因素
在網路正常無損傷的情況下,幀率主要受視訊影響,視訊位元速率越大則會編碼高幀率和高解析度的視訊碼流。
競品資料
競品 |
主播手機平臺 |
幀率 |
競品A |
IOS |
|
Android |
||
競品B |
IOS |
|
Android |
||
競品C |
IOS |
|
Android |
4. 卡頓次數
標準
正常網路要求:
弱網路要求:
測試方法
地球儀(IOS)或自動化測試工具(Android)
影響因素
在網路正常無損傷的情況下,幀率主要受視訊影響,視訊位元速率越大則會編碼高幀率和高解析度的視訊碼流
5.視訊質量穩定性
在各種損傷變化場景下,直播3小時內未出現花屏、黑屏、自動中斷等現象
測試方法
1.損傷自動化測試,並使用軟體會聲會影進行錄製;
2.檢視錄製的視訊是否有花屏、黑屏或異常中斷等現象。
音訊質量標準
以下介紹音訊質量標準和測試方法。
1.取樣率
正常網路要求:音訊取樣率大於16k
弱網路要求:音訊取樣率大於16k
測試需覆蓋直播場景和連麥場景。
測試方法
裝置:兩臺手機、可播放樣本裝置、錄音筆
1.一臺手機進入主播環境,另一臺手機作為觀眾端;
2.使用一個可播放語音(音樂)樣本的裝置在主播端進行播放;
3.觀眾端用錄音筆錄下接收到的語音
4.使用adobeaudition檢視頻譜:最高頻譜為7k左右,因此取樣率應為16k;
2.音質客觀評分
正常網路要求:正常網路直播時,語音音質均分>=4.0分
弱網路要求:弱網路直播時,語音音質均分>=3.5分
測試方法
直播模式:由於直播時延大於2秒,因此採用音訊線錄製並剪下後再用SPIRENT裝置進行測分。
裝置:兩條音訊線,一臺PC,兩臺手機
1.主播端的麥克風連線PC的揚聲器,觀眾端的揚聲器連線PC的麥克風;
2.PC迴圈播放48k語音樣本(樣本時長為10s);
3.開啟adobe audition進行錄製,錄製時間約2mins;
4.把錄製下來的音訊進行分段剪下(每段語音為10s,前面空白語音保留約3s)
5.上傳剪下的音訊檔案到SPIRENT裝置並算出POLQA均分。
連麥模式:時延低於1s,可用SPIRENT裝置直接測音質。
1.主播端與觀眾端連麥;
2.接入SPIRENT裝置測試音質,雙向測試時間約為8mins;
3.得出音質平均分
3.音畫同步
正常網路和弱網路下,出現音畫不同步現象概率為0。
測試方法
觀看直播過程中,主觀判斷視訊畫面中主播口型跟聲音是否對得上
連麥-噪聲抑制
主播和觀眾連麥模式下,主播→觀眾的噪聲消除效果跟上個版本相比,噪聲抑制效果沒有變差。
測試方法
裝置:音訊線一條,播放語音樣本裝置、PC一臺
1.主播端與觀眾端連麥;
2.把主播端手機放在消音室並固定位置,然後在消音室內使用可播放語音樣本的裝置播放噪聲樣本;
3.觀眾觀的揚聲器口連線PC的麥克風;
4.使用AdobeAudition進行錄製並儲存檔案;
5.相同方法錄製上一版本(保持相同的測試環境);
6.新舊版本進行對比,選取相同的語音段和噪聲段,算出信噪比。
4.連麥-回聲抵消
標準:主播和觀眾連麥模式下,單講和雙講時,說話方聽到的回聲較小,不會影響交流。
測試方法
單講:觀眾端開啟揚聲器,主播端說話,主觀聽是否有自己的回聲;反過來觀眾端說話,聽是否有回聲。
雙講:雙方都開啟揚聲器,並同時說話,主觀聽是否有回聲,或聲音斷續有剪下。
5.抗抖動能力
主播端:上行抖動時延在400ms內,視訊直播不會有影響
觀眾端:下行抖動時延在400ms內,視訊直播不會有影響
測試方法
1.主播端上行加400ms抖動,觀看觀眾端視訊畫面和語音;
2.觀眾端上行加400ms抖動,觀看觀眾端視訊畫面和語音。
6.CPU佔用率
主播端:CPU不超過40%(iOS:iPhone6、安卓無指定機型)
觀眾端:CPU不超過30%(iOS:iPhone6、安卓無指定機型)
測試方法
1.iOS:非越獄手機連線mac機,用instrument錄製CPU後使用指令碼算出CPU,CPU佔用率=(主程序+mediaserverd+backboard)/核數
2.Android:通過cmd命令,進入命令列,輸入adb shell top –m 10 >d:\xx.txt命令列列印手機的CPU消耗引數,再用過指令碼處理,提取出video和mediaserver的CPU消耗,兩者相加的和就是音視訊的CPU消耗。
7.流量
視訊直播時,觀眾端接收到的音視訊資料大小跟上個版本相比,流量沒有出現增加。
測試方法
Ios:
1.非越獄手機連線mac機,開啟終端,輸入:rvictl +手機identifier;
2.進入su模式,輸入:tcpdump –i rvi0 –vv –s 0 –w xx.pcap;
3.執行3mins,再用wireshark開啟檔案,檢視流量。
Android:
1.安裝抓包小工具:
2.程式開始執行後點擊小工具並開始;
3.用wireshark開啟生成的pcap檔案,檢視流量。
8.電量
觀看直播時,觀眾端的電池電量消耗跟上個版本相比,電量沒有出現增加。
測試方法
1.觀眾端觀看主播端,觀看10mins、20mins,記錄手機電量消耗多少個百分點;
2.保持相同環境和相同手機,測試上一版本;
3.比較新舊版本的耗電量
9.發熱量
觀看直播時,觀眾端的手機發熱量跟上個版本相比,電量沒有出現增加。
測試方法
1.觀眾端觀看主播端,觀看10mins、20mins、30min,用測溫槍測量手機後背溫度並記錄;
2.保持相同環境和相同手機,測試上一版本;
3.比較新舊版本的耗電量