徐祥男,富 坤,羅淑貞,耿恒山,耿躍華
(河北工業大學 a.計算機科學與軟件學院;b.電氣工程學院,天津 300130)
HLS直播流媒體傳輸系統的冗余優化
徐祥男a,富 坤a,羅淑貞a,耿恒山a,耿躍華b
(河北工業大學 a.計算機科學與軟件學院;b.電氣工程學院,天津 300130)
對HTTP Live Streaming深入研究之后,發現該協議在直播流媒體傳輸過程中存在視頻流索引文件重復傳送的問題。詳細闡述了服務器與客戶端之間的交互過程,并通過對網絡監控軟件的使用,檢測到交互過程中服務器傳輸給客戶端的視頻流索引文件存在較大的冗余,造成網絡帶寬開銷增大。提出一種可行的改進方案,在.m3u8文件中添加一個#EXT-X-MEDIA-SEQUENCE-LAST標簽,并使服務器和客戶端都對該標簽進行識別。通過對網絡占用率的對比分析,改進后的方案對網絡帶寬的占用率明顯減小,進而驗證了該改進方案的可行性。
HLS;視頻流;索引文件;標簽;網絡帶寬;占用率
HTTP Live Streaming protocol是由蘋果公司提出的基于HTTP的流媒體協議。HTTP Live Streaming媒體系統典型結構如圖1所示。包括流媒體準備服務器、流媒體分發服務器和客戶端3個部分[1]。流媒體準備服務器包括編碼器和流分割器兩個主要部分,編碼器連接的是音視頻采集設備,編碼器將輸入的媒體數字化并編碼為H.264視頻和ACC音頻格式,然后再封裝成為符合MPEG-2系統層標準的傳輸流(TS)格式進行輸出。流媒體分發服務器既可以是一般的Web服務器,也可以是一個Web緩存系統,其供HTTP客戶端下載媒體索引文件和視頻流片段[2]。一般來說,索引文件采用.m3u8文件格式規范。客戶端通過訪問Web服務器來獲取和下載一個流媒體的.m3u8文件,當客戶端下載一定數量的媒體文件后,將它們按下載的順序拼成一個TS視頻流,然后送至播放器進行解碼和呈現[3]。但是在直播的情況下,為了滿足客戶端進行一定時間的時移觀看功能,服務器與客戶端的交互過程中會有視頻流索引文件重復傳送的問題[4]。

圖1 直播流媒體系統結構
在網絡帶寬波動的情況下,如果服務器還是向客戶端發送單一碼率的流媒體文件,則可能出現卡頓的現象,這就產生了網絡自適應的解決方法。網絡自適應是指流媒體準備服務器中的編碼器會把采集到的同一視頻編碼生成不同碼率的替換流和相對應的索引文件[5]。在主索引文件中包含了指向不同替換流的索引文件的URI指針。服務器與客戶端的交互過程如圖2所示(客戶端指向服務器的箭頭表示客戶端請求過程,服務器指向客戶端的箭頭表示服務器回應客戶端的過程,下同)。

圖2 服務器與客戶端交互過程

假設規定進行時移的時間是2 h,那么直播的緩存就要儲存2 h的視頻流片段索引文件,并且如果流分割器是分割成10 s一個的視頻流片段,其個數k為720,以此類推,如果分割成2 s或是5 s一個的視頻流片段,那么k的值分別為3 600和1 440。由此看出索引文件的個數是很多的,很容易產生重復傳送。每當當前視頻流片段即將播放完畢時,客戶端會向服務器申請下一個視頻流片段,用網絡監測軟件監測客戶端與服務器對于某一個視頻流的交互過程,如圖3所示。將圖4中的.m3u8索引文件打開,里面的內容如圖5所示。

圖3 監測的交互過程圖(截圖)

圖4 索引文件內容(截圖)

