HLS協(xié)議相關(guān)介紹

前言:

HTTP Live Streaming(縮寫是HLS)是一個(gè)由蘋果公司提出的基于HTTP流媒體網(wǎng)絡(luò)傳輸協(xié)議叠国。


HLS結(jié)構(gòu)

相關(guān)模塊:

Media encoder用于將設(shè)備輸出的流進(jìn)行轉(zhuǎn)碼,并封裝成MPEG-2傳輸流。

Stream segmenter用于直播迁沫,將MPEG-2流分割成多個(gè)小片段后輸出(m3u8和ts切片)。

File segmenter用于點(diǎn)播,將MPEG-2流分割成多個(gè)小片段后輸出(m3u8和ts切片)。

原理:

簡(jiǎn)單講就是把整個(gè)流分成一個(gè)個(gè)小段传藏,基于HTTP的文件來(lái)下載,每次只下載一些彤守,傳輸內(nèi)容包括兩部分:一是m3u8純文本索引文件毯侦,二是TS媒體文件。簡(jiǎn)單的傳輸方式就是在一個(gè)m3u8中包含ts切片的url列表遗增,依次下載播放叫惊。如下圖所示:


還有就是有多級(jí)索引款青,如下圖所示做修,客戶端先下載一級(jí)Index file,它里面記錄了二級(jí)索引文件(Alternate-A抡草、Alternate-B饰及、Alternate-C)的地址,然后客戶端再去下載二級(jí)索引文件康震,該文件是按照帶寬不同劃分了不同分辨率的切片文件燎含,然后客戶端就可以根據(jù)實(shí)際的貸款按順序下載TS視頻文件并連續(xù)播放以實(shí)現(xiàn)碼率自適應(yīng)。


HLS協(xié)議傳輸結(jié)構(gòu)

一般為了加快速度腿短,.m3u8放在web服務(wù)器上屏箍,ts文件放在cdn上。.m3u8文件橘忱,其實(shí)就是以UTF-8編碼的m3u文件赴魁,這個(gè)文件本身不能播放,只是存放了播放信息的文本文件:



HLS協(xié)議m3u8文件解析

備注:

A:#EXTINF指示出下面TS片的時(shí)間長(zhǎng)度钝诚,單位是秒颖御,可以是整數(shù)也可以浮點(diǎn)數(shù),浮點(diǎn)數(shù)一般精確到小數(shù)點(diǎn)后面3位凝颇。在示例中潘拱,第一個(gè)ts的時(shí)長(zhǎng)為8秒疹鳄。

同時(shí),EXTINF也影響了播放器刷新M3U8文件的間隔芦岂,正常情況下瘪弓,播放器會(huì)把當(dāng)前下載的TS片的EXTINF的值作為每次刷新M3U8文件的間隔;如果播放器發(fā)現(xiàn)本次取到的M3U8文件內(nèi)容沒(méi)有更新禽最,會(huì)在1-2秒內(nèi)再次刷新杠茬。

B:ts切片的時(shí)長(zhǎng)不能大于#EXT-X-TARGETDURATION的值

C:#EXT-X-ENDLIST這個(gè)表示視頻結(jié)束,有這個(gè)標(biāo)志同時(shí)也說(shuō)明當(dāng)前的流是一個(gè)非直播流弛随。

D:#EXT-X-PLAYLIST-TYPE:VOD的意思是當(dāng)前的視頻流并不是一個(gè)直播流瓢喉,而是點(diǎn)播流

直播:

1.http請(qǐng)求m3u8的url(包含部分播放列表,沒(méi)有結(jié)束標(biāo)識(shí))舀透。

2.服務(wù)端返回一個(gè)m3u8的播放列表栓票,這個(gè)播放列表是實(shí)時(shí)更新的(類似于滑動(dòng)窗口機(jī)制),一般一次給出5段數(shù)據(jù)的url愕够。

3.客戶端解析m3u8的播放列表走贪,再按序請(qǐng)求每一段的url,獲取ts數(shù)據(jù)流惑芭。

點(diǎn)播:

1.http請(qǐng)求m3u8的url坠狡。(包含所有播放列表,有結(jié)束標(biāo)識(shí))遂跟。

2.解析m3u8的播放列表逃沿,再按序請(qǐng)求每一段的url,獲取ts數(shù)據(jù)流幻锁。

