饒 敏,鄭 斌,張治中
(重慶郵電大學(xué)通信網(wǎng)測試技術(shù)重點實驗室,重慶 400065)
流媒體傳輸技術(shù)是IPTV的核心技術(shù)。在流式技術(shù)中,主要有3個核心技術(shù):流媒體的編解碼[1-2],傳輸以及數(shù)字流媒體的版權(quán)技術(shù)。如何通過IP網(wǎng)絡(luò)來傳輸流媒體數(shù)據(jù)便是IPTV的技術(shù)基礎(chǔ),IPTV的廣泛應(yīng)用也是依靠流式技術(shù)的不斷前進而獲得的。
結(jié)合目前我國的IPTV業(yè)務(wù)部署,一般IPTV系統(tǒng)框架可劃分為系統(tǒng)支持層、承載網(wǎng)絡(luò)層、流媒體傳輸層和業(yè)務(wù)服務(wù)層,如圖1所示。IPTV視頻點播,是IPTV業(yè)務(wù)中最具特色的一項,簡單說就是利用現(xiàn)有的IP網(wǎng)絡(luò),把用戶家中的機頂盒作為接收器,PC或電視機作為顯示終端的電視系統(tǒng),從而實現(xiàn)用戶隨意觀看電視節(jié)目。
直播電視這類服務(wù)業(yè)務(wù)有點類似于現(xiàn)在看的衛(wèi)星電視或者傳統(tǒng)的有線電視,IPTV通過自身單播或者組播的傳遞方法,根據(jù)不同情況從而完成電視的播放,這種播放方式的音視頻信號也是通過IP網(wǎng)絡(luò)來傳輸?shù)摹?/p>
目前來說,所設(shè)計的點播服務(wù)器大致可分為3個部分,分別是核心模塊、配置模塊、Web模塊。
圖1 IPTV系統(tǒng)框架
核心模塊:參照apache提供的腳本[3],根據(jù)自身的需要修改成符合需求的代碼,其中擴展了對http protocol的解析,替換了用戶的authentic module接口函數(shù),采用自己設(shè)計的認(rèn)證模塊;更改了整個請求記錄,并且生成日志的功能,以此作為用戶點播的記錄;更改了apache的record功能,作為記錄用戶是否在線、用戶信息查詢的接口;精簡模塊、簡化流程、修改讀取模式以及讀取效率。
配置模塊:對當(dāng)前所有資源進行配置,對核心服務(wù)器、外部流媒體服務(wù)提供狀態(tài)統(tǒng)計、查詢以及軟件接口的配置。
Web模塊:主要用于對服務(wù)器的參數(shù)、服務(wù)器系統(tǒng)管理進行配置和接口的對接,并可對正在點播的用戶信息進行查詢。不僅如此,還可以通過Web模塊對core模塊進行遠(yuǎn)程的重啟、停止等,還可遠(yuǎn)程查看系統(tǒng)CPU、內(nèi)存、磁盤、節(jié)目列表等一系列系統(tǒng)資源的情況。
該點播服務(wù)器通過Http File Server提供下載,在這種情況下,不管是何種格式的文件,都是以數(shù)據(jù)的形式存在,所以服務(wù)器都可以提供下載
在終端,通過Http Get的方法下載文件,這樣所有的選擇權(quán)全部由終端用戶掌握。
終端去考慮流媒體文件中音視頻的解復(fù)用工作,從而使服務(wù)器端的運算壓力減小。
考慮到目前IPTV技術(shù)以及當(dāng)前的網(wǎng)絡(luò)狀況,對點播服務(wù)器的硬件部署采取“邊緣負(fù)載+中心服務(wù)”。
中心負(fù)載:中心負(fù)載的設(shè)計采用了一種組合方式(磁盤存儲+集群負(fù)載)。這兩者之前通過目前相對流行的SAN MODLE連接,保證了兩者之間數(shù)據(jù)的進出效率。
邊緣負(fù)載:對于IPTV視頻點播來說,最終要做到的是把流媒體數(shù)據(jù)傳輸?shù)接脩舻娘@示終端上(目前采用端到端方式)。而由于當(dāng)前網(wǎng)絡(luò)帶寬的限制,還不能徹底保證中心集群的服務(wù)帶寬能夠滿足所有用戶的需要,所以根據(jù)統(tǒng)計原理,設(shè)計了一個有效的辦法,即邊緣化。這樣就能使相對距離較遠(yuǎn)的用戶可以享受到分布在自己周邊的邊緣服務(wù)器的服務(wù),不僅可以使網(wǎng)絡(luò)的物理狀態(tài)達(dá)到最好,而且還可以給用戶帶來最優(yōu)的體驗,而最優(yōu)體驗正是IPTV服務(wù)中的一個重要指標(biāo)。
根據(jù)以上的想法,在實現(xiàn)時使用了分組模式和資源分布模式。
分組模式:任何一個用戶分組,均可以對應(yīng)一個、兩個或者多個分散在用戶分組周圍的服務(wù)器,整個分組的數(shù)據(jù)調(diào)配由負(fù)載均衡器來完成,并且是實時調(diào)配,其模式設(shè)定為先處理用戶量相對較少的邊緣負(fù)載,然后再去響應(yīng)用戶數(shù)較多的中心負(fù)載。
資源分布模式:將所有的媒體資源全部存儲在中心服務(wù)器上,而邊緣服務(wù)器則存儲用戶點播較多的節(jié)目,從中心到邊緣,采取自適應(yīng)的調(diào)配方式,如果系統(tǒng)發(fā)覺某些節(jié)目的被點播數(shù)逐漸增多,則會自動將這些節(jié)目根據(jù)實際點播方位,發(fā)送到與其距離最近的邊緣負(fù)載上,這樣就可以減少中央負(fù)載的訪問量,從而減少網(wǎng)絡(luò)的壓力。
通過實際的考慮與分析,歸納出了3種方法來對所設(shè)計出的點播系統(tǒng)進行測試:
1)直接用運營商提供的機頂盒來點播視頻節(jié)目。
2)首先,通過真實的機頂盒來播放運營商提供的視頻節(jié)目,然后采用自己設(shè)計的模擬軟件來仿真許多客戶同一時間在線進行視頻的點播,經(jīng)過實際的測試得出了以下結(jié)論,即用仿真軟件與實際采用機頂盒在相等數(shù)量的用戶連接訪問服務(wù)器時,訪問其存儲設(shè)備的I/O口的數(shù)量與圖形大體一致,這樣就可以說明仿真軟件的仿真結(jié)果與真實的用戶進行訪問的效果一致。
3)當(dāng)服務(wù)器工作在全功率的時候,采用仿真軟件來仿真這個過程,即連續(xù)多天不間斷地進行視頻的在線點播。
經(jīng)過實際的測試,表1為測試結(jié)果的對比與分析。
表1 用戶數(shù)不同時服務(wù)器使用情況
IPTV中能夠?qū)⒄诓シ诺墓?jié)目進行前進與倒退,能夠讓觀看直播節(jié)目突破時間相對固定的概念,從而觀看到之前已經(jīng)播出的電視節(jié)目,這樣的視頻服務(wù)是IPTV中的一個重要業(yè)務(wù)[4],通常將其稱為直播時移業(yè)務(wù)。直播網(wǎng)絡(luò)示意圖見圖2。
圖2 IPTV直播網(wǎng)絡(luò)圖
3.1.1 直播節(jié)目信號的接收與采集
在國內(nèi),IPTV業(yè)務(wù)主要由移動運營商提供,而直播的電視節(jié)目則主要由國家廣電部門提供,也就是說,在接收直播節(jié)目時,主要還是以衛(wèi)星發(fā)送的數(shù)字信號為主要的信號源,這就需要有專業(yè)的衛(wèi)星信號接收裝置以及相對應(yīng)的設(shè)備,譬如說天線等。然后用衛(wèi)星信號接收裝置來處理所接收到的數(shù)據(jù),并將其轉(zhuǎn)換為TS數(shù)據(jù)流、模擬信號等。之后,這些信號或者數(shù)據(jù)流會通過ASI傳送給IPTV的編碼設(shè)備,編碼設(shè)備會根據(jù)目前IPTV系統(tǒng)、終端設(shè)備所支持的方式進行編碼并傳送,最后將視頻節(jié)目送給終端用戶[5-6]。
在這里,為了能使編碼設(shè)備的編碼方式為H.264,當(dāng)前只考慮了3種方式:
2)直接采用硬件完成采集和編碼的工作
3)多路節(jié)目信號集中分段處理后進行軟件編碼,從而達(dá)到多路節(jié)目統(tǒng)一編碼的高效方式。
綜合實際情況考慮,目前決定采用第2種方式進行視頻信號的編碼,將視頻的采集與編碼統(tǒng)一在一張卡中,在該卡中使用數(shù)字信號處理器進行編碼,從而達(dá)到H.264的高效編碼效果,這是一種非常理想的方式。
3.1.2 直播系統(tǒng)軟件設(shè)計
所謂軟件設(shè)計就是一個服務(wù)系統(tǒng),可以實現(xiàn)各個節(jié)目的轉(zhuǎn)發(fā)、單播、組播等。在國際上,目前已經(jīng)有一些服務(wù)器提供直播的服務(wù),但是這些服務(wù)器都是開發(fā)方自己設(shè)計的流媒體編解碼協(xié)議,對于比較通用的MPEG-2或者TS,從支持的角度上來講有些牽強。
這樣,根據(jù)實際情況以及整個業(yè)務(wù)的實際需求,對現(xiàn)有的系統(tǒng)進了研究、分析、整理,并開發(fā)了一套擁有自主知識產(chǎn)權(quán)的軟件,主要采用的協(xié)議是TS和MPEG-2。
時移系統(tǒng)主要可分為兩個部分,即選單和頻道時移。
1)選單時移
當(dāng)用戶獲取了當(dāng)?shù)剡\營商提供的相應(yīng)節(jié)目表單時,可以通過點擊表單中所提供的節(jié)目列表觀看已錄制在服務(wù)器上的節(jié)目,這些節(jié)目多數(shù)為當(dāng)前時刻之前電臺所播放的節(jié)目。
2)頻道時移
簡單的說就是讓用戶可以觀看當(dāng)前頻道在十分鐘前或者更早前所播出的節(jié)目。
對于錄播系統(tǒng),通過接收正在網(wǎng)絡(luò)上傳播的媒體流,將其錄制下來并存放在相應(yīng)的錄播服務(wù)器上,并且根據(jù)錄制時的時間將所錄制的節(jié)目在時間上進行標(biāo)記與劃分,方便之后用戶根據(jù)時間查找索引來查找自己想要觀看的節(jié)目。
對于直播系統(tǒng),可以為用戶提供短暫的倒退觀看服務(wù),直播服務(wù)器會對當(dāng)前播放的節(jié)目進行短暫的錄制,當(dāng)用戶有進行回放的需求時,直播服務(wù)器就會先執(zhí)行倒退緩沖的功能來滿足用戶的需求,當(dāng)直播服務(wù)器所短暫錄制的節(jié)目無法滿足用戶請求的時間量時,那么直播服務(wù)器就會自動尋找錄制該節(jié)目的錄播服務(wù)器,通過將用戶從直播服務(wù)器轉(zhuǎn)到錄播服務(wù)器來滿足用戶的請求[7-8]。
按照平均1 Mbit/s的帶寬來算,可以計算出一個頻道如果緩沖30 min,則大約要有230 Mbyte的內(nèi)存空間,假如是10個,則大概要有2.3 Gbyte的內(nèi)存空間,如果按照這種方式計算并結(jié)合實際情況,可以把10個頻道部署在一臺服務(wù)器上,那么50頻道就需要最多5臺服務(wù)器,這樣的前期成本的投入也是在理想的范圍之內(nèi)。
經(jīng)過多次的實驗,相信通過基于HTTP協(xié)議來傳輸媒體流是個好方法,同時運用目前最為流行的H.264編碼技術(shù),使系統(tǒng)有很多獨特的優(yōu)點,例如:節(jié)省網(wǎng)絡(luò)資源,穩(wěn)定可靠,通用性強等。
首先介紹了一些關(guān)于IPTV的基本概念,然后根據(jù)近段時間來研發(fā)的項目,有針對性地闡述了整個系統(tǒng)以及相關(guān)部分的設(shè)計,而且通過了實際的驗證??偟膩碇v,所研發(fā)的這套系統(tǒng)無論是對直播還是點播系統(tǒng)都可以進行商業(yè)運用。
[1]肖磊.流媒體技術(shù)與應(yīng)用大全[M].重慶:重慶大學(xué)出版社,2003.
[2]閆江紅,劉峰.H.264分級編碼在流媒體系統(tǒng)中的應(yīng)用[J].電視技術(shù),2007,31(12):61-61.
[3]3GPP TS 23.228 V7.7.0(2007-03),IP multimedia subsystem(IMS);stage 2[S].2007.
[4]袁小紅.多媒體技術(shù)及應(yīng)用[M].北京:高等教育出版社,2004.
[5]歐建平,婁生強.網(wǎng)絡(luò)與多媒體通信技術(shù)[M].北京:人民郵電出版社,2002.
[6]李銳.IPTV承載網(wǎng)技術(shù)分析[J].黑龍江科技信息,2008(1):5.
[7]季偉.IPTV關(guān)鍵技術(shù)及應(yīng)用[M].北京:機械工業(yè)出版社,2007.
[8]馮博,應(yīng)群.網(wǎng)絡(luò)視頻流媒體技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2005.