鄭藝芳
(福建師范大學人民武裝學院,福建福州 350007)
基于HTTP的P2P流媒體直播系統構建*
鄭藝芳
(福建師范大學人民武裝學院,福建福州 350007)
P2P技術在音視頻直播中的應用,可以極大降低中心服務器的壓力,為用戶提供良好的服務體驗,是新一代內容分發的核心技術.基于HTTP流媒體協議構建的P2P直播系統,可以使P2P終端具有更好的網絡適應性;其中HTTP流媒體協議的切片技術,有利于P2P網絡中資源的定位和查詢,比起傳統的P2P協議,更加適合專用網絡中的音視頻直播服務構建.
HTTP流直播;P2P;流媒體
HTTP是互聯網上流量排名第一的協議,其次為各種P2P協議,如BT等.HTTP承載了大部分的文本、音視頻數據傳輸,是各種主流應用的首選協議.但長期以來,HTTP沒有用來作為流媒體數據傳輸的主流協議,大部分直播服務采用了RTSP、RTMP等協議進行傳輸控制.在音視頻直播領域,基于P2P的流媒體技術十分普及,如 PPStream、PPLive、ESM等,它們大部分采用了復雜的P2P網絡模型和混合模型,資源定位算法復雜,各計算節點的系統資源占用較大.
由于HTTP流媒體協議基于標準HTTP協議,并在此基礎上定義了適合媒體數據實時傳播的機制,有效保證了音視頻數據的傳輸實時性.HTTP對網絡有較強適用性,即大部分的防火墻都默認允許HTTP協議穿透;以此為基礎來構建P2P服務,可以適應現有網絡,為用戶提供較好體驗,同時極大減輕服務器的壓力[1].
基于HTTP流媒體協議構建傳統的視頻直播系統,有三個主要部分:直播數據編碼、數據分發系統、客戶端.一般架構如圖1所示.

圖1 HTTP流媒體服務體系
在典型的配置中,前段編碼器將音視頻直播流數據按照指定壓縮標準進行編碼,一般編碼規范會遵循MPEG-2或H.264標準,然后通過文件切割器不斷生成小的TS流文件,同時生成索引文件.所創建的索引文件和TS流文件群會分發到Web架構服務器中,由Web服務器將索引文件和TS流文件進行發布.這樣客戶端就可以通過標準HTTP協議讀取索引及流文件,解碼后播出.
直播數據編碼部分的數據來源是衛星接收機,衛星接收機接收衛星信號,將其以MPEG-2的TS流輸入到編碼器.一般情況下,每個頻道都配置一臺專用編碼器,所以前端編碼器的多少和直播系統支持的頻道數有關.編碼器調整自己的配置,采用H.264的視頻編碼格式和AAC的音頻格式,對輸入TS流進行壓縮編碼,并對音視頻流以MPEG2 TS的文件格式進行封裝.直播編碼器產生的TS流直接輸入到流文件切割器中,流切割器將其按照直播的實時性要求,切割為一定粒度的小TS文件,一般該粒度設置為10秒;同時,流切割器還產生一個包含生成TS文件列表的索引文件[2].
這樣,直播數據編碼部分最終生成了索引和TS流文件,這些文件將被存儲到數據轉發系統,進行分發.
數據分發系統一般是由Web服務器或者是web緩存系統組成,用來作為HTTP服務器發布媒體索引文件和一系列的.ts文件,以供HTTP客戶端下載.一般來說,索引文件采用M3U8文件格式規范,TS文件為MPEG-2中的文件封裝格式.

表1 文件格式和MIME類型對應
M3U8文件示例如表2所示.其中將M3U8中的每一行列出來,并在右方注釋.

