初步探索HLS

HTTP Live Streaming(縮寫是HLS)是一個由蘋果公司提出的基于HTTP流媒體網(wǎng)絡(luò)傳輸協(xié)議眷柔。是蘋果公司QuickTime XiPhone軟件系統(tǒng)的一部分江咳。它的工作原理是把整個流分成一個個小的基于HTTP的文件來下載胖齐,每次只下載一些。當(dāng)媒體流正在播放時孟抗,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源震叮,允許流媒體會話適應(yīng)不同的數(shù)據(jù)速率。在開始一個流媒體會話時舅世,客戶端會下載一個包含元數(shù)據(jù)的extended M3U (m3u8)playlist文件旦委,用于尋找可用的媒體流。

HLS只請求基本的HTTP報文雏亚,與實時傳輸協(xié)議(RTP)不同缨硝,HLS可以穿過任何允許HTTP數(shù)據(jù)通過的防火墻或者代理服務(wù)器。它也很容易使用內(nèi)容分發(fā)網(wǎng)絡(luò)CDN進行分發(fā)來傳輸媒體流罢低。

蘋果公司把HLS協(xié)議作為一個互聯(lián)網(wǎng)草案(逐步提交)查辩,在第一階段中已作為一個非正式的標(biāo)準(zhǔn)提交到IETF。但是网持,即使蘋果偶爾地提交一些小的更新宜岛,IETF卻沒有關(guān)于制定此標(biāo)準(zhǔn)的有關(guān)進一步的動作。

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

視頻的封裝格式是TS功舀。

視頻的編碼格式為H264,音頻編碼格式為MP3萍倡、AAC或者AC-3。

除了TS視頻文件本身辟汰,還定義了用來控制播放的m3u8文件(文本文件)列敲。

鏈接:http://www.reibang.com/p/426425cad08a

Apple的動態(tài)碼率自適應(yīng)技術(shù)阱佛。主要用于PC和Apple終端的音視頻服務(wù)。包括一個m3u(8)的索引文件戴而,TS媒體分片文件和key加密串文件凑术。可實現(xiàn)流媒體的直播和點播填硕,主要應(yīng)用在iOS系統(tǒng)麦萤,為iOS設(shè)備(如iPhone、iPad)提供音視頻直播和點播方案扁眯。HLS點播壮莹,基本上就是常見的分段HTTP點播,不同在于姻檀,它的分段非常小命满。

1.HLS 直播原理:通過相關(guān)設(shè)備采集攝像頭的視頻和麥克風(fēng)的音頻,并實時進行 H264視頻編碼和 AAC 音頻音頻編碼,并按照 HLS協(xié)議規(guī)范,轉(zhuǎn)換為標(biāo)準(zhǔn)的 TS文件以及m3u8(是一個地址,里面記錄了服務(wù)器多對應(yīng)的文件)索引文件.

2. HLS 點播:就是對 HTTP 進行分段播放,不同的就是在于對 HTTP 進行的分段非常小,因此可以說, HLS 點播的重點就是對 HTTP 進行分段.(現(xiàn)在的分段技術(shù)比較常見不在贅述)

3 HLS 直播原理:和其他的常見的直播協(xié)議(如: RTMP,RTSP,MMS)不同, 遵守HLS 協(xié)議的直播在客戶端接收到的并不是完整的數(shù)據(jù)流. 即HLS 協(xié)議的服務(wù)器將最新獲取到的片段進行分割為小片段,客戶端獲取服務(wù)器剛編好的最新的片段進行播放.這樣服務(wù)器端不斷的獲取新的數(shù)據(jù)進行分割成新的片段,客戶端不斷的從服務(wù)器端獲取最近的片段進行播放.由此可以說 HLS 是以點播的形式實現(xiàn)的直播.

HLS協(xié)議在服務(wù)器端將直播數(shù)據(jù)流存儲為連續(xù)的、很短時長的媒體文件(MPEG-TS格式)绣版,而客戶端則不斷的下載并播放這些小文件胶台,因為服務(wù)器端總是會將最新的直播數(shù)據(jù)生成新的小文件,這樣客戶端只要不停的按順序播放從服務(wù)器獲取到的文件杂抽,就實現(xiàn)了直播诈唬。由此可見,基本上可以認(rèn)為缩麸,HLS是以點播的技術(shù)方式來實現(xiàn)直播铸磅。直播的 m3u8 文件會不斷更新, 而點播的 m3u8 文件是不會變的, 只需要客戶端在開始時請求一次即可.

