徐祥男,富 坤,羅淑貞,耿恒山,耿躍華
(河北工業(yè)大學(xué) a.計算機科學(xué)與軟件學(xué)院;b.電氣工程學(xué)院,天津 300130)
HLS直播流媒體傳輸系統(tǒng)的冗余優(yōu)化
徐祥男a,富 坤a,羅淑貞a,耿恒山a,耿躍華b
(河北工業(yè)大學(xué) a.計算機科學(xué)與軟件學(xué)院;b.電氣工程學(xué)院,天津 300130)
對HTTP Live Streaming深入研究之后,發(fā)現(xiàn)該協(xié)議在直播流媒體傳輸過程中存在視頻流索引文件重復(fù)傳送的問題。詳細(xì)闡述了服務(wù)器與客戶端之間的交互過程,并通過對網(wǎng)絡(luò)監(jiān)控軟件的使用,檢測到交互過程中服務(wù)器傳輸給客戶端的視頻流索引文件存在較大的冗余,造成網(wǎng)絡(luò)帶寬開銷增大。提出一種可行的改進方案,在.m3u8文件中添加一個#EXT-X-MEDIA-SEQUENCE-LAST標(biāo)簽,并使服務(wù)器和客戶端都對該標(biāo)簽進行識別。通過對網(wǎng)絡(luò)占用率的對比分析,改進后的方案對網(wǎng)絡(luò)帶寬的占用率明顯減小,進而驗證了該改進方案的可行性。
HLS;視頻流;索引文件;標(biāo)簽;網(wǎng)絡(luò)帶寬;占用率
HTTP Live Streaming protocol是由蘋果公司提出的基于HTTP的流媒體協(xié)議。HTTP Live Streaming媒體系統(tǒng)典型結(jié)構(gòu)如圖1所示。包括流媒體準(zhǔn)備服務(wù)器、流媒體分發(fā)服務(wù)器和客戶端3個部分[1]。流媒體準(zhǔn)備服務(wù)器包括編碼器和流分割器兩個主要部分,編碼器連接的是音視頻采集設(shè)備,編碼器將輸入的媒體數(shù)字化并編碼為H.264視頻和ACC音頻格式,然后再封裝成為符合MPEG-2系統(tǒng)層標(biāo)準(zhǔn)的傳輸流(TS)格式進行輸出。流媒體分發(fā)服務(wù)器既可以是一般的Web服務(wù)器,也可以是一個Web緩存系統(tǒng),其供HTTP客戶端下載媒體索引文件和視頻流片段[2]。一般來說,索引文件采用.m3u8文件格式規(guī)范??蛻舳送ㄟ^訪問Web服務(wù)器來獲取和下載一個流媒體的.m3u8文件,當(dāng)客戶端下載一定數(shù)量的媒體文件后,將它們按下載的順序拼成一個TS視頻流,然后送至播放器進行解碼和呈現(xiàn)[3]。但是在直播的情況下,為了滿足客戶端進行一定時間的時移觀看功能,服務(wù)器與客戶端的交互過程中會有視頻流索引文件重復(fù)傳送的問題[4]。
圖1 直播流媒體系統(tǒng)結(jié)構(gòu)
在網(wǎng)絡(luò)帶寬波動的情況下,如果服務(wù)器還是向客戶端發(fā)送單一碼率的流媒體文件,則可能出現(xiàn)卡頓的現(xiàn)象,這就產(chǎn)生了網(wǎng)絡(luò)自適應(yīng)的解決方法。網(wǎng)絡(luò)自適應(yīng)是指流媒體準(zhǔn)備服務(wù)器中的編碼器會把采集到的同一視頻編碼生成不同碼率的替換流和相對應(yīng)的索引文件[5]。在主索引文件中包含了指向不同替換流的索引文件的URI指針。服務(wù)器與客戶端的交互過程如圖2所示(客戶端指向服務(wù)器的箭頭表示客戶端請求過程,服務(wù)器指向客戶端的箭頭表示服務(wù)器回應(yīng)客戶端的過程,下同)。
圖2 服務(wù)器與客戶端交互過程
假設(shè)規(guī)定進行時移的時間是2 h,那么直播的緩存就要儲存2 h的視頻流片段索引文件,并且如果流分割器是分割成10 s一個的視頻流片段,其個數(shù)k為720,以此類推,如果分割成2 s或是5 s一個的視頻流片段,那么k的值分別為3 600和1 440。由此看出索引文件的個數(shù)是很多的,很容易產(chǎn)生重復(fù)傳送。每當(dāng)當(dāng)前視頻流片段即將播放完畢時,客戶端會向服務(wù)器申請下一個視頻流片段,用網(wǎng)絡(luò)監(jiān)測軟件監(jiān)測客戶端與服務(wù)器對于某一個視頻流的交互過程,如圖3所示。將圖4中的.m3u8索引文件打開,里面的內(nèi)容如圖5所示。
圖3 監(jiān)測的交互過程圖(截圖)
圖4 索引文件內(nèi)容(截圖)
圖5 監(jiān)測的交互過程(截圖)
再用網(wǎng)絡(luò)監(jiān)測軟件監(jiān)測下一個視頻流片段,觀看客戶端與服務(wù)器之間的交互過程,如圖5所示。再把圖5中的.m3u8索引文件打開,可以看到該索引文件包含的內(nèi)容如圖6所示。
從圖4可以看出,索引文件的序列號是從26 318到26 511,而從圖6可以看出索引文件的序列號是從26 320到27 038,說明有很多的索引文件是重復(fù)傳送的,這樣會導(dǎo)致服務(wù)器負(fù)載增加,還會占用網(wǎng)絡(luò)帶寬。下面提出一種行之有效的解決方法。
圖6 索引文件內(nèi)容(截圖)
可以在.m3u8文件內(nèi)添加一個標(biāo)簽,用于標(biāo)記接收到的索引文件中最后一個視頻流片段,用#EXT-X-MEDIA-SEQUENCE-LAST標(biāo)記,每次客戶端都會把接收到的索引文件的最后一個視頻流片段的序號賦值給#EXT-X-MEDIA-SEQUENCE-LAST[8]。當(dāng)客戶端再次向服務(wù)器發(fā)送請求時,服務(wù)器分析.m3u8文件的內(nèi)容,會將#EXT-X-MEDIA-SEQUENCE-LAST標(biāo)記的視頻流片段及其之后的索引文件發(fā)送給客戶端,這樣只重復(fù)發(fā)送用#EXT-X-MEDIA-SEQUENCE-LAST標(biāo)記的那個視頻流片段,減少了重復(fù)發(fā)送的問題。在此要重點說明一下,特別是廣域網(wǎng),由于網(wǎng)絡(luò)線路的不同,服務(wù)器發(fā)送的視頻流片段不一定最后一個到達,有可能比它前面序號的視頻流片段先到達客戶端。也就是說,本來服務(wù)器已經(jīng)發(fā)送了N片視頻流,很可能客戶端接收到了第N片以后才收到第N-1或N-2片或是更前的片段。但這不會對本設(shè)計有影響,因為客戶端會在播放當(dāng)前視頻流片段的同時或是更早就去申請下一次的視頻流,這個時間差足夠發(fā)送完所有的視頻流片段,并且客戶端把這些片段按順序排好,并標(biāo)記完最后一個視頻流片段。所以不存在上述由于網(wǎng)絡(luò)路線的不同而導(dǎo)致的問題。這里重復(fù)發(fā)送#EXT-X-MEDIA-SE?QUENCE-LAST標(biāo)記的視頻流片段可以保證在索引文件目錄沒有更新的情況下,服務(wù)器依然可以回應(yīng)客戶端的請求。改進后的交互過程示意圖如圖7所示。
利用網(wǎng)絡(luò)帶寬檢測軟件network monitor對服務(wù)器與客戶端的交互過程進行監(jiān)測,圖3、圖5、圖8均是利用該軟件檢測得到的。
4.1 改善前對網(wǎng)絡(luò)的影響
當(dāng)播放視頻文件時,通常都是以高帶寬進行傳輸,其帶寬被浪費的公式為
圖7 改進后的交互過程
圖8 改進后服務(wù)器回應(yīng)的.m3u8索引文件(截圖)
式中:p表示帶寬的浪費率,以圖5為例來計算,從圖9可知,傳輸一個.m3u8索引文件的內(nèi)容大小是1 448。
圖9 .m3u8索引文件的內(nèi)容(截圖)
那么傳輸過來的.m3u8文件有4個,而傳輸過來的序列號為26 789的視頻流總共210個,且每個大小為1 452,如圖10所示,故該序列號的視頻流總大小為1 448×210,故
圖10 視頻流片段內(nèi)容(截圖)
從式(2)中可以看出,帶寬的占用率只和傳輸?shù)?m3u8的個數(shù)和傳輸?shù)囊曨l流總的個數(shù)有關(guān),與每次傳輸?shù)拇笮o關(guān)。在采集了多次數(shù)據(jù),經(jīng)過大量的實驗后,改變時移時間或者是一個視頻流片段時,在計算了多次的基礎(chǔ)上得出帶寬的浪費率約為1.1%~6.0%,嚴(yán)重占用了帶寬。
4.2 改善后對帶寬的影響
以圖5為例,服務(wù)器回應(yīng)的.m3u8索引文件的具體內(nèi)容是從序列號為26 318到26 511的.ts視頻流索引,當(dāng)服務(wù)器向客戶端傳送序列號為26 343的視頻流片段之后,為了下載下一個序列號為26 344的視頻流片段,客戶端向服務(wù)器再次發(fā)出申請,申請新的.m3u8索引文件,當(dāng)實施這個改進方案之后,更新后的.m3u8索引文件的具體內(nèi)容如圖11所示。
圖11 更新的.m3u8文件的內(nèi)容(截圖)
表1 改善前后帶寬的浪費率
從表1可以看出,在未改善的情況下,當(dāng)時移時間短、視頻流片段短的時候,帶寬的浪費率還不高,但是系統(tǒng)一般不會設(shè)置太短的時移時間和視頻流片段,否則會增加成本和復(fù)雜度,隨著時移時間和視頻流片段時間的增長,帶寬的浪費問題會越來越嚴(yán)重,帶寬的浪費率增加,降低了效率,嚴(yán)重影響了其性能。從改善后的數(shù)據(jù)可以看出,帶寬浪費率約為未改善時的1/10,可以說是對帶寬的浪費率有了明顯的改善。
針對冗余問題提出來的解決方案有所不足,當(dāng)進行直播時,若網(wǎng)絡(luò)狀態(tài)極其不好,可能會出現(xiàn)視頻流片段沒有被完全下載。但是出現(xiàn)這種情況的概率還是很小的,因為正如前文所述,流媒體準(zhǔn)備服務(wù)器中的編碼器會把采集到的同一視頻編碼成不同碼率的替換流并生成相對應(yīng)的索引文件,在主索引文件中包含了指向不同替換流的索引文件的URI指針。在網(wǎng)絡(luò)帶寬波動的情況下,服務(wù)器會根據(jù)網(wǎng)絡(luò)情況向客戶端發(fā)送合適碼率的流媒體文件,但這種情況發(fā)生的概率很小。綜合實驗結(jié)果可以看出這個方案還是非常有可行性的,將有很廣泛的應(yīng)用前景。
[1]霍龍社,甘震.移動流媒體協(xié)議綜述[J].信息通信技術(shù),2010(4)∶6-13.
[2] 呂鹍,郝敏.流媒體中間件在Linux下的設(shè)計與實現(xiàn)[J].電視技術(shù),2014,38(5):77-80.
[3] 許雪松,楊明極,李天池.基于流媒體技術(shù)的移動視頻服務(wù)器的設(shè)計[J].電視技術(shù),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]尹浩,林闖,文浩,等.大規(guī)模流媒體應(yīng)用中關(guān)鍵技術(shù)的研究[J].計算機學(xué)報,2008(5):755-774.
[6] 李鳴.多媒體有線電視網(wǎng)絡(luò)應(yīng)用研究[J].華僑大學(xué)學(xué)報:自然科學(xué)版,2000,21(1):96-100.
[7]李云飛,謝偉凱,魯晨平.面向直播HTTP Streaming系統(tǒng)的HTTP緩存服務(wù)器行為優(yōu)化[J].計算機工程與應(yīng)用,2012(10):68-74.
徐祥男(1990—),碩士生,主研計算機網(wǎng)絡(luò)、流媒體傳輸;
富 坤(1979—),女,博士,講師,主要研究方向為可重構(gòu)計算、計算機系統(tǒng)結(jié)構(gòu);
羅淑貞(1990—),女,碩士生,主要研究方向為計算機網(wǎng)絡(luò)、流媒體傳輸;
耿恒山(1952—),教授,研究生導(dǎo)師,主研計算機網(wǎng)絡(luò)、自動控制、多媒體傳輸;
耿躍華(1978—),女,碩士,主研計算機網(wǎng)絡(luò)、電磁原理。
Redundancy Optim ization in Live Stream ing Transm ission System
XU Xiangnana,F(xiàn)U 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直播流媒體傳輸系統(tǒng)的冗余優(yōu)化[J].電視技術(shù),2014,38(16).
國家自然科學(xué)基金項目(31100711);河北省高等學(xué)校科學(xué)技術(shù)研究青年基金項目(20111122);河北省交通運輸廳科學(xué)技術(shù)項目(Y2011087)