1. 程式人生 > 其它 >直播類音視訊測試整理

直播類音視訊測試整理

測試人員,如何對直播類產品的直播質量進行測試呢?

使用者最關心的效能表現如何呢?

音視訊質量測試的標準是什麼呢?

真正決定未來競爭的關鍵,是在功能滿足使用者需求的前提下,提高直播軟體的各項質量指標,對流暢度、清晰度、音質、穩定性和流量消耗等進行專項測試,從而音視訊通話質量。

音視訊基本原理

工欲善其事,必先利其器。

首先,我們一起了解音視訊基本原理。

音視訊基本原理流程圖如下,雖然音訊和視訊每一塊環節上的處理方法上完全不同,但基本的流程一致:

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.比較新舊版本的耗電量