表2 M3U8文件示例及注釋
在完成直播功能時,M3U8文件需要及時更新,這個取決于及時調整其存活時間屬性,這樣文件會被頻繁地覆蓋,客戶端也會在存活時間到期后重新請求更新的M3U8文件.
客戶端首先獲取M3U8索引文件,并解析M3U8識別其中的每一個TS文件,以及解密密鑰等必要信息.客戶端按順序下載每個可用的媒體文件.
客戶端也采用HTTP協議請求數據,HTTP協議并不需要設計如何穿透防火墻,一般防火墻都允許這一類協議的數據通過[3].
第二部分描述了基于服務器的直播系統架構.這種架構充分利用了HTTP部署方便的特點,可以較為快速地完成視頻直播系統的構建.然而,基于HTTP的服務器模型和一般的B/S架構有同樣的缺陷,即隨著用戶規模的擴大,服務器需要不斷擴容以支持用戶并發請求;當用戶數量極大時,服務器節點的投資建設將占用大量的成本.
基于P2P技術可以解決這一問題,在P2P系統中,客戶端同時作為服務器提供數據分發服務.在服務器端,除了傳統的數據服務器外,還需要配置少量服務器用于收集資源區域分布信息,為客戶端請求數據提供索引服務.
基于HTTP流協議的P2P模型,具有如下優勢:
(1)HTTP協議可以無需考慮網絡穿透問題,防火墻一般都允許HTTP協議通過;
(2)HTTP流媒體協議對文件的切片方式,導致客戶端需要下載多個小ts文件,存儲在內存中后連貫起來播放,在直播系統設計中,一般會下載3段ts文件.這樣,終端的節點實際上都保存這最近3段的ts文件.這種設計模式方便終端節點通過標準的web方式提供數據服務;
(3)終端節點和資源節點管理服務器之間基于標準HTTP協議進行數據交互,協議設計方便,軟件編寫簡單.
基于HTTP的P2P網絡模型如圖2所示.

圖2 基于HTTP的P2P網絡模型
相對于傳統的HTTP流服務,該網絡模型在服務架構上,增加了資源節點管理服務器,采用P2P中的混合網絡模型進行資源的定位和協調.每個終端節點都接受節點管理服務器的命令,告知其當前狀態、網絡狀況等信息.
資源節點管理服務器不僅直接和終端節點交換信息,同時和web服務器交換信息.Web服務器接收終端節點的首次請求,并根據節點管理服務器中保存的當前節點的信息來決定終端最終從哪里得到數據.Web服務器將連接的客戶端信息同步給節點管理服務器,這樣,節點服務器就根據區域節點資源分布算法,生成相應的區域節點分布信息.
終端節點請求數據時,如果服務器認為該區域的節點足以支撐其數據請求,則其首先從web服務器得到對應區域的節點分布信息,然后從各個節點獲取對應的直播數據[4].這時,各個終端節點之間通過HTTP協議完成數據交互,所有節點在網絡上都是平等的.
P2P節點開始總是從web服務器請求數據,web服務器是P2P節點唯一知道的初始外界聯系對象.設P2P節點為A,中心Web服務集群為H,資源節點管理服務器為R,P2P節點的數據請求流程如下:
(1)節點A連接中心Web服務器H,首得到當前的直播列表文件,A節點解析該列表文件,但暫時不請求其中指定的URL獲取數據.
(2)H得到A的連接請求后,通知資源節點管理服務器R,同時在回復信息中告知R的訪問方法.
(3)A向R發起請求,要求得到索引文件中指定的流媒體ts文件的數據源分布狀況.
(4)R查找數據庫,得到A節點所在區域中的信息,回復數據資源的區域分布信息給A;
(5)A節點將根據獲取的區域分布信息向其中的節點發起請求,獲取對應數據.
由以上數據獲取流程可知,資源節點管理服務器R查找資源節點的算法,是影響整體性能的關鍵所在.在本課題中,采用了類似DHT的算法來完成節點定位和查詢.節點A使用哈希函數HASH(RID,RIP)標示自己請求的資源名稱(RID)以及自身IP地址(RIP),經過哈希運算后得到唯一的標識,節點管理服務器R據此查找其對應的節點資源信息.
節點管理服務器采用web服務模式構建,基于soap協議為web服務器,各個終端節點提供訪問方法.
建設專用網絡的多媒體廣告信息系統需要增加直播功能,采用了基于HTTP的P2P技術.該系統提供了30個頻道的采集和直播,并以每個1.2~1.6Mbps的碼流完成編碼參數配置.設計采用HP380G5服務器作為Web分發系統,通過Linux系統集群實現.每個服務器配備千兆網卡,服務器設計負載能力為300用戶.預計用戶數為10~30萬之間.

