亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                直播背后的原理是?初識(shí)視頻流協(xié)議 HLS 和 RTMP

                直播背后的原理是?初識(shí)視頻流協(xié)議 HLS 和 RTMP

                HTTP Live Streaming (HLS)

                HTTP Live Streaming 簡(jiǎn)稱為 HLS, 是一個(gè)基于 HTTP 的視頻協(xié)議,由 APPLE 公司提出和實(shí)現(xiàn)。蘋果公司的很多產(chǎn)品都支持 HLS 協(xié)議,譬如 Mac OS 上的 QuickTime、Safari 以及 iOS 上的 Safari。蘋果 2009 年提出該協(xié)議,HLS 是 iOS 設(shè)備默認(rèn)要求的視頻流標(biāo)準(zhǔn)。安卓也支持HLS,見文章Guide to Mobile Video Streaming with HLS | Mux blog

                Since then, Android has added support, as have most other platforms.

                HLS 因?yàn)橐韵聨讉€(gè)原因比較受歡迎。

                • HLS 幾乎可隨處播放。 幾個(gè)大平臺(tái) web、mobile、tv 基本都有免費(fèi)的HLS 播放器支持。
                • 蘋果 要求 HLS。 如果你想在 iOS 設(shè)備直播,逃不了的。
                • HLS 相對(duì)簡(jiǎn)單。 它使用了普遍且已經(jīng)存儲(chǔ)的視頻格式(MP4 或 TS,伴隨著 H.264 和 AAC 等編解碼器), 另外附加了一個(gè)丑陋但人類可讀的文本格式(m3u8).
                • 它通過 HTTP 工作。 不需要跑特殊的服務(wù)(不像老舊校風(fēng)派的 RTMP 協(xié)議或者新潮的 WebRTC 協(xié)議). HLS 可以方便的透過防火墻或者代理服務(wù)器,而且可以很方便的利用 CDN 進(jìn)行分發(fā)加速,并且客戶端實(shí)現(xiàn)起來也很方便。

                原理

                HLS 協(xié)議基于 HTTP,而一個(gè)提供 HLS 的服務(wù)器需要做兩件事:

                • 編碼: 以 H.264 格式對(duì)圖像進(jìn)行編碼,以 MP3 或者 HE-AAC 對(duì)聲音進(jìn)行編碼,最終打包到 MPEG-2 TS(Transport Stream)容器之中;
                • 分割: 把編碼好的 TS 文件等長(zhǎng)切分成后綴為 ts 的小文件,并生成一個(gè) .m3u8 的純文本索引文件

                HLS 把整個(gè)流分成一個(gè)個(gè)小的基于 HTTP 的文件來下載,每次只下載一些。HLS 協(xié)議由三部分組成:HTTP、M3U8、TS。這三部分中,HTTP 是傳輸協(xié)議,M3U8 是索引文件,TS 是音視頻的媒體信息。

                瀏覽器使用的是 m3u8 文件。在 HTML5 頁面上使用 HLS 非常簡(jiǎn)單,直接

                或者

                HLS的index文件就是m3u8的文件,先下載一級(jí)index file(master_playlist.m3u8),它里面記錄了二級(jí)索引文件的地址(Alternate-A、Alternate-B、Alternate-C)的地址,然后客戶端再去下載二級(jí)索引文件,二級(jí)索引文件中又記錄了TS文件的下載地址,這樣客戶端就可以按順序下載TS視頻文件并連續(xù)播放。

                一個(gè)典型的一級(jí)索引 m3u8 文件格式如下:

                #EXTM3U#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2000000,CODECS=”mp4a.40.2, avc1.4d401f”skiing-720p.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=375000,CODECS=”mp4a.40.2, avc1.4d4015″skiing-360p.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=750000,CODECS=”mp4a.40.2, avc1.4d401e”skiing-480p.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3500000,CODECS=”mp4a.40.2, avc1.4d401e”skiing-1080p.m3u8

                [免費(fèi)分享]007,資料包括《Andoird音視頻開發(fā)必備手冊(cè)+音視頻學(xué)習(xí)視頻+學(xué)習(xí)文檔資料包+大廠面試真題+2022最新學(xué)習(xí)路線圖》等,點(diǎn)擊下方鏈接加衛(wèi)星獲取

                FFmpegWebRTCRTMPRTSPHLSRTP播放器-音視頻流媒體高級(jí)開發(fā)

                詳細(xì)介紹如下:

                • bandwidth指定視頻流的比特率
                • PROGRAM-ID無用無需關(guān)注,
                • 每一個(gè)#EXT-X-STREAM-INF的下一行是二級(jí)index文件的路徑,可以用相對(duì)路徑也可以用絕對(duì)路徑。例子中用的是相對(duì)路徑。

                一級(jí)索引 m3u8 文件中記錄了不同比特率視頻流的二級(jí)index文件路徑,客戶端可以自己判斷自己的現(xiàn)行網(wǎng)絡(luò)帶寬,來決定播放哪一個(gè)視頻流。也可以在網(wǎng)絡(luò)帶寬變化的時(shí)候平滑切換到和帶寬匹配的視頻流。

                一個(gè)二級(jí)索引文件格式內(nèi)容如下 (skiing-480p.m3u8):

                #EXTM3U#EXT-X-TARGETDURATION:10#EXT-X-VERSION:3#EXT-X-MEDIA-SEQUENCE:0#EXT-X-PLAYLIST-TYPE:VOD#EXTINF:9.97667,file000.ts#EXTINF:9.97667,file001.ts#EXTINF:9.97667,file002.ts#EXTINF:9.97667,file003.ts#EXTINF:9.97667,file004.ts

                可以簡(jiǎn)單的認(rèn)為二級(jí) m3u8 就是包含多個(gè) ts 文件的播放列表。播放器按順序逐個(gè)播放,全部放完再請(qǐng)求一下 m3u8 文件,獲得包含最新 ts 文件的播放列表繼續(xù)播,周而復(fù)始。整個(gè)直播過程就是依靠一個(gè)不斷更新的 m3u8 和一堆小的 ts 文件組成,m3u8 必須動(dòng)態(tài)更新,ts 可以走 CDN。

                整體架構(gòu)

                HLS的架構(gòu)分為三部分:Server,CDN,Client 。即服務(wù)器、分發(fā)組件和客戶端。架構(gòu)圖如下:

                HLS 缺點(diǎn)

                HLS 不是萬能的,它也有一個(gè)致命的弱點(diǎn):延遲現(xiàn)象非常明顯。如果每個(gè) ts 按照 5 秒來切分,一個(gè) m3u8 放 6 個(gè) ts 索引,那么至少就會(huì)帶來 30 秒的延遲。如果減少每個(gè) ts 的長(zhǎng)度,減少 m3u8 中的索引數(shù),延時(shí)確實(shí)會(huì)減少,但會(huì)帶來更頻繁的緩沖,對(duì)服務(wù)端的請(qǐng)求壓力也會(huì)成倍增加。所以只能根據(jù)實(shí)際情況找到一個(gè)折中的點(diǎn)。

                另外一點(diǎn), HLS 基于短連接 HTTP,HTTP 是基于 TCP 的,這就意味著 HLS 需要不斷地與服務(wù)器建立連接,TCP 每次建立連接時(shí)的三次握手、慢啟動(dòng)過程、斷開連接時(shí)的四次揮手都會(huì)產(chǎn)生消耗。

                Real Time Messaging Protocol (RTMP)

                Real Time Messaging Protocol(簡(jiǎn)稱 RTMP)是 Macromedia 開發(fā)的一套視頻直播協(xié)議,現(xiàn)在屬于 Adobe。

                協(xié)議基于 TCP,是一個(gè)協(xié)議族,包括 RTMP 基本協(xié)議及 RTMPT/RTMPS/RTMPE 等多種變種。RTMP 是一種設(shè)計(jì)用來進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來在 Flash/AIR 平臺(tái)和支持RTMP協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信。

                無法支持移動(dòng)端 WEB 播放是它的硬傷。雖然無法在iOS的H5頁面播放,但是iOS原生應(yīng)用可以寫解碼去解析的。瀏覽器端,HTML5 video標(biāo)簽無法播放 RTMP 協(xié)議的視頻,可以通過 video.js 來實(shí)現(xiàn)。

                其主要優(yōu)點(diǎn):

                • 實(shí)時(shí)性非常好,延時(shí)較小,通常為 1-3s
                • 基于 TCP 長(zhǎng)連接,不需要多次建連。

                HLS 和 RTMP 對(duì)比

                整體直播方案

                如上所見,兩個(gè)協(xié)議各有所長(zhǎng),所以實(shí)際項(xiàng)目中需要自己抉擇到底采用哪種方案。直播整體架構(gòu)如下。

                【學(xué)習(xí)更多-進(jìn)入鏈接點(diǎn)擊免費(fèi)報(bào)名,即可開始學(xué)習(xí)~】

                【免費(fèi)】FFmpeg/WebRTC/RTMP/NDK/Android音視頻流媒體高級(jí)開發(fā)-學(xué)習(xí)視頻教程-騰訊課堂

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月25日 06:23
                下一篇 2022年6月25日 06:23

                相關(guān)推薦

                • 抖音只說了封禁沒說時(shí)長(zhǎng)(抖音封禁一般多長(zhǎng)時(shí)間)

                  最近是不是發(fā)現(xiàn)抖音監(jiān)管和封號(hào)的力度大了很多,我常能看到,有同學(xué)吐槽,為什么又被封了,我也沒有違規(guī)呀?。?那么今天,我就列出4大容易被封的原因,幫你避開90%的坑。學(xué)會(huì)了就點(diǎn)贊吧。 …

                  2022年11月27日
                • 短視頻策劃內(nèi)容的3個(gè)要點(diǎn)(短視頻策劃內(nèi)容怎么做)

                  短視頻在制作時(shí),內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過時(shí)了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

                  2022年11月27日
                • 個(gè)人怎么做抖音帶貨(個(gè)人做抖音帶貨能賺錢嗎)

                  抖音如今是大家很熟悉的短視頻平臺(tái),不過現(xiàn)在的抖音卻不只是短視頻那么簡(jiǎn)單,它的功能非常豐富,其中一個(gè)就是可以帶貨,相信很多小伙伴都有在抖音上買過東西,抖音如今的變現(xiàn)能力也是不容小覷的…

                  2022年11月25日
                • 全民K歌升級(jí)新版本7.0之后,有哪些隱藏功能?

                  作者:高百烈來源:知乎 這個(gè)功能,舊版并沒有,要升級(jí)到全新的全民K歌7.0版本才能發(fā)現(xiàn)。 作為朋友圈當(dāng)代K歌之王,我費(fèi)了不少功夫才搶到內(nèi)測(cè)版本。有一說一,全民K歌的路子真的很野,新…

                  2022年11月25日
                • “濛翔”搭檔展現(xiàn)不一樣的世界杯 中國(guó)移動(dòng)咪咕多檔綜藝上線

                  2022國(guó)際足聯(lián)卡塔爾世界杯如火如荼進(jìn)行中,王濛、黃健翔冬奧之后再聚首,作為咪咕嘉賓天團(tuán)的成員,不僅陪伴觀眾直擊現(xiàn)場(chǎng),暢聊世界杯賽場(chǎng)內(nèi)外趣事,更攜手于11月26日、11月30日在咪…

                  2022年11月25日
                • 直播帶貨詳細(xì)腳本(直播文案策劃怎么寫)

                  短視頻運(yùn)營(yíng)策劃方案怎么寫?涉及哪幾個(gè)方面? 我在網(wǎng)上看到好多千篇一律的文章,關(guān)于【短視頻運(yùn)營(yíng)策劃方案】這一塊,基本都是在講賬號(hào)的內(nèi)容本身。 你內(nèi)容做得再好,卻不掌握算法的規(guī)律,能有…

                  2022年11月25日
                • 2022世界杯免費(fèi)直播平臺(tái)有哪些(2022世界杯免費(fèi)直播平臺(tái))

                  世界杯近期的人氣超級(jí)火爆的,大家雖然不能去現(xiàn)場(chǎng)觀看卡塔爾世界杯比賽,不過國(guó)內(nèi)的球迷也都第一時(shí)間通過世界杯了解賽事情況。2022世界杯免費(fèi)直播平臺(tái)有哪些?據(jù)悉本屆世界杯國(guó)內(nèi)的直播平臺(tái)…

                  2022年11月24日
                • 咪咕世界杯怎么投屏到電視上(咪咕視頻世界杯會(huì)員是什么)

                  最近關(guān)于2022年卡塔爾世界杯人氣超級(jí)火爆的,大家也都想要觀看世界杯的所有比賽直播,而咪咕視頻也可以觀看本屆世界杯。那么,咪咕世界杯怎么投屏到電視上?投屏到電視上門觀看世界杯體驗(yàn)感…

                  2022年11月24日
                • 蘋果手機(jī)咪咕視頻世界杯怎么投屏觀看(咪咕視頻軟件)

                  2022年卡塔爾世界杯比賽相信大家近期也都有在關(guān)注,而目前國(guó)內(nèi)可以觀看世界杯直播的平臺(tái)很多,咪咕視頻就是其中一個(gè)。那么,蘋果手機(jī)咪咕視頻世界杯怎么投屏觀看?有關(guān)蘋果手機(jī)咪咕視頻世界…

                  2022年11月24日
                • 科比19歲女兒遭自稱與她生“科比式孩子”男子跟蹤騷擾

                  極目新聞?dòng)浾咄趿亮咙S佳琪 據(jù)??怂剐侣劸W(wǎng)報(bào)道,當(dāng)?shù)貢r(shí)間11月21日,已故籃球巨星科比·布萊恩特的長(zhǎng)女娜塔莉亞·布萊恩特21日向法院提交臨時(shí)限制令,聲稱這位32歲的前科從十幾歲起就騷…

                  2022年11月24日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息