音视频技术基础知识
目錄
一、音視頻基本原理
1、音視頻的主要處理過程
2、音視頻主要參數(shù)及格式
3、流媒體協(xié)議
二、音視頻視頻質量標準
1.視頻質量標準評估
2.音頻質量標準評估
三、直播測試一些關注點
一、音視頻基本原理
1、音視頻的主要處理過程:
[1]. 采集。比如從客戶端的攝像頭、麥克風和本地原始文件等,獲得基礎的音視頻數(shù)據(jù);
[2]. 預處理。在這個階段其實就是對音視頻進行修剪操作,畢竟收集到的原始數(shù)據(jù),不一定是想要在最后呈現(xiàn)的效果,因此在這里可能會進行美顏、裁剪、AI識別處理、聲音A3處理等;
[3]. 編碼。在經(jīng)過預處理或者沒處理過的原始文件,一般都會比較大,不適合進行傳輸,這個時候就需要進行壓縮、轉碼之類的操作,減 少文件提交,然后再進行傳輸,執(zhí)行編碼的工具叫編碼器,壓縮數(shù)據(jù)的算法叫做編碼格式;
[4]. 解碼。壓縮數(shù)據(jù)傳輸完之后,就需要解碼成原始文件一樣的數(shù)據(jù)才能使用,用來解碼的工具就是解碼器了,不過通常編碼器和解碼器 是一塊的,統(tǒng)稱為編解碼器codec;
[5]. 渲染與展示。接收到原始數(shù)據(jù)文件之后,就可以通過硬件或者軟件進行渲染與展示了,硬件例如顯示器、音響等,軟件有 SurfaceView;
[6]. 文件封裝/解封裝。其實從采集開始,音頻和視頻都是分開進行處理的,但是在進行傳輸?shù)臅r候,我們需要同一套音頻文件是在一塊 的,所以需要進行一次文件封裝。存放音視頻的容器叫封裝容器,文件類型叫封裝格式;
[7]. 網(wǎng)絡協(xié)議打包/解包。音視頻文件在網(wǎng)絡中傳輸?shù)臅r候,一般都會有一個特定的協(xié)議,也就是流媒體協(xié)議。網(wǎng)絡協(xié)議會將音視頻數(shù)據(jù)文 件打包成協(xié)議包,通過網(wǎng)絡協(xié)議端口發(fā)送出去,接收方接收到網(wǎng)絡包之后,要通過網(wǎng)絡協(xié)議解開協(xié)議包,才能獲得音視頻數(shù)據(jù)文件;
[8].抖動緩沖區(qū)(JitterBuffer)。網(wǎng)絡抖動就是實際發(fā)(收)的數(shù)據(jù)沒有發(fā)(收),判斷是否抖動就是看丟包率是否增加、 往返時延 (RTT)是否增加、發(fā)送速率是否降低。 JitterBuffer就是為了減少網(wǎng)絡抖動給音視頻傳輸帶來的影響而產(chǎn)生的,JitterBuffer是傳輸過程中的一個緩沖區(qū),連接著解碼器和網(wǎng)絡協(xié)議
棧。JitterBuffer會有意地延遲音視頻傳輸時間,將數(shù)據(jù)先緩存在緩沖區(qū)中,并且也會將之前緩存的數(shù)據(jù)發(fā)送到接收端,可以理解成我們在網(wǎng)上 看電視的時候的視頻緩存,這樣的話,即使出現(xiàn)了偶爾的網(wǎng)絡抖動,也不會影響到用戶的體驗。
2、音視頻主要參數(shù)及格式
視頻參數(shù):
音頻參數(shù):
原始數(shù)據(jù)格式:
- 視頻:YUV、RGB
- 音頻:PCM
編碼格式:
- 視頻:H.264(也叫AVG)、H.265
- 音頻:AAC、HE-AAC、Opus
封裝格式:
- MP4,MOV,FLV,RM,RMVB,AVI
更多編碼與格式相關的可看這篇:音視頻編碼格式與封裝格式_橘啊橘啊的博客-CSDN博客
3、流媒體協(xié)議
通常音視頻數(shù)據(jù)體積比較大,所以在網(wǎng)絡傳輸過程中都是連續(xù)不斷的多媒體流量,在網(wǎng)絡中傳輸音視頻數(shù)據(jù)的技術叫流媒體技術,傳輸使 用的協(xié)議就是流媒體協(xié)議。
通常使用的流媒體協(xié)議有以下幾種:
[1]. RTMP:基于TCP七層協(xié)議,性價比高,是目前直播推流的標準使用協(xié)議;
[2]. HTTP-FLV:基于TCP,使用HTTP傳輸FLV流,分發(fā)性能強,適用于CDN分發(fā);
[3]. HLS:基于TCP,被HTML5寫入標準支持,延時大,但是兼容H5;
[4]. RTP:基于UDP四層協(xié)議,定義簡單且性能好,但是需要額外的信令協(xié)議。
除了以上四種之外,有些廠商還會有自己的協(xié)議已達到特定的傳輸目的。
四種流媒體協(xié)議對比:
二、音視頻視頻質量標準
????????直播功能的測試,不僅要保障基本的業(yè)務功能需求,關注音視頻質量也是必不可少的。通過對流暢度、清晰度、音質、穩(wěn)定性和流量消耗等進行專項測試,不斷優(yōu)化各項質量指標,從而提高音視頻通話質量。
1.視頻質量標準評估(此處只列出常規(guī)的幾個):
1、首屏耗時
第一次點擊播放后,肉眼看到畫面所等待的時間。技術上指播放器解碼第一幀渲染顯示畫面所花的耗時。
通常說的 “秒開”,指點擊播放后,一秒內即可看到播放畫面。首屏打開越快,說明用戶體驗越好。
2、清晰度
清晰度受視頻分辨率和碼率影響較大,發(fā)送碼率越大且分辨率越高,則視頻清晰度越好。
需要注意的是:分辨率碼率太高,會導致運營成本太高,用戶端加載的速度也比較慢。分辨率碼率偏低,則容易出現(xiàn)不清晰的問題,影響
用戶體驗。
3、幀率
由于人類眼睛的特殊生理結構,如果所看畫面幀率高于16的時候,就會認為是連貫的,因此幀率建議不低于16幀。而幀率低于5幀時,人
眼能明顯感覺到畫面不連貫,產(chǎn)生卡的感覺。
幀率對視頻質量的影響遠遠大于分辨率和QP。QP:量化參數(shù),反映了空間細節(jié)壓縮情況。值越小,量化越精細,圖像質量越高,產(chǎn)生的
碼流也越長。
4、卡頓(流暢度)
指視頻播放過程中出現(xiàn)畫面滯幀,讓人們明顯感覺到“卡”。單位時間內的播放卡頓次數(shù)統(tǒng)計稱之為卡頓率。
流暢度一般以卡頓率來反映,卡頓的信息主要包含卡頓次數(shù)與卡頓時間;直播場景業(yè)界通常的卡頓定義是幀渲染間隔大于1s則為卡頓發(fā)
生;但通過主觀實驗,一般這個值達到200ms,觀眾即可感受到卡頓。
5、穩(wěn)定性
在各種損傷變化場景下,連續(xù)長時間直播未出現(xiàn)花屏、黑屏、自動中斷等現(xiàn)象。
6、延遲
延遲是數(shù)據(jù)從信息源發(fā)送到目的地所需的時間。延遲越低,則用戶體驗越好。
2.音頻質量標準評估
1、采樣率
直播場景和連麥場景下,音頻采樣率大于16k。
根據(jù)采樣定律,最小采樣率是最高可采樣頻率的2倍,也就是說16kHz可以采樣的聲音頻率范圍是8kHz以下。根據(jù)頻率表人聲頻率基本都
在8kHz以下,特別是語音頻率基本都是1kHz以下。因此16kHz的采樣率完全足夠。
2、音質客觀評分
此處介紹一種質量評估算法。POLQA (感知客觀語音質量評估),是一種全參考(FR)算法,可對與原始信號相關的降級或處理過的語音
信號進行評級。它將參考信號(講話者側)的每個樣本與劣化信號(收聽者側)的每個相應樣本進行比較。兩個信號之間的感知差異被評
為差異。
POLQA 結果主要是模型平均意見得分(MOS),涵蓋從 1(差)到 5(優(yōu)秀)的范圍。
3、音畫同步
由于播放器在處理音視頻的時候是分開進行解碼渲染的,要做到音畫同步則要給音畫添加上時間戳(PTS)的概念,時間相近的音頻幀和視頻
幀,我們就認定為是同步的兩個幀。
一般音視頻同步的做法有三種:視頻同步到音頻、音頻同步到視頻、音視頻同步的外部時鐘。
簡單的測試方法就是觀看直播過程中,主觀判斷視頻畫面中主播口型跟聲音是否對得上
4、連麥-噪聲抑制
噪聲抑制技術用于消除背景噪聲,改善語音信號的信噪比和可懂度,讓人和機器聽得更清楚。
5、連麥-回聲抵消
主播和觀眾連麥模式下,單講和雙講時,說話方聽到的回聲較小,不會影響交流。
單講:觀眾端開啟揚聲器,主播端說話,主觀聽是否有自己的回聲;反過來觀眾端說話,聽是否有回聲。
雙講:雙方都開啟揚聲器,并同時說話,主觀聽是否有回聲,或聲音斷續(xù)有剪切。
三、直播測試一些關注點
1、直播間角色
每一個業(yè)務場景,都要通過不同的角色進行分析。最基本的角色有:主播、連麥者、觀眾,可能還有其他角色。在設計用例、執(zhí)行測試的
過程中,都要從不同的角色進行測試和驗證,保證各個視角功能正常。
2、異常場景
直播中主要的異常場景有:申請連麥異常、同意連麥異常、上麥異常、下麥異常、多次上下麥異常、網(wǎng)絡切換導致的異常、直播中登錄態(tài)
踢出導致的異常等。
3、性能測試指標數(shù)據(jù)獲取
直播的性能測試場景有:連續(xù)長時間開播、重復開播關播、開啟美顏直播、贈送禮物等
可通過使用xcode\android studio等分析觀察指標數(shù)據(jù),也可通過安卓測試工具-性能監(jiān)控/iOS太極-更多-性能監(jiān)測打開相應指標開關,
或通過打印日志確定當前數(shù)值。
4、媒體音量與通話音量
通話音量指的是進行語音、視頻通話時的音量;媒體音量指的是播放背景音樂、視頻、音效的音量。通話音量和媒體音量彼此獨立,一個
的設置不會影響到另一個。兩者的差異:
SDK 使用的音量類型受音頻路由、頻道場景、用戶角色和音頻應用場景影響,所以在測試的過程中,需要從用戶體驗出發(fā),考慮各個不同的方面聲音的播放
總結
- 上一篇: jvm动态年龄计算规则以及为什么要这样做
- 下一篇: 推荐书籍(精选)