當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]今天來介紹一下HLS協(xié)議,這個(gè)協(xié)議是由蘋果公司提出并推廣開來的。來一段維基百科的定義。HTTP Live Streaming(縮寫是HLS)是一個(gè)由蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。是蘋

今天來介紹一下HLS協(xié)議,這個(gè)協(xié)議是由蘋果公司提出并推廣開來的。來一段維基百科的定義。

HTTP Live Streaming(縮寫是HLS)是一個(gè)由蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。是蘋果公司QuickTime X和iPhone軟件系統(tǒng)的一部分。它的工作原理是把整個(gè)流分成一個(gè)個(gè)小的基于HTTP的文件來下載,每次只下載一些。當(dāng)媒體流正在播放時(shí),客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會(huì)話適應(yīng)不同的數(shù)據(jù)速率。在開始一個(gè)流媒體會(huì)話時(shí),客戶端會(huì)下載一個(gè)包含元數(shù)據(jù)的extended M3U (m3u8)playlist文件,用于尋找可用的媒體流。
HLS只請(qǐng)求基本的HTTP報(bào)文,與實(shí)時(shí)傳輸協(xié)議(RTP)不同,HLS可以穿過任何允許HTTP數(shù)據(jù)通過的防火墻或者代理服務(wù)器。它也很容易使用內(nèi)容分發(fā)網(wǎng)絡(luò)來傳輸媒體流。
蘋果公司把HLS協(xié)議作為一個(gè)互聯(lián)網(wǎng)草案(逐步提交),在第一階段中已作為一個(gè)非正式的標(biāo)準(zhǔn)提交到IETF。但是,即使蘋果偶爾地提交一些小的更新,IETF卻沒有關(guān)于制定此標(biāo)準(zhǔn)的有關(guān)進(jìn)一步的動(dòng)作。[1]

協(xié)議簡介

HLS協(xié)議規(guī)定:

視頻的封裝格式是TS。視頻的編碼格式為H264,音頻編碼格式為MP3、AAC或者AC-3。除了TS視頻文件本身,還定義了用來控制播放的m3u8文件(文本文件)。

為什么蘋果要提出HLS這個(gè)協(xié)議,其實(shí)他的主要是為了解決RTMP協(xié)議存在的一些問題。比如RTMP協(xié)議不使用標(biāo)準(zhǔn)的HTTP接口傳輸數(shù)據(jù),所以在一些特殊的網(wǎng)絡(luò)環(huán)境下可能被防火墻屏蔽掉。但是HLS由于使用的HTTP協(xié)議傳輸數(shù)據(jù),不會(huì)遇到被防火墻屏蔽的情況(該不會(huì)有防火墻連80接口都不放過吧)。

另外于負(fù)載,RTMP是一種有狀態(tài)協(xié)議,很難對(duì)視頻服務(wù)器進(jìn)行平滑擴(kuò)展,因?yàn)樾枰獮槊恳粋€(gè)播放視頻流的客戶端維護(hù)狀態(tài)。而HLS基于無狀態(tài)協(xié)議(HTTP),客戶端只是按照順序使用下載存儲(chǔ)在服務(wù)器的普通TS文件,做負(fù)責(zé)均衡如同普通的HTTP文件服務(wù)器的負(fù)載均衡一樣簡單。

另外HLS協(xié)議本身實(shí)現(xiàn)了碼率自適應(yīng),不同帶寬的設(shè)備可以自動(dòng)切換到最適合自己碼率的視頻播放。其實(shí)HLS最大的優(yōu)勢(shì)就是他的親爹是蘋果。蘋果在自家的IOS設(shè)備上只提供對(duì)HLS的原生支持,并且放棄了flash。Android也迫于平果的“淫威”原生支持了HLS。這樣一來flv,rtmp這些Adobe的視頻方案要想在移動(dòng)設(shè)備上播放需要額外下點(diǎn)功夫。當(dāng)然flash對(duì)移動(dòng)設(shè)備造成很大的性能壓力確實(shí)也是自身的問題。

但HLS也有一些無法跨越的坑,比如采用HLS協(xié)議直播的視頻延遲時(shí)間無法下到10秒以下,而RTMP協(xié)議的延遲最低可以到3、4秒左右。所以說對(duì)直播延遲比較敏感的服務(wù)請(qǐng)慎用HLS。


圖片來源于蘋果官網(wǎng)

來解釋一下這張圖,從左到右講,左下方的inputs的視頻源是什么格式都無所謂,他與server之間的通信協(xié)議也可以任意(比如RTMP),總之只要把視頻數(shù)據(jù)傳輸?shù)椒?wù)器上即可。這個(gè)視頻在server服務(wù)器上被轉(zhuǎn)換成HLS格式的視頻(既TS和m3u8文件)文件。細(xì)拆分來看server里面的Media encoder的是一個(gè)轉(zhuǎn)碼模塊負(fù)責(zé)將視頻源中的視頻數(shù)據(jù)轉(zhuǎn)碼到目標(biāo)編碼格式(H264)的視頻數(shù)據(jù),視頻源的編碼格式可以是任何的視頻編碼格式(參考《視頻技術(shù)基礎(chǔ)》)。轉(zhuǎn)碼成H264視頻數(shù)據(jù)之后,在stream segmenter模塊將視頻切片,切片的結(jié)果就是index file(m3u8)和ts文件了。圖中的Distribution其實(shí)只是一個(gè)普通的HTTP文件服務(wù)器,然后客戶端只需要訪問一級(jí)index文件的路徑就會(huì)自動(dòng)播放HLS視頻流了。

HLS的index文件

所謂index文件就是之前說的m3u8文本文件。


圖片來源于蘋果官網(wǎng)

如上圖所示,客戶端播放HLS視頻流的邏輯其實(shí)非常簡單,先下載一級(jí)Index file,它里面記錄了二級(jí)索引文件(Alternate-A、Alternate-B、Alternate-C)的地址,然后客戶端再去下載二級(jí)索引文件,二級(jí)索引文件中又記錄了TS文件的下載地址,這樣客戶端就可以按順序下載TS視頻文件并連續(xù)播放。

一級(jí)index文件

視頻源:https://dco4urblvsasc.cloudfront.net/811/81095_ywfZjAuP/game/index.m3u8

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1064000
1000kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000
500kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=282000
250kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2128000
2000kbps.m3u8

bandwidth指定視頻流的比特率,PROGRAM-ID無用無需關(guān)注,每一個(gè)#EXT-X-STREAM-INF的下一行是二級(jí)index文件的路徑,可以用相對(duì)路徑也可以用絕對(duì)路徑。例子中用的是相對(duì)路徑。這個(gè)文件中記錄了不同比特率視頻流的二級(jí)index文件路徑,客戶端可以自己判斷自己的現(xiàn)行網(wǎng)絡(luò)帶寬,來決定播放哪一個(gè)視頻流。也可以在網(wǎng)絡(luò)帶寬變化的時(shí)候平滑切換到和帶寬匹配的視頻流。

#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXTINF:10,
2000kbps-00001.ts
#EXTINF:10,
2000kbps-00002.ts
#EXTINF:10,
2000kbps-00003.ts
#EXTINF:10,
2000kbps-00004.ts
#EXTINF:10,

...?...

#EXTINF:10,
2000kbps-00096.ts
#EXTINF:10,
2000kbps-00097.ts
#EXTINF:10,
2000kbps-00098.ts
#EXTINF:10,
2000kbps-00099.ts
#EXTINF:10,
2000kbps-00100.ts
#ZEN-TOTAL-DURATION:999.66667
#ZEN-AVERAGE-BANDWIDTH:2190954
#ZEN-MAXIMUM-BANDWIDTH:3536205
#EXT-X-ENDLIST

二級(jí)文件實(shí)際負(fù)責(zé)給出ts文件的下載地址,這里同樣使用了相對(duì)路徑。#EXTINF表示每個(gè)ts切片視頻文件的時(shí)長。#EXT-X-TARGETDURATION指定當(dāng)前視頻流中的切片文件的最大時(shí)長,也就是說這些ts切片的時(shí)長不能大于#EXT-X-TARGETDURATION的值。#EXT-X-PLAYLIST-TYPE:VOD的意思是當(dāng)前的視頻流并不是一個(gè)直播流,而是點(diǎn)播流,換句話說就是該視頻的全部的ts文件已經(jīng)被生成好了,#EXT-X-ENDLIST這個(gè)表示視頻結(jié)束,有這個(gè)標(biāo)志同時(shí)也說明當(dāng)前的流是一個(gè)非直播流。

播放模式

點(diǎn)播VOD的特點(diǎn)就是當(dāng)前時(shí)間點(diǎn)可以獲取到所有index文件和ts文件,二級(jí)index文件中記錄了所有ts文件的地址。這種模式允許客戶端訪問全部內(nèi)容。上面的例子中就是一個(gè)點(diǎn)播模式下的m3u8的結(jié)構(gòu)。點(diǎn)播時(shí)序圖如下所示:


Live?模式就是實(shí)時(shí)生成M3u8和ts文件。它的索引文件一直處于動(dòng)態(tài)變化的,播放的時(shí)候需要不斷下載二級(jí)index文件,以獲得最新生成的ts文件播放視頻。如果一個(gè)二級(jí)index文件的末尾沒有#EXT-X-ENDLIST標(biāo)志,說明它是一個(gè)Live視頻流。

客戶端在播放VOD模式的視頻時(shí)其實(shí)只需要下載一次一級(jí)index文件和二級(jí)index文件就可以得到所有ts文件的下載地址,除非客戶端進(jìn)行比特率切換,否則無需再下載任何index文件,只需順序下載ts文件并播放就可以了。但是Live模式下略有不同,因?yàn)椴シ诺耐瑫r(shí),新ts文件也在被生成中,所以客戶端實(shí)際上是下載一次二級(jí)index文件,然后下載ts文件,再下載二級(jí)index文件(這個(gè)時(shí)候這個(gè)二級(jí)index文件已經(jīng)被重寫,記錄了新生成的ts文件的下載地址),再下載新ts文件,如此反復(fù)進(jìn)行播放。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