圖5 監測的交互過程(截圖)
再用網絡監測軟件監測下一個視頻流片段,觀看客戶端與服務器之間的交互過程,如圖5所示。再把圖5中的.m3u8索引文件打開,可以看到該索引文件包含的內容如圖6所示。
從圖4可以看出,索引文件的序列號是從26 318到26 511,而從圖6可以看出索引文件的序列號是從26 320到27 038,說明有很多的索引文件是重復傳送的,這樣會導致服務器負載增加,還會占用網絡帶寬。下面提出一種行之有效的解決方法。

圖6 索引文件內容(截圖)
可以在.m3u8文件內添加一個標簽,用于標記接收到的索引文件中最后一個視頻流片段,用#EXT-X-MEDIA-SEQUENCE-LAST標記,每次客戶端都會把接收到的索引文件的最后一個視頻流片段的序號賦值給#EXT-X-MEDIA-SEQUENCE-LAST[8]。當客戶端再次向服務器發送請求時,服務器分析.m3u8文件的內容,會將#EXT-X-MEDIA-SEQUENCE-LAST標記的視頻流片段及其之后的索引文件發送給客戶端,這樣只重復發送用#EXT-X-MEDIA-SEQUENCE-LAST標記的那個視頻流片段,減少了重復發送的問題。在此要重點說明一下,特別是廣域網,由于網絡線路的不同,服務器發送的視頻流片段不一定最后一個到達,有可能比它前面序號的視頻流片段先到達客戶端。也就是說,本來服務器已經發送了N片視頻流,很可能客戶端接收到了第N片以后才收到第N-1或N-2片或是更前的片段。但這不會對本設計有影響,因為客戶端會在播放當前視頻流片段的同時或是更早就去申請下一次的視頻流,這個時間差足夠發送完所有的視頻流片段,并且客戶端把這些片段按順序排好,并標記完最后一個視頻流片段。所以不存在上述由于網絡路線的不同而導致的問題。這里重復發送#EXT-X-MEDIA-SE?QUENCE-LAST標記的視頻流片段可以保證在索引文件目錄沒有更新的情況下,服務器依然可以回應客戶端的請求。改進后的交互過程示意圖如圖7所示。
利用網絡帶寬檢測軟件network monitor對服務器與客戶端的交互過程進行監測,圖3、圖5、圖8均是利用該軟件檢測得到的。
4.1 改善前對網絡的影響
當播放視頻文件時,通常都是以高帶寬進行傳輸,其帶寬被浪費的公式為


圖7 改進后的交互過程

圖8 改進后服務器回應的.m3u8索引文件(截圖)
式中:p表示帶寬的浪費率,以圖5為例來計算,從圖9可知,傳輸一個.m3u8索引文件的內容大小是1 448。

圖9 .m3u8索引文件的內容(截圖)
那么傳輸過來的.m3u8文件有4個,而傳輸過來的序列號為26 789的視頻流總共210個,且每個大小為1 452,如圖10所示,故該序列號的視頻流總大小為1 448×210,故


圖10 視頻流片段內容(截圖)
從式(2)中可以看出,帶寬的占用率只和傳輸的.m3u8的個數和傳輸的視頻流總的個數有關,與每次傳輸的大小無關。在采集了多次數據,經過大量的實驗后,改變時移時間或者是一個視頻流片段時,在計算了多次的基礎上得出帶寬的浪費率約為1.1%~6.0%,嚴重占用了帶寬。
4.2 改善后對帶寬的影響
以圖5為例,服務器回應的.m3u8索引文件的具體內容是從序列號為26 318到26 511的.ts視頻流索引,當服務器向客戶端傳送序列號為26 343的視頻流片段之后,為了下載下一個序列號為26 344的視頻流片段,客戶端向服務器再次發出申請,申請新的.m3u8索引文件,當實施這個改進方案之后,更新后的.m3u8索引文件的具體內容如圖11所示。

圖11 更新的.m3u8文件的內容(截圖)


