因為疫情影響,從2020 年2 月下旬全國院校開始啟用線上授課模式。線上授課模式主要包括2類平臺,一類是線上課程視頻點播(VOD)平臺,比如各種MOOC 課程視頻平臺;另一類是線上授課直播(Live stream)平臺,比如騰訊課堂(ke.qq.com),課堂派(ketangpai.com)等各種偏重線上授課直播平臺。單純線上課程視頻點播平臺無法滿足線上授課師生實時互動要求,所以線上授課模式通常以線上授課直播平臺為主要教學平臺以線上課程視頻點播平臺為輔助教學平臺。線上授課直播過程中,學生經(jīng)常會抱怨線上直播音視頻卡頓,播放視頻分辨率低,直播時延大,直播音視頻不同步等幾類線上直播播放質(zhì)量問題,這些線上直播播放質(zhì)量問題直接影響線上授課質(zhì)量。本文通過分析網(wǎng)絡(luò)直播工作原理與線上直播平臺架構(gòu)分析決定網(wǎng)絡(luò)直播音視頻穩(wěn)定性及播放視頻分辨率等播放質(zhì)量指標的關(guān)鍵因素及改善方法。
網(wǎng)絡(luò)音視頻直播流程可以分為如下幾個步驟:音視頻采集→處理→編碼和封裝→推流到邊緣流媒體服務(wù)器→流媒體分發(fā)(CDN)→播放器流播放。
音視頻采集是整個網(wǎng)絡(luò)音視頻直播過程的第一個環(huán)節(jié),它從網(wǎng)絡(luò)直播源獲取原始音視頻數(shù)據(jù),將其輸出到網(wǎng)絡(luò)直播過程的下一個環(huán)節(jié)。音視頻的采集涉及兩類數(shù)據(jù)的采集:音頻采集和圖像采集,它們分別對應(yīng)兩種完全不同的輸入源和數(shù)據(jù)格式。
音頻數(shù)據(jù)采集過程主要是通過音頻采集設(shè)備將環(huán)境中的模擬信號采集成 PCM 編碼的原始數(shù)據(jù)。音頻采集的采集源主要有microphone 陣列,系統(tǒng)音頻,以及其他設(shè)備音頻源。圖像的采集過程主要由攝像頭等設(shè)備拍攝成YUV 編碼的原始數(shù)據(jù)。視頻采集的采集源主要有攝像頭采集,屏幕視頻,及其他設(shè)備視頻源。
音視頻完成采集之后得到原始數(shù)據(jù)。根據(jù)用戶設(shè)置,在處理階段對原始音視頻數(shù)據(jù)做相應(yīng)處理,比如,音頻增加混音,降噪,聲音特效等處理;視頻增加時間戳,水印,濾鏡等處理。
經(jīng)過處理的音視頻原始數(shù)據(jù),數(shù)據(jù)量非常大,一個時長10 秒鐘的1080p 視頻,可達到1.1Gigabyte。受網(wǎng)絡(luò)帶寬限制,一般網(wǎng)絡(luò)直播平臺難以滿足音視頻原始數(shù)據(jù)直播傳輸?shù)募磿r性要求。因此,音視頻數(shù)據(jù)必須要進行編碼處理。對流媒體傳輸來說,編碼環(huán)節(jié)非常重要,它的編碼性能、編碼速度和編碼壓縮比會直接影響整個流媒體傳輸?shù)馁|(zhì)量和傳輸成本。
常見的音頻壓縮格式有,MP3,AAC,HE-AAC,Opus,F(xiàn)LAC,Vorbis(Ogg),Speex 和AMR 等。音頻采集和編碼面臨的主要技術(shù)挑戰(zhàn)在于:時延敏感、卡頓敏感、噪聲消除(Denoise)、回聲消除(AEC)、靜音檢測(VAD)和各種混音算法等。
目前常用的視頻編碼標準有ITU-T 和ISO 發(fā)布的H.264 視頻壓縮標準。經(jīng)過H.264 編碼后的數(shù)據(jù)量可減少到原始數(shù)據(jù)量的百分之一。Google 和Cisco 開發(fā)的VP9 等編碼標準可以達到比H.264 更高的編碼壓縮比。
常見的視頻封裝格式有,MP4,3GP,AVI,MKV,WMV,MPG,VOB,F(xiàn)LV,SWF,MOV,RMVB 和WebM 等。圖像由于其直觀感受最強并且數(shù)據(jù)量較大,構(gòu)成了一個視頻內(nèi)容的主要部分。圖像采集和編碼面臨的主要挑戰(zhàn)在于:設(shè)備兼容性差、時延敏感、卡頓敏感等。
從直播端推流到流媒體服務(wù)器,目前推送協(xié)議主要有三種:Real Networks 和Netscape 公司提出的RTSP(Real Time Streaming Protocol),Adobe 公司提出的RTMP(Real Time Messaging Protocol),Apple 公司提出的HLS(HTTP Live Streaming)。目前主流的流媒體傳輸協(xié)議是RTMP及其變種RTMPT/RTMPS/RTMPE 等協(xié)議。推流到邊緣流媒體服務(wù)器后,流媒體再被復(fù)制分發(fā)到內(nèi)容分發(fā)服務(wù)器系統(tǒng)(CDN)以及存儲服務(wù)器。
內(nèi)容分發(fā)服務(wù)器(CDN)的作用是負責直播流的發(fā)布和轉(zhuǎn)播分發(fā)功能。
實現(xiàn)PC 端或移動端的RTMP 或HLS 流媒體拉流,解碼,在播放器展現(xiàn)。
目前市面上集視頻采集、編碼、封裝和推流于一體的SDK 很多,有商業(yè)版SDK,也有開源的SDK,比如著名的OBS (Open Broadcaster Software)軟件。使用OBS 配置好一個支持RTMP 或HLS 的邊緣流媒體服務(wù)器URL 就可以搭建一個簡單的網(wǎng)絡(luò)直播系統(tǒng)。基于前述網(wǎng)絡(luò)直播工作原理的視頻網(wǎng)絡(luò)直播平臺架構(gòu)如圖1 所示。
圖1 視頻網(wǎng)絡(luò)直播平臺架構(gòu)
線上授課直播平臺因為有直播端與播放端的實時互動要求一般設(shè)計成雙向網(wǎng)絡(luò)直播系統(tǒng),輔以文字消息通道等功能增加實時互動效果,整體平臺架構(gòu)仍然如圖1 所示。
通過分析前述網(wǎng)絡(luò)直播工作原理,我們可以看到網(wǎng)絡(luò)直播是一個環(huán)節(jié)較多的過程。決定線上授課直播平臺播放質(zhì)量的主要因素包括,直播端的受硬件限制的流媒體處理性能和網(wǎng)絡(luò)帶寬,邊緣流媒體服務(wù)器的性能和網(wǎng)絡(luò)帶寬,CDN 性能,播放端的網(wǎng)絡(luò)帶寬和受硬件限制的流媒體處理性能。
1)推流端。推流端的網(wǎng)絡(luò)帶寬及穩(wěn)定性,上行帶寬不足或網(wǎng)絡(luò)抖動導(dǎo)致的數(shù)據(jù)發(fā)送速率下降,無法達到流暢播放的幀率要求。推流端的計算性能,編碼端設(shè)置碼率幀率以及編碼檔位過高,由于硬件條件限制導(dǎo)致編碼速度變慢,無法達到流暢播放的幀率要求。
2)CDN。對于RTMP/FLV 協(xié)議,服務(wù)端默認緩存4s 左右的數(shù)據(jù),根據(jù)GOP(Group Of Pictures)即關(guān)鍵幀間隔大小不同會有波動,可以通過設(shè)置該緩存時間來減少卡頓影響。對于HLS協(xié)議,HLS(m3u8)是基于小文件的TS 分片的流媒體協(xié)議,每個分片都有5s 以上的時長(標準默認是10s),分片數(shù)量一般為3-4 個,可以通過增大m3u8 分片數(shù)量來減少卡頓影響。
3)播放端。大部分播放器都有接收緩存的,緩存收滿后,才進行解碼顯示,這部分接收緩存的大小也會影響播放的卡頓情況,可以通過增大接收緩存減少卡頓影響。
1)推流端。編碼緩存過大,推流SDK 采用增大編碼緩存來解決上行帶寬不足導(dǎo)致的卡頓問題。編碼端設(shè)置碼率幀率以及編碼檔位過高,由于硬件條件限制導(dǎo)致編碼延遲。減小編碼緩存,降低碼率幀率,可以降低直播時延。對于移動端推流,iOS建議使用硬編碼,因為硬編碼效率高而且省電;而Android 建議您用軟編碼。
2)CDN。RTMP/FLV 協(xié)議的GOP 設(shè)置較大。HLS(m3u8)的m3u8 設(shè)置較大。減小GOP,m3u8,可以降低直播時延。
3)播放端。播放SDK 不支持快進策略,大部分播放器都是在接收緩存收滿后,才進行解碼顯示,這部分接收緩存的大小也會導(dǎo)致延遲。設(shè)置播放SDK 支持快進策略,收到大于接收緩存的數(shù)據(jù)進行丟幀快進,可降低直播時延。
4)直播視頻分辨率低。直播視頻分辨率是由推流SDK 決定的。直播視頻分辨率并不能隨意設(shè)置,推流SDK 一般有一個適中的默認直播分辨率。過高的直播分辨率,不僅使推流端的受硬件限制的編碼速度,網(wǎng)絡(luò)帶寬無法支持,會使CDN 分發(fā)傳輸成本高,也會使播放端的受硬件限制的解碼速率,網(wǎng)絡(luò)帶寬難以支持。
通過以上分析可以看到,直播音視頻卡頓與直播時延有逆相關(guān)關(guān)系,需要在直播播放質(zhì)量與控制直播時延之間找到平衡點。
直播的流程是用戶將視頻主動推流到邊緣流媒體服務(wù)器進行直播,出現(xiàn)直播音視頻不同步的情況,是因為在推流,CDN 分發(fā),拉流播放過程中某些環(huán)節(jié)出現(xiàn)音頻的時間戳和視頻的時間戳不一致的情況。可以通過重新啟動推流或重新啟動播放器解決。
增大緩存可以改善線上直播音視頻播放質(zhì)量,但增大緩存也同時增大了傳輸時延,影響了線上授課要求的實時互動效果,需要在線上直播音視頻播放質(zhì)量與控制時延之間找到平衡點。參加線上直播授課的師生了解了網(wǎng)絡(luò)直播工作原理與線上授課直播平臺架構(gòu),了解了決定線上授課直播平臺播放質(zhì)量的關(guān)鍵因素,教師可以更好地利用現(xiàn)有線上授課直播平臺提高線上直播授課效果;學生可以以更好的心態(tài)接受互聯(lián)網(wǎng)數(shù)據(jù)傳輸質(zhì)量的固有的不穩(wěn)定性,以及音視頻直播播放質(zhì)量受推流端硬件性能,網(wǎng)絡(luò)帶寬,CDN 分發(fā),播放端網(wǎng)絡(luò)帶寬,硬件性能等客觀因素制約的事實,可以減少學生的焦慮和抱怨,使學生更專注于授課內(nèi)容本身提高學習效果與效率。