圖3 廣告信息直播系統模塊圖
系統整體包括內容制作系統、直播采集轉發系統、廣告管理系統、廣告服務系統、信息發布系統、各種形式的多媒體信息終端,下面分別說明其作用.
(1)內容制作系統可將各種格式的視頻進行轉碼和檢測,使其他格式的視頻資源轉化為符合高清廣告機要求的視頻,并對視頻進行壓縮,形成h264編碼視頻;
(2)直播采集轉發系統將衛星電視信號轉換為數據流,并將直播轉發到Web數據分發系統中;
(3)多媒體廣告管理系統包括廣告運營商管理、廣告資源管理、廣告資源分發、廣告發布、廣告機分組管理、廣告機監控、廣告展示統計、第三方信息接入等模塊.以組為單位的管理模式可以實現個性化的精確廣告投放展示.
(4)多媒體廣告服務系統包括廣告機心跳服務、廣告資源下載服務、日志上報采集、直播服務、第三方數據轉發等主要模塊.廣告服務系統采用分布式部署.
(5)圖文信息發布管理系統進行資訊管理和資訊瀏覽查詢展示,直接響應終端的展示查詢請求.
在實際的環境中測試,每天同時上線用戶數最高峰值為5000左右,此時,服務器投入的資源為2臺集群Web數據分發服務器,其余的數據都通過P2P網絡進行分發.而我們在實驗室模擬5000用戶進行傳統中心服務模式測試,支撐5000用戶需要至少18臺服務器集群,且此時服務器CPU占用率已高達85%.表3是測試數據的對比.

表3 P2P分發模式和中心服務模式對比
數據顯示,P2P模式服務器壓力明顯較小,但客戶端壓力也明顯較大.由于此應用場合是運行在專用網絡中的廣告信息終端設備,不運行其它任務,所以客戶端略高的資源占用不會引起業務實現問題.對比兩種方案,在5000臺的規模下,P2P模式已經占據成本優勢.隨著用戶數量的增加,其優勢更加明顯.
基于HTTP流媒體協議構建的P2P直播系統,可以滿足中小型流媒體直播服務的需求,其特點使得部署應用十分簡單,而且可以提供實時性較好的直播服務.采用該技術,可以有效解決視頻直播中的服務器壓力過大,高峰時段服務質量下降等問題,極大提高直播系統的穩定性并降低總體成本.
[1]王志海,童新海,沈寒輝.OpenSSL與網絡信息安全——基礎、結構和指令[M].北京:清華大學出版社,2007.
[2]管磊.P2P技術揭秘:P2P網絡技術原理與典型系統開發[M].北京:清華大學出版社,2011.
[3](美)史蒂文斯.TCP.IP詳解(卷3):TCP事務協議.HTTP和UNIX域協議[M].北京:人民郵電出版社,2010.
[4]黃孝建,陶蒙華.IPTV關鍵技術詳解[M].北京:北京郵電大學出版社,2009.
TN919.85
A
1008-4681(2012)02-0043-04
2011-11-18
鄭藝芳(1978-),女,福建福州人,福建師范大學人民武裝學院講師,碩士.研究方向:計算機應用技術、網絡服務、網格計算等.
(責任編校:晴川)