常用的流媒體協(xié)議主要有 HTTP 漸進下載和基于 RTSP/RTP 的實時流媒體協(xié)議,這二種基本是完全不同的東西杭朱,目前比較方便又好用的是用 HTTP 漸進下載方法阅仔。在這個中 apple 公司的 HTTP Live Streaming 是這個方面的代表。它最初是蘋果公司針對iPhone弧械、iPod八酒、iTouch和iPad等移動設(shè)備而開發(fā)的流.現(xiàn)在見到在桌面也有很多應(yīng)用了,HTML5 是直接支持這個刃唐。

但是HLS協(xié)議的小切片方式會生成大量的文件羞迷,存儲或處理這些文件會造成大量資源浪費。如果要實現(xiàn)數(shù)天的時移唁桩,索引量將會是個巨額數(shù)字闭树,并明顯影響請求速度。因此荒澡,HLS協(xié)議對存儲I/O要求相當(dāng)苛刻报辱。

新型點播服務(wù)器系統(tǒng),獨創(chuàng)了內(nèi)存緩存數(shù)據(jù)實時切片技術(shù),顛覆了這種傳統(tǒng)實現(xiàn)方法碍现,從根本上解決了大量切片的碎片問題幅疼,使得單臺服務(wù)器的切片與打包能力不再是瓶頸。其基本原理如下:

不將TS切片文件存到磁盤昼接,而是存在內(nèi)存當(dāng)中爽篷,這種技術(shù)使得服務(wù)器的磁盤上面不再會有“數(shù)以噸計”的文件碎片,極大減少了磁盤的I/O次數(shù)慢睡,延長了服務(wù)器磁盤的使用壽命逐工,極大提高了服務(wù)器運行的穩(wěn)定性。同時漂辐,由于使用這種技術(shù)泪喊,使得終端請求數(shù)據(jù)時直接從服務(wù)器的內(nèi)存中獲取,極大提高了對終端數(shù)據(jù)請求的反應(yīng)速度髓涯,優(yōu)化了視頻觀看體驗袒啼。

總結(jié):

優(yōu)點:

客戶端支持簡單, 只需要支持 HTTP 請求, HTTP 協(xié)議無狀態(tài), 只需要按順序下載媒體片段。

使用 HTTP 協(xié)議網(wǎng)絡(luò)兼容性好, HTTP 數(shù)據(jù)包也可以方便地通過防火墻或者代理服務(wù)器, CDN 支持良好.

Apple 的全系列產(chǎn)品支持, 由于 HLS 是蘋果提出的, 所以在 Apple 的全系列產(chǎn)品包括 iphone, ipad, safari 都不需要安裝任何插件就可以原生支持播放 HLS, 現(xiàn)在, Android 也加入了對 HLS 的支持.

缺點:

相比 RTMP 這類長連接協(xié)議, 延時較高, 難以用到互動直播場景.

對于點播服務(wù)來說, 由于 TS 切片通常較小, 海量碎片在文件分發(fā), 一致性緩存, 存儲等方面都有較大挑戰(zhàn)纬纪。由于客戶端每次請求 TS 或 M3U8 有可能都是一個新的連接請求, 所以, 我們無法有效的標(biāo)識客戶端, 一旦出現(xiàn)問題, 基本無法有效的定位問題

改進:通過一個唯一的 id 來標(biāo)識一條流, 這樣在排查問題時就可以根據(jù)這個 id 來定位播放過程中的問題.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚓再,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子包各,更是在濱河造成了極大的恐慌摘仅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件问畅,死亡現(xiàn)場離奇詭異实檀,居然都是意外死亡,警方通過查閱死者的電腦和手機按声,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恬吕,“玉大人签则,你說我怎么就攤上這事☆砹希” “怎么了渐裂?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钠惩。 經(jīng)常有香客問我柒凉,道長,這世上最難降的妖魔是什么篓跛? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任膝捞,我火速辦了婚禮,結(jié)果婚禮上愧沟,老公的妹妹穿的比我還像新娘蔬咬。我一直安慰自己鲤遥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布林艘。 她就那樣靜靜地躺著盖奈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狐援。 梳的紋絲不亂的頭發(fā)上钢坦,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音啥酱,去河邊找鬼爹凹。 笑死,一個胖子當(dāng)著我的面吹牛懈涛,可吹牛的內(nèi)容都是我干的逛万。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼批钠,長吁一口氣:“原來是場噩夢啊……” “哼宇植!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起埋心,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤指郁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拷呆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闲坎,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年茬斧,在試婚紗的時候發(fā)現(xiàn)自己被綠了腰懂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡项秉,死狀恐怖绣溜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娄蔼,我是刑警寧澤怖喻,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站岁诉,受9級特大地震影響锚沸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涕癣,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一哗蜈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦恬叹、人聲如沸候生。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唯鸭。三九已至,卻和暖如春硅确,著一層夾襖步出監(jiān)牢的瞬間目溉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工菱农, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缭付,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓循未,卻偏偏與公主長得像陷猫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子的妖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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