楊炳華,李麗娜
(云南開放大學 信息技術與資源建設中心,云南 昆明650500)
互聯(lián)網(wǎng)技術的進步,推動了網(wǎng)絡視頻行業(yè)的蓬勃發(fā)展,2016年以來,視頻直播應用系統(tǒng)呈井噴式增長,被廣泛應用到娛樂、教育、體育等各行各業(yè)。由于視頻互動直播具有更好的交互性和參與感,受到各行業(yè)廣大用戶的歡迎,市場潛力巨大。但是,受Internet網(wǎng)絡傳輸和音視頻技術的限制,視頻互動直播應用過程中難以避免延時、卡頓等現(xiàn)象,嚴重影響用戶體驗,制約視頻互動行業(yè)的發(fā)展。本文總結當下互動直播技術的現(xiàn)狀,分析Internet環(huán)境下對視頻互動直播進行性能優(yōu)化的方法。
視頻互動直播的典型傳輸架構主要有點對點傳輸和多點集中轉發(fā)兩種,如圖1所示。
在點對點的傳輸架構中,服務器端與用戶端之間只傳輸控制和會話信息,流媒體信息直接在用戶端之間進行點對點傳輸。該架構的優(yōu)點是避免了大量音視頻信息通過服務器中轉,實現(xiàn)用戶間直接轉發(fā),減少網(wǎng)絡延遲。缺點是:第一,參與互動直播的用戶必須有公網(wǎng)IP,以實現(xiàn)用戶間通信,或者系統(tǒng)支持通過NAT 穿透技術[1]實現(xiàn)用戶間端對端的直接通信,但這種穿透技術受網(wǎng)絡防火墻隔離等的影響較大,WebRTC[2]就是一種通過NAT穿透技術實現(xiàn)點對點通信的應用技術;第二,不適用于大規(guī)模用戶數(shù)的場景,僅適用于一對一或少量用戶之間互動的場景,例如一對一遠程培訓教學;第三,服務器端無法對音視頻內(nèi)容進行審查、錄制。
多點集中轉發(fā)架構是在傳統(tǒng)單向直播架構基礎上,使部分直播觀眾用戶具有主播的音視頻發(fā)布能力,變成多主播架構。所有主播用戶的流媒體信息統(tǒng)一推送至服務端后,由服務端進行混流、二次編碼,再分發(fā)至各個用戶。其優(yōu)點是集中可控,適用于多用戶交互的場景,同時在互動直播的基礎上可進行大面積單向直播,讓更多用戶以觀眾的身份參與進來。其缺點是對服務器端的運算能力、處理能力、網(wǎng)絡帶寬要求較高,音視頻的中間傳輸和混流產(chǎn)生較大延遲。
就目前技術而言,任何一種架構,最主要的瓶頸在于節(jié)點之間的網(wǎng)絡條件。
互動直播的業(yè)務流包括管理業(yè)務流、應用業(yè)務流和流媒體業(yè)務流。管理和應用的業(yè)務流是軟件的設計邏輯,目前不存在技術問題和難度。本文重點分析的是音視頻流媒體的業(yè)務流。
圖1 視頻互動直播的兩種傳輸架構
不管采用哪種架構,互動直播都是以直播為基礎的。使普通直播系統(tǒng)中的觀眾也具備主播的能力,在接收流媒體信息的同時將本端音視頻信息發(fā)送出去,使互動用戶既是內(nèi)容提供者(信號源),又是內(nèi)容消費者(播放)。因此,視頻互動直播的主要業(yè)務流與視頻直播相同,如圖2所示,信號源端依次完成對流媒體信息采集、前端處理、編碼和推流,播放端進行拉流、解碼并播放。
點對點傳輸架構與多點集中轉發(fā)架構的流媒體業(yè)務流區(qū)別在于:在點對點傳輸架構中,音視頻流媒體不經(jīng)過服務器,因此其推流、拉流的對象是平行的客戶端,在流媒體處理方面沒有圖2中“6.服務端處理”環(huán)節(jié);而在多點集中轉發(fā)架構中,所有主播用戶的推流目標都是服務器端,所有觀眾(包括互動觀眾)的拉流對象也是服務器端,流媒體信息均由服務器端統(tǒng)一處理和分發(fā)。
在整個流媒體業(yè)務流中,每個環(huán)節(jié)的處理能力、穩(wěn)定性、速率都與最終整體性能直接掛鉤,每個環(huán)節(jié)都是造成延遲、卡頓、花屏等現(xiàn)象的源頭。隨著技術的發(fā)展,終端設備在流媒體采集、編解碼處理等方面的效率越來越高,所產(chǎn)生的延遲近可忽略。對視頻互動直播性能影響最大的是推流和拉流環(huán)節(jié),即網(wǎng)絡傳輸環(huán)節(jié)。
圖2 直播主要業(yè)務流
目前的網(wǎng)絡信息技術水平已經(jīng)能夠輕易滿足各種單向視頻直播需求,但卻難以保障視頻互動直播的應用效果。一方面是網(wǎng)絡傳輸環(huán)節(jié)的問題,另一方面,主要是業(yè)務需求不同的原因。
一方面,單向視頻直播由于沒有交互,延時對用戶體驗并不敏感,幾秒、幾十秒的延遲對于觀眾而言是透明的,或者說是無法察覺的。而互動直播的場景中,對首開時間、延遲、卡頓等都有很高的要求,參與互動各方的音視頻延時必須極低才能保障正常交互。所謂“極低”延時,從正常交互角度看,保障3秒以內(nèi),但應盡量小于1秒,越低越好。
另一方面,與局域網(wǎng)環(huán)境不同,Internet最大的問題在于網(wǎng)絡質(zhì)量不穩(wěn)定、不可靠。雖然當下有線網(wǎng)絡、移動互聯(lián)網(wǎng)得到飛速發(fā)展,5G技術已經(jīng)開始進入商用,但相對而言,它仍是“復雜”、“不可靠”的網(wǎng)絡。在此環(huán)境下,要確保極低延時、連續(xù)的流媒體傳輸仍然是較大挑戰(zhàn)。
因此,視頻互動直播面臨的主要問題是如何在當下的Internet環(huán)境下,對延時和穩(wěn)定性進行優(yōu)化,以滿足應用的需求。
結合視頻直播流媒體業(yè)務流各環(huán)節(jié),根據(jù)對相關技術進行研究和實驗,發(fā)現(xiàn)可從編解碼技術、編碼參數(shù)調(diào)優(yōu)等措施進行優(yōu)化,提升傳輸效率、降低網(wǎng)絡延遲,以提高視頻互動直播的性能。
目前使用最廣泛的編解碼技術是H.264/AVC,是國際標準化組織(ISO)和國際電信聯(lián)盟(ITU)共同提出的繼MPEG4 之后的數(shù)字視頻壓縮格式,較H.263 等先前的諸多標準而言,在編碼效率、網(wǎng)絡適應能力等方面有較大提升。H.265是ITU-T VCEG 繼H.264之后制定的新一代視頻編碼標準,通過混合編碼框架等一系列技術,對碼流、編碼質(zhì)量、延時和復雜度等各方面取得進一步提升。在同等質(zhì)量情況下,H.265 比H.264 平均節(jié)省約30%-50%的碼率[3],同為1080P、25FPS的視頻,H.264編碼碼率為2-3Mb/s,而H.265僅為1Mb/s[4],意味著可在更低的傳輸帶寬下傳輸更高質(zhì)量的流媒體信息。
可見,升級編解碼技術可以極大節(jié)約視頻存儲和傳輸?shù)某杀?,傳輸?shù)據(jù)量的下降可以降低延時并提高整體穩(wěn)定性,用戶也可在同等網(wǎng)絡條件下選擇更好的視頻質(zhì)量。目前,H.265在視頻直播領域仍未被大量使用,但業(yè)內(nèi)的主流產(chǎn)品都已經(jīng)支持,且普及率正在不斷上升。
選用了H.265 或先進的編解碼技術,只是性能優(yōu)化的第一步,要使之真正發(fā)揮作用,必須進行專業(yè)調(diào)優(yōu)。畫質(zhì)級別、碼率、幀率、GOP、碼控方式是編碼器最重要的五個參數(shù),直接影響音視頻傳輸質(zhì)量和效果。
H.265 通過不同的Profile 檔次、Level 水平和Tier等級來衡量畫質(zhì)。以最大水平6.2Level為例,支持最大圖像尺寸值為35651584,該值意味著畫面的最大概分辨率為8192*4320,最大比特率可達240Mbps[5]。顯然,這種級別并不適用于網(wǎng)絡直播。碼率、幀率等參數(shù)值也存在類似問題。
GOP 全稱為Group of Picture,可理解為兩個視頻I 幀之間的間隔,是影響直播系統(tǒng)性能比較關鍵的參數(shù)。理論上,GOP 越長,則關鍵幀的間隔越長,數(shù)據(jù)壓縮效果就越好,意味著網(wǎng)絡傳輸?shù)拈_銷變小,但對應的,用戶首次進入顯示畫面前的等待時間(首開時間)也越長,因為播放器只有拿到一個關鍵幀才能顯示第一個完整畫面;而且,如果中途有異常數(shù)據(jù)幀出現(xiàn)時,會導致更長一段時間內(nèi)畫面不清晰。因此,直播尤其是互動直播中不建議GOP設置太長,當然GOP太小,對于網(wǎng)絡傳輸?shù)膲毫σ哺蟆?/p>
上述參數(shù)的調(diào)優(yōu),并沒有一個固定值用于視頻互動直播,參數(shù)的調(diào)優(yōu)是個系統(tǒng)工程,需要根據(jù)實際應用場景、網(wǎng)絡環(huán)境等設置最佳參數(shù)值。
Internet環(huán)境最大的問題是網(wǎng)絡不穩(wěn)定,網(wǎng)絡抖動明顯。網(wǎng)絡抖動對于視頻直播是致命的,會引起畫面卡頓和累積延遲。網(wǎng)絡抖動不可避免的,因此只能通過軟件層面優(yōu)化,以降低對用戶體驗的影響,具體措施包括動態(tài)調(diào)整推流編碼和消除累積延遲。
動態(tài)調(diào)整推流編碼是指程序動態(tài)檢測網(wǎng)絡狀態(tài),根據(jù)上行帶寬等指標的狀態(tài)自動調(diào)整碼率、幀率、分辨率等參數(shù)。當帶寬不夠或網(wǎng)絡質(zhì)量弱時,采取音頻優(yōu)先、降低碼率等措施,盡力而為的讓用戶參與互動;當網(wǎng)絡條件恢復時,根據(jù)策略自動恢復到較高推送質(zhì)量,在保障流暢的前提下盡力而為的提供更佳畫質(zhì)和效果。
累積延遲是指當出現(xiàn)視頻卡頓和延遲后,隨時間推移,延遲現(xiàn)象不斷累加,實時視頻被緩存到內(nèi)存中。例如:最初只有0.5秒延遲,當出現(xiàn)多次抖動或卡頓現(xiàn)象后,延遲會逐漸累積到2秒或3秒,最終導致無法正常進行交互。當出現(xiàn)這種現(xiàn)象時,程序應能夠檢測到并采取相應措施,例如強制清空緩存,以達到消除累積延遲的效果。
目前主流的Internet 視頻傳輸協(xié)議是RTMP和HTTP,二者均基于TCP協(xié)議。TCP被設計為能在不可靠的Internet環(huán)境中提供可靠的傳輸服務,理論上它更適用于Internet環(huán)境,但在視頻互動直播中則并非如此。TCP 協(xié)議為了提供可靠的傳輸服務,本身被設計得比較復雜,使得數(shù)據(jù)包的延時較大,無法滿足視頻互動直播的實時需求。
相對的,UDP 協(xié)議具有較高的傳輸效率,延時較小,但直接應用到Internet環(huán)境的視頻互動直播場景中,由于其不可靠特性,也無法滿足流媒體信息流暢通信需求。目前業(yè)內(nèi)已有多種針對UDP 的優(yōu)化方案,例如:RUDP(Reliable UDP)模型,在傳輸層和應用層之間新增了一個RUDP 層,通過封裝可靠傳輸協(xié)議頭,實現(xiàn)UDP 的可靠傳輸[6],既保障了數(shù)據(jù)的可靠性,又保留了UDP傳輸?shù)母咝?;另一個方案是Google 公司制定的QUIC 協(xié)議(Quick UDP Internet Connection),是一種基于UDP 的低時延互聯(lián)網(wǎng)傳輸協(xié)議,根據(jù)研究,QUIC 拉流比TCP拉流卡頓率降低57.1%[7]。
從另一個角度看,絕對“可靠的傳輸”也并不100%適用視頻互動直播服務。TCP、RUDP 等都是通過錯誤重傳、丟包重傳策略確保數(shù)據(jù)包的可靠性,而“重傳”也是產(chǎn)生延時的主要原因之一。對于實時性要求較高的視頻互動信息而言,當完成一次數(shù)據(jù)包重傳,可能它已經(jīng)“過期”了,用戶沒有必要看到1 秒甚至2 秒前的這小部分信息。因此,UDP 協(xié)議優(yōu)化,一方面是要提高它的可靠性,另一方面應當優(yōu)化系統(tǒng)的抗丟包能力,容許適當?shù)膩G包,避免重傳。
除網(wǎng)絡層容許適當丟包外,應用“噴泉碼”技術,可實現(xiàn)在少量丟包的情況下不影響數(shù)據(jù)本身的完整性。噴泉碼最早由Michael Luby 等人于1998年提出[8],其主要思想是:發(fā)送方把原始數(shù)據(jù)切割為N 個數(shù)據(jù)包,對切割后的N 個輸入包進行編碼生成任意數(shù)量的編碼符號,接收端只要接收到任意M 個編碼符號(M略大于N),即可較高概率地成功恢復出原始數(shù)據(jù)[9]。
通過應用噴泉碼技術,結合UDP協(xié)議,可將網(wǎng)絡傳輸?shù)男屎蛯崟r性最大化,是降低延時最有效的措施之一。
CDN (Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡)在視頻直播應用中效果非常出色,是解決大用戶量點播壓力的核心技術之一。但在互動直播場景中,傳統(tǒng)CDN效果并不理想,反而會由于CDN節(jié)點的分發(fā)機制增加傳輸延時。
視頻互動直播場景中,CDN 的應用需分情況選擇和設計。點對點架構中,用戶端的直接通信是其傳輸優(yōu)勢,一般而言不宜使用CDN進行分發(fā)。但是,在多點集中轉發(fā)架構中,當用戶數(shù)量較大的情況下,CDN 仍然是必須的關鍵技術,通過對CDN 傳輸協(xié)議、內(nèi)容緩存機制、節(jié)點選擇等的優(yōu)化,一方面可降低中間網(wǎng)絡傳輸?shù)拈_銷,另一方面可滿足超大用戶量訪問的需求。以聲網(wǎng)公司的SD-RTN(Software Defined Real-time Network)[10]技術為例,基于SDN 發(fā)展的underlay 網(wǎng)絡中轉加速技術,以UDP 協(xié)議為主,通過軟件定義優(yōu)化路由,智能計算最優(yōu)路徑,自動避免網(wǎng)絡擁塞,提供毫秒級網(wǎng)絡延遲的端到端傳輸服務。
除上述技術的優(yōu)化,應根據(jù)實際互動直播場景,對業(yè)務進行針對性優(yōu)化。
一是設計和選擇正確的直播模式。例如一對一或較少用戶進行在線培訓場景,可優(yōu)先考慮點對點模式,使用WebRTC 技術實現(xiàn)高效互動。如果互動人員較多,則應選用多點部署模式。
二是盡量減少瞬間互動用戶數(shù)。與現(xiàn)實世界中教室、會場等場景類似,如果同時有多個人同時發(fā)言、說話,現(xiàn)場秩序反而變得雜亂,互動直播中的“互動”也是同樣的道理,且一個用戶也不可能同一時刻與十余甚至上百人進行音視頻互動。因此,系統(tǒng)應控制同一時刻的互動用戶數(shù),使大部分用戶作為觀眾進行觀看即可,不僅能夠提高互動的效果,還能減少系統(tǒng)壓力。
三是豐富“互動”的形式?;拥男问讲⒉恍枰窒抻谝曨l的互動,可同時提供文字、彈幕、音頻(連麥)等互動方式,以上互動方式技術成熟、實現(xiàn)難度低、穩(wěn)定性高,交互效果也有其特色。
就目前而言,實施視頻互動直播仍然充滿挑戰(zhàn)的,風險較高,歸根到底是網(wǎng)絡條件的限制,而性能優(yōu)化工作又不是單一技術手段能實現(xiàn)。本文所述的幾種手段,對于Internet環(huán)境下視頻互動直播有一定優(yōu)化能力。
在實際應用中,有些優(yōu)化措施還需綜合考慮其它的因素。例如:H.265 標準在編碼效率上非常優(yōu)秀,但其計算開銷比H.264 大10~20倍,需要更強大的硬件支撐,因此,需要結合用戶的實際硬件環(huán)境。另外,H.265 由于專利收費過高的原因,導致推出多年來一直陷入叫好不叫座的窘境,難以全面推廣。
從行業(yè)整體發(fā)展來看,期望圍繞互聯(lián)網(wǎng)的各項技術,例如5G、IPv6加快發(fā)展和部署,為視頻互動直播提供更好的基礎支持;同時H.265、QUIC等技術能早日普及。