表1 改善前后帶寬的浪費率
從表1可以看出,在未改善的情況下,當時移時間短、視頻流片段短的時候,帶寬的浪費率還不高,但是系統一般不會設置太短的時移時間和視頻流片段,否則會增加成本和復雜度,隨著時移時間和視頻流片段時間的增長,帶寬的浪費問題會越來越嚴重,帶寬的浪費率增加,降低了效率,嚴重影響了其性能。從改善后的數據可以看出,帶寬浪費率約為未改善時的1/10,可以說是對帶寬的浪費率有了明顯的改善。
針對冗余問題提出來的解決方案有所不足,當進行直播時,若網絡狀態極其不好,可能會出現視頻流片段沒有被完全下載。但是出現這種情況的概率還是很小的,因為正如前文所述,流媒體準備服務器中的編碼器會把采集到的同一視頻編碼成不同碼率的替換流并生成相對應的索引文件,在主索引文件中包含了指向不同替換流的索引文件的URI指針。在網絡帶寬波動的情況下,服務器會根據網絡情況向客戶端發送合適碼率的流媒體文件,但這種情況發生的概率很小。綜合實驗結果可以看出這個方案還是非常有可行性的,將有很廣泛的應用前景。
[1]霍龍社,甘震.移動流媒體協議綜述[J].信息通信技術,2010(4)∶6-13.
[2] 呂鹍,郝敏.流媒體中間件在Linux下的設計與實現[J].電視技術,2014,38(5):77-80.
[3] 許雪松,楊明極,李天池.基于流媒體技術的移動視頻服務器的設計[J].電視技術,2013,37(17):167-169.
[4] Method and apparatus for dynamically generating media sequenc?es on demand for http live streaming:US,US201229068 [P].2012-11-15.
[5]尹浩,林闖,文浩,等.大規模流媒體應用中關鍵技術的研究[J].計算機學報,2008(5):755-774.
[6] 李鳴.多媒體有線電視網絡應用研究[J].華僑大學學報:自然科學版,2000,21(1):96-100.
[7]李云飛,謝偉凱,魯晨平.面向直播HTTP Streaming系統的HTTP緩存服務器行為優化[J].計算機工程與應用,2012(10):68-74.
徐祥男(1990—),碩士生,主研計算機網絡、流媒體傳輸;
富 坤(1979—),女,博士,講師,主要研究方向為可重構計算、計算機系統結構;
羅淑貞(1990—),女,碩士生,主要研究方向為計算機網絡、流媒體傳輸;
耿恒山(1952—),教授,研究生導師,主研計算機網絡、自動控制、多媒體傳輸;
耿躍華(1978—),女,碩士,主研計算機網絡、電磁原理。
Redundancy Optim ization in Live Stream ing Transm ission System
XU Xiangnana,FU Kuna,LUO Shuzhena,GENG Hengshana,GENG Yuehuab
(a.School of Computer Science and Engineering;b.School of Electrical Engineering,Hebei University of Technology,Tianjin 300130,China)
After in-depth study on the HLS,it is found that HLS has the problem in the video streaming transmitted repeatedly aspect of the index file in live streaming process.Specifically addressed the interaction process between the server and the client,for using network monitoring software,video streaming index files are detected that there is a large redundancy when the server transmits to the client in the interactive process,resulting in the increased network bandwidth overhead.A viable improvement program is proposed,to add a#EXT-X-MEDIA-SEQUENCE-LAST tag in the.m3u8 file,making the label identified by the server and the client.Through comparative analysis,the occupancy rate of the network bandwidth,the occupancy rate of the network bandwidth are significantly reduced in the improved program,verify the feasibility of the improved program.
HLS;video streaming;index files;tag;network bandwidth;occupancy ratio
TN949.6
B
?? 盈
2014-03-08
【本文獻信息】徐祥男,富坤,羅淑貞,等.HLS直播流媒體傳輸系統的冗余優化[J].電視技術,2014,38(16).
國家自然科學基金項目(31100711);河北省高等學校科學技術研究青年基金項目(20111122);河北省交通運輸廳科學技術項目(Y2011087)