日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 網(wǎng)絡(luò)協(xié)議
[導(dǎo)讀]   HLS常用的流媒體協(xié)議主要有 HTTP 漸進下載和基于 RTSP/RTP 的實時流媒體協(xié)議,這二種基本是完全不同的東西,目前比較方便又好用的是用 HTTP 漸進下載方法。在這個中 apple

  HLS常用的流媒體協(xié)議主要有 HTTP 漸進下載和基于 RTSP/RTP 的實時流媒體協(xié)議,這二種基本是完全不同的東西,目前比較方便又好用的是用 HTTP 漸進下載方法。在這個中 apple 公司的 HTTP Live Streaming 是這個方面的代表。它最初是蘋果公司針對iPhone、iPod、iTouch和iPad等移動設(shè)備而開發(fā)的流?,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)化了視頻觀看體驗。

  HTTP Live Streaming(縮寫是HLS)是一個由蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。是蘋果公司QuickTIme X和iPhone軟件系統(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ò)來傳輸媒體流。

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

  HLS協(xié)議簡介

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

  視頻的封裝格式是TS。

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

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

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

  另外于負載,RTMP是一種有狀態(tài)協(xié)議,很難對視頻服務(wù)器進行平滑擴展,因為需要為每一個播放視頻流的客戶端維護狀態(tài)。而HLS基于無狀態(tài)協(xié)議(HTTP),客戶端只是按照順序使用下載存儲在服務(wù)器的普通TS文件,做負責(zé)均衡如同普通的HTTP文件服務(wù)器的負載均衡一樣簡單。

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

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

  

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

  來解釋一下這張圖,從左到右講,左下方的inputs的視頻源是什么格式都無所謂,他與server之間的通信協(xié)議也可以任意(比如RTMP),總之只要把視頻數(shù)據(jù)傳輸?shù)椒?wù)器上即可。這個視頻在server服務(wù)器上被轉(zhuǎn)換成HLS格式的視頻(既TS和m3u8文件)文件。細拆分來看server里面的Media encoder的是一個轉(zhuǎn)碼模塊負責(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其實只是一個普通的HTTP文件服務(wù)器,然后客戶端只需要訪問一級index文件的路徑就會自動播放HLS視頻流了。

  HLS的index文件

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

  

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

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

  一級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)注,每一個#EXT-X-STREAM-INF的下一行是二級index文件的路徑,可以用相對路徑也可以用絕對路徑。例子中用的是相對路徑。這個文件中記錄了不同比特率視頻流的二級index文件路徑,客戶端可以自己判斷自己的現(xiàn)行網(wǎng)絡(luò)帶寬,來決定播放哪一個視頻流。也可以在網(wǎng)絡(luò)帶寬變化的時候平滑切換到和帶寬匹配的視頻流。

  #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

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

  播放模式

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

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

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

  HLS 的請求流程是:

  1 http 請求 m3u8 的 url。

  2 服務(wù)端返回一個 m3u8 的播放列表,這個播放列表是實時更新的,一般一次給出5段數(shù)據(jù)的 url。

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

  簡單流程:

  

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