備注:hls協(xié)議是將直播流分成一段一段的小段視頻去下載播放的凯亮,所以假設(shè)列表里面的包含5個(gè)ts文件,每個(gè)TS文件包含5秒的視頻內(nèi)容哄尔,那么整體的延遲就是25秒假消。因?yàn)楫?dāng)你看到這些視頻時(shí),已經(jīng)將視頻錄制好上傳上去了岭接,所以時(shí)這樣產(chǎn)生的延遲富拗。當(dāng)然可以縮短列表的長(zhǎng)度和單個(gè)ts文件的大小來(lái)降低延遲,極致來(lái)說(shuō)可以縮減列表長(zhǎng)度為1鸣戴,并且ts的時(shí)長(zhǎng)為1s啃沪,但是這樣會(huì)造成請(qǐng)求次數(shù)增加,增大服務(wù)器壓力葵擎,當(dāng)網(wǎng)速慢時(shí)回造成更多的緩沖谅阿,所以蘋果官方推薦的ts時(shí)長(zhǎng)時(shí)10s,所以這樣就會(huì)大概有30s的延遲。

弊端:

1.采用HLS協(xié)議直播的視頻延遲時(shí)間無(wú)法下到10秒以下签餐,所以說(shuō)對(duì)直播延遲比較敏感的服務(wù)請(qǐng)慎用HLS寓涨。(偽直播)。

2.對(duì)于點(diǎn)播服務(wù)來(lái)說(shuō),由于TS切片通常較小,海量碎片在文件分發(fā),一致性緩存,存儲(chǔ)等方面都有較大挑戰(zhàn)氯檐。

測(cè)試:(央視網(wǎng)H5)

測(cè)試:(央視網(wǎng)H5)

測(cè)試環(huán)境:win10 64位

測(cè)試平臺(tái):chorm

播放器類型:H5

協(xié)議:HLS協(xié)議

測(cè)試結(jié)果:

(測(cè)試類型:直播)

M3u8每次更新一個(gè)戒良,類似于滑動(dòng)窗口機(jī)制,第一次是列表12345冠摄,第二次是23456糯崎,第三次事34567,然后按列表地址下載ts切片河泳,直播暫停沃呢,m3u8文件繼續(xù)更新,ts文件停止下載拆挥。直播播放薄霜,繼續(xù)下載ts切片。下圖為央視網(wǎng)直播時(shí)連續(xù)更新三次m3U8文件的截圖:




HLS協(xié)議m3u8文件直播時(shí)連續(xù)更新

(測(cè)試類型:點(diǎn)播)

M3u8一次性包含所有ts文件播放列表纸兔,依次進(jìn)行下載播放惰瓜,暫停的時(shí)候ts切片不下載,播放繼續(xù)下載汉矿,seek進(jìn)度條的時(shí)候崎坊,ts切片會(huì)從選擇位置開始下載。下圖為央視網(wǎng)點(diǎn)播seek的ts片段洲拇。如下圖:


HLS協(xié)議m3u8文件點(diǎn)播時(shí)seek后ts文件加載圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奈揍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子呻待,更是在濱河造成了極大的恐慌打月,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚕捉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡柴淘,警方通過(guò)查閱死者的電腦和手機(jī)迫淹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)为严,“玉大人敛熬,你說(shuō)我怎么就攤上這事〉诠桑” “怎么了应民?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我诲锹,道長(zhǎng)繁仁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任归园,我火速辦了婚禮黄虱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庸诱。我一直安慰自己捻浦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布桥爽。 她就那樣靜靜地躺著朱灿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钠四。 梳的紋絲不亂的頭發(fā)上母剥,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音形导,去河邊找鬼环疼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛朵耕,可吹牛的內(nèi)容都是我干的炫隶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼阎曹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼伪阶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起处嫌,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤栅贴,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后熏迹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體檐薯,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年注暗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坛缕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捆昏,死狀恐怖赚楚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骗卜,我是刑警寧澤宠页,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布左胞,位于F島的核電站,受9級(jí)特大地震影響举户,放射性物質(zhì)發(fā)生泄漏烤宙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一敛摘、第九天 我趴在偏房一處隱蔽的房頂上張望门烂。 院中可真熱鬧,春花似錦兄淫、人聲如沸屯远。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慨丐。三九已至,卻和暖如春泄私,著一層夾襖步出監(jiān)牢的瞬間房揭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工晌端, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捅暴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓咧纠,卻偏偏與公主長(zhǎng)得像蓬痒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漆羔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容