文/賈嶠 唐靖寅 劉百祥
復(fù)旦大學(xué):高清視頻多級(jí)分發(fā)轉(zhuǎn)播之道
文/賈嶠 唐靖寅 劉百祥
隨著網(wǎng)絡(luò)多媒體技術(shù)的發(fā)展,高校校園網(wǎng)用戶對(duì)高清視頻實(shí)時(shí)轉(zhuǎn)播的需求急劇增加,但復(fù)雜的校園網(wǎng)絡(luò)環(huán)境給高清視頻轉(zhuǎn)播帶來(lái)很大的難度。復(fù)旦大學(xué)使用多級(jí)PC服務(wù)器構(gòu)建高清視頻轉(zhuǎn)播方案,取得了較好的效果。
近年來(lái),校園內(nèi)師生個(gè)人計(jì)算機(jī)普及程度已經(jīng)很高,用戶已經(jīng)習(xí)慣并樂(lè)于通過(guò)網(wǎng)絡(luò)流式媒體來(lái)訪問(wèn)各類音視頻服務(wù),而且會(huì)優(yōu)先選擇清晰度更高的服務(wù)。
伴隨著網(wǎng)絡(luò)視頻技術(shù)和業(yè)務(wù)的發(fā)展,各類重大體育賽事也開(kāi)始使用高清晰流媒體進(jìn)行網(wǎng)絡(luò)直播,而校內(nèi)的各類活動(dòng)也存在向全校師生轉(zhuǎn)播的需求。
目前,復(fù)旦大學(xué)校園網(wǎng)絡(luò)已經(jīng)覆蓋到校園中絕大多數(shù)的辦公、教室、宿舍區(qū)域。校園網(wǎng)絡(luò)出口帶寬有限,無(wú)法滿足大量用戶使用公眾網(wǎng)絡(luò)媒體服務(wù)商的并發(fā)需求。由于網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,VLAN繁多,各接入樓宇的網(wǎng)絡(luò)管理水平不一,校園網(wǎng)絡(luò)出口眾多,設(shè)備間差異化較大,組播方式難以實(shí)現(xiàn)。
復(fù)旦大學(xué)的校園網(wǎng)絡(luò)中常見(jiàn)的視頻分發(fā)通常為非實(shí)時(shí)方案,在活動(dòng)開(kāi)展中進(jìn)行錄制,延后發(fā)布供師生下載。
此外,復(fù)旦大學(xué)校園網(wǎng)還提供常規(guī)清晰度的電視轉(zhuǎn)播,但受服務(wù)器自身性能以及帶寬限制影響,也無(wú)法滿足大量用戶的更高需求。
本文提出了一個(gè)面向校園網(wǎng)絡(luò)現(xiàn)狀的高清視頻多級(jí)分發(fā)轉(zhuǎn)播方案,解決上述問(wèn)題。其主要思想是對(duì)視頻源進(jìn)行編碼壓縮,基于主控服務(wù)器和多級(jí)分發(fā)服務(wù)器相互配合實(shí)現(xiàn)復(fù)雜校園網(wǎng)絡(luò)的高清級(jí)視頻轉(zhuǎn)播,基于用戶來(lái)源的負(fù)載均衡、自動(dòng)故障恢復(fù)等功能。本方案在實(shí)際應(yīng)用中取得了良好的效果。
圖1系統(tǒng)框架
圖2 工作流程
為了滿足集中控制服務(wù)器和優(yōu)化網(wǎng)絡(luò)傳輸?shù)饶繕?biāo),整個(gè)解決方案的設(shè)計(jì)如圖1所示。整個(gè)方案由4個(gè)主要功能模塊組成,分別為視頻編碼服務(wù)器、中心控制服務(wù)器、主轉(zhuǎn)發(fā)服務(wù)器、次級(jí)轉(zhuǎn)發(fā)服務(wù)器。用戶在個(gè)人計(jì)算機(jī)需安裝兼容的視頻播放器。
主要功能模塊
1. 音視頻編碼服務(wù)器
音視頻編碼服務(wù)器配置音視頻采集卡,運(yùn)行編碼器實(shí)時(shí)采集并壓制音頻視頻流,其對(duì)CPU有一定的要求,對(duì)內(nèi)存、網(wǎng)絡(luò)需求較低。我們通過(guò)配置同時(shí)輸出多級(jí)碼率的音頻視頻流,以提供多樣化的選擇。
2. 中心控制服務(wù)器
提供用戶訪問(wèn)界面,匯總各級(jí)轉(zhuǎn)發(fā)服務(wù)器信息,提供用戶身份認(rèn)證,引導(dǎo)和控制用戶訪問(wèn)。
中心控制服務(wù)器向分發(fā)服務(wù)器發(fā)布轉(zhuǎn)播指令與網(wǎng)絡(luò)規(guī)則,接受分發(fā)服務(wù)器運(yùn)行狀態(tài),實(shí)時(shí)統(tǒng)計(jì)并提供顯示界面,引導(dǎo)用戶訪問(wèn)最合適的分發(fā)點(diǎn)。
3. 主轉(zhuǎn)發(fā)服務(wù)器
主轉(zhuǎn)發(fā)服務(wù)器將編碼服務(wù)器輸出的原始音視頻流分發(fā)給各次級(jí)分發(fā)服務(wù)器。為保障服務(wù)質(zhì)量,此服務(wù)器的輸出用戶不可見(jiàn)。
4. 次級(jí)轉(zhuǎn)發(fā)服務(wù)器
次級(jí)轉(zhuǎn)發(fā)服務(wù)器部署于各網(wǎng)絡(luò)分區(qū),直接從中心控制服務(wù)器獲取操作指令,對(duì)主轉(zhuǎn)發(fā)服務(wù)器或者上級(jí)轉(zhuǎn)發(fā)服務(wù)器提供的音視頻流進(jìn)行轉(zhuǎn)發(fā),用戶直接訪問(wèn)此類服務(wù)器。
此類服務(wù)器對(duì)CPU有一定的要求,對(duì)網(wǎng)絡(luò)要求較高,通常使用雙路千兆網(wǎng)卡以至更多配置為端口綁定,以盡量提供高帶寬支持更多用戶訪問(wèn)。
轉(zhuǎn)發(fā)服務(wù)器運(yùn)行守護(hù)進(jìn)程來(lái)接受指令和網(wǎng)絡(luò)規(guī)則,匯報(bào)自身運(yùn)行狀態(tài),實(shí)際的工作流程如圖2所示。
轉(zhuǎn)發(fā)服務(wù)器同時(shí)接收主控服務(wù)器下發(fā)的iptables策略,控制訪問(wèn)來(lái)源。
技術(shù)要點(diǎn)
1. 端口綁定
在交換機(jī)或服務(wù)器進(jìn)行配置,通過(guò)多組網(wǎng)絡(luò)接口綁定整合為一組更高帶寬和可用性的鏈路。在此方案中采用Linux服務(wù)器安裝ifenslave包進(jìn)行配置,具體配置舉例如下:
表1 視頻特征和編碼技術(shù)要點(diǎn)
表2 視頻/音頻編碼方案
圖3 結(jié)構(gòu)未優(yōu)化前出現(xiàn)的鏈路帶寬瓶頸
2. 編碼規(guī)則
校區(qū)內(nèi)直播的需求根據(jù)視頻內(nèi)容的不同,主要分為以下3個(gè)類型:(1)會(huì)議、講座、訪談;(2)體育賽事;(3)文藝演出。這三類視頻具有不同的特征,用戶需求具有一定的差別,因此在編碼時(shí)技術(shù)要點(diǎn)不盡相同(見(jiàn)表1)。同時(shí),視頻編碼必須考慮到編碼的實(shí)時(shí)性和客戶端顯卡硬件解碼的要求,兼顧編碼器的編碼速率和性能較差的計(jì)算機(jī)實(shí)時(shí)解碼。
對(duì)于會(huì)議、講座、訪談?lì)惞?jié)目,視頻主要關(guān)注對(duì)象為主講人,場(chǎng)景通常穩(wěn)定于明亮的室內(nèi),因此視頻編碼的主要目標(biāo)為保留人物細(xì)節(jié)。而由于此類節(jié)目中以人聲為主,因此可以采用較低采樣率和較低碼率,保留人聲音質(zhì)即可。
對(duì)于體育類節(jié)目,由于此類節(jié)目中存在大范圍的運(yùn)動(dòng)和大幅度的鏡頭變化,因此需要較強(qiáng)的運(yùn)動(dòng)向量預(yù)測(cè)算法以滿足視頻編碼的需求。同時(shí),由于體育比賽的實(shí)時(shí)性很強(qiáng),所以在編碼時(shí)需要設(shè)置預(yù)先緩沖大小,使得客戶端只要經(jīng)過(guò)短暫的緩沖即可獲得關(guān)鍵幀。而音頻編碼的質(zhì)量要求相對(duì)降低,保留解說(shuō)的人聲音質(zhì)和現(xiàn)場(chǎng)音效即可。
對(duì)于文藝演出類節(jié)目,此類節(jié)目具有背景亮度灰暗,前臺(tái)亮度明顯的特征。文藝演出類的視頻效果對(duì)顏色的鮮艷程度和演出的音質(zhì)音色都具有比較強(qiáng)的依賴,因此編碼時(shí)需要考慮到對(duì)灰暗部分細(xì)節(jié)和色彩效果的保留,降低色度的量化方案,并且強(qiáng)化碼率重分配以達(dá)到保留暗部細(xì)節(jié)的要求。
復(fù)旦大學(xué)最初嘗試使用單臺(tái)服務(wù)器進(jìn)行轉(zhuǎn)播,所轉(zhuǎn)播的內(nèi)容未經(jīng)編碼處理,即導(dǎo)致單個(gè)連接碼率過(guò)高,單臺(tái)服務(wù)器網(wǎng)絡(luò)帶寬成為瓶頸,無(wú)法支持多用戶并發(fā)訪問(wèn)。
各校區(qū)間核心網(wǎng)絡(luò)設(shè)備帶寬有限,當(dāng)轉(zhuǎn)播服務(wù)器集中于主校區(qū)且轉(zhuǎn)播集中時(shí),達(dá)到鏈路瓶頸,導(dǎo)致所有用戶無(wú)法正常訪問(wèn)轉(zhuǎn)播服務(wù),出現(xiàn)延遲或者中斷。
圖3即為結(jié)構(gòu)未優(yōu)化前出現(xiàn)的鏈路帶寬瓶頸,跨區(qū)域訪問(wèn)造成了不必要的帶寬占用,以致影響到正常的網(wǎng)絡(luò)服務(wù)。
基礎(chǔ)設(shè)備
中心控制服務(wù)器:需求相對(duì)較低,與主轉(zhuǎn)發(fā)器并用單臺(tái)設(shè)備。
視頻編碼服務(wù)器:CPU較強(qiáng)的服務(wù)器進(jìn)行視頻編碼。
主轉(zhuǎn)發(fā)服務(wù)器:由于轉(zhuǎn)播數(shù)量并不同,使用編碼服務(wù)器同時(shí)承擔(dān)主轉(zhuǎn)發(fā)服務(wù)器功能??紤]到網(wǎng)絡(luò)帶寬壓力,我們使用千兆網(wǎng)絡(luò)。由于會(huì)對(duì)2路以上的高清視頻進(jìn)行多碼率實(shí)時(shí)壓制,我們采用了一臺(tái)DELL R905服務(wù)器,配置4×4核AMD Opteron 8380,16G內(nèi)存,內(nèi)置4×1000M網(wǎng)卡。
分發(fā)服務(wù)器:多臺(tái)單CPU或者雙CPU服務(wù)器,分散部署于各校區(qū),根據(jù)校區(qū)情況配置為雙千兆網(wǎng)絡(luò)接口或者4千兆網(wǎng)絡(luò)接口綁定,以避免出現(xiàn)網(wǎng)絡(luò)帶寬瓶頸。這里多采用1U的服務(wù)器,依照校區(qū)差別選擇CPU個(gè)數(shù),這里多采用DELL R410和DELL R610服務(wù)器。
編碼規(guī)則
綜合評(píng)定各種編碼方案后,本方案決定采用H.264 AVC作為視頻編碼方案,使用x264作為編碼器,采用AAC作為音頻編碼方案,使用faac作為音頻編碼器,使用MPEG2-TS作為封裝格式,以HTTP協(xié)議作為傳輸協(xié)議。通過(guò)一定的實(shí)驗(yàn)和探索,實(shí)際部署時(shí)針對(duì)此三類視頻應(yīng)用的不同編碼方案(見(jiàn)表2),在保證質(zhì)量的前提下能夠盡量節(jié)約帶寬。
實(shí)際使用的客戶端程序
由于視頻流采用H.264標(biāo)準(zhǔn)編碼,因此所有兼容H.264解碼標(biāo)準(zhǔn)的視頻播放器均可以播放。經(jīng)測(cè)試證明,Windows自帶的Windows Media Player系列、開(kāi)源且跨平臺(tái)的VLC、MPlayer播放器、基于iOS的OPlayer等多款播放器可以流暢播放高清視頻流。
性能調(diào)優(yōu)
服務(wù)內(nèi)容規(guī)劃:用戶會(huì)優(yōu)先嘗試訪問(wèn)高清晰度的轉(zhuǎn)播,但仍有部分老設(shè)備無(wú)法播放高清視頻流,因此提供高碼率流的同時(shí)仍須提供少量低碼率流,根據(jù)實(shí)際經(jīng)驗(yàn),比例大約在10∶1。
基于用戶來(lái)源的負(fù)載分配:由于用戶來(lái)源位置信息可獲取,可以依照校園網(wǎng)絡(luò)結(jié)構(gòu)對(duì)不同來(lái)源用戶進(jìn)行分發(fā),在主控服務(wù)器端進(jìn)行條件限制,可以有效地避免出現(xiàn)跨校區(qū)數(shù)據(jù)傳輸所帶來(lái)的不必要網(wǎng)絡(luò)壓力。
RRD日志分析:使用RRDtool生成持續(xù)連接狀態(tài)圖,輔助分析各服務(wù)器在線流量,有利于協(xié)助規(guī)劃分發(fā)服務(wù)器數(shù)量。效果參見(jiàn)圖4。
2010世界杯期間,為了滿足校內(nèi)用戶在線觀看的需要,復(fù)旦大學(xué)提供7臺(tái)分發(fā)服務(wù)器為6個(gè)分校區(qū)的用戶進(jìn)行服務(wù)。
圖4 RRDtool生成的持續(xù)連接狀態(tài)
2010世界杯期間,為了滿足校內(nèi)用戶在線觀看的需要,我們提供7臺(tái)分發(fā)服務(wù)器為6個(gè)分校區(qū)的用戶進(jìn)行服務(wù),提供720p(碼率4Mbps)和480p(碼率1Mbps)的多種分辨率供選擇,在不影響正常網(wǎng)絡(luò)服務(wù)的情況下提供2000人同時(shí)在線的峰值。
在多校區(qū)的視頻會(huì)議工作中,我們使用相同的結(jié)構(gòu),通過(guò)現(xiàn)場(chǎng)服務(wù)器直接采集攝像設(shè)備輸出,也滿足了工作會(huì)議等進(jìn)行多校區(qū)直播的需求。
在極端情況下,還可以采取P2P模式,將用戶也作為轉(zhuǎn)發(fā)節(jié)點(diǎn),在小范圍內(nèi)為其他用戶轉(zhuǎn)發(fā)數(shù)據(jù)。同時(shí),也可以讓用戶在同一交換機(jī)內(nèi)進(jìn)行組播,這樣能更好地應(yīng)對(duì)重大會(huì)議活動(dòng)、體育賽事轉(zhuǎn)播時(shí)的大量密集請(qǐng)求。
本文介紹的轉(zhuǎn)播方案基于信息化部門常規(guī)硬件,面向多校區(qū)分布的校園實(shí)際網(wǎng)絡(luò)環(huán)境,服務(wù)容量可以靈活地伸縮擴(kuò)展,無(wú)需特殊的客戶端軟件,用戶體驗(yàn)較好。我們將進(jìn)一步擴(kuò)展該方案,整合用戶授權(quán),進(jìn)行更細(xì)致的服務(wù)劃分。
(作者單位為復(fù)旦大學(xué)信息化辦公室)