簡(jiǎn)單談?wù)勚辈サ耐屏骱蛡鬏?/h2>

[直播技術(shù)] ?Raymone原創(chuàng)

在談?wù)撝辈サ臅r(shí)候,我們經(jīng)常提到RTMP、M3U8、CDN等一系列的概念,到底是些什么鬼哦?目前我們的直播也做得風(fēng)生水起,成為了非常重要的業(yè)務(wù)。當(dāng)同別人聊起直播的時(shí)候,掌握一些直播的基礎(chǔ)知識(shí),會(huì)幫助你秒(裝)變(X)專(成)家(功)。

整個(gè)直播過(guò)程主要涉及到采集、處理、編碼、封裝、推流、傳輸、解碼等一系列過(guò)程,本次就重點(diǎn)說(shuō)推流和傳輸?shù)膯?wèn)題。

先說(shuō)推流。我們常提到的RTMP是Real Time Messaging Protocol(實(shí)時(shí)消息傳輸協(xié)議)的首字母縮寫,是一種推送協(xié)議,同類的推送協(xié)議還有WebRTC,基于UDP的私有協(xié)議等。其中的RTMP是目前主流的流媒體傳輸協(xié)議,廣泛用于直播領(lǐng)域,可以說(shuō)市面上絕大多數(shù)的直播產(chǎn)品都采用了這個(gè)協(xié)議,當(dāng)然我們也不例外。

以上提到的三種協(xié)議有跟其他很多同類技術(shù)一樣,都有各自的優(yōu)缺點(diǎn)。我們的直播使用的RTMP協(xié)議,有一個(gè)重要的有點(diǎn)就是主流的CDN廠商都支持這個(gè)協(xié)議,簡(jiǎn)單理解就是這樣我們的直播在世界上不同的地方觀看就“更快”。但是他的缺點(diǎn)也比較明顯,比如不支持瀏覽器推送。比如我們想做一個(gè)H5的活動(dòng)頁(yè)面,有個(gè)一推流的功能,這個(gè)咋個(gè)辦呢?這個(gè)時(shí)間WebRTC就有優(yōu)勢(shì)了,它是基于W3C標(biāo)準(zhǔn),主流瀏覽器支持度都比較高。

下面說(shuō)下傳輸。常用的傳輸協(xié)議RTMP,HLS ,HTTP-FLV(有的廠商叫HDL),下面的表幫助大家理解:

從地址的前綴可以看出,HLS和HTTP-FLV都是基于HTTP的協(xié)議。RTMP是基于TCP。

HLS即Http Live Streaming,是由蘋果提出基于HTTP的流媒體傳輸協(xié)議。它有一個(gè)非常大的優(yōu)點(diǎn):HTML5可以直接打開播放;這個(gè)意味著可以把一個(gè)直播鏈接通過(guò)微信等轉(zhuǎn)發(fā)分享,不需要安裝任何獨(dú)立的APP,有瀏覽器即可,很通用所以流行度很高。但是它有一個(gè)很大的弱點(diǎn)就是延遲高。目前已經(jīng)有人提出了HLS+(流式HLS)技術(shù),能夠解決HLS延遲高的問(wèn)題,至于實(shí)際效果如果,我們也在研究中。

HTTP-FLV是一種將直播流模擬成FLV文件,通過(guò)HTTP協(xié)議進(jìn)行下載的模式來(lái)實(shí)現(xiàn)流媒體傳輸?shù)膮f(xié)議。

RTMP即Real Time Messaging Protocol,是 Adobe Systems 公司為 Flash 播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開發(fā)的開放協(xié)議。協(xié)議基于 TCP,是一個(gè)協(xié)議族,包括 RTMP 基本協(xié)議及 RTMPT/RTMPS/RTMPE 等多種變種。

其實(shí)編碼與封裝也是一個(gè)比較有意思的問(wèn)題,會(huì)直接影響整個(gè)流媒體傳輸?shù)挠脩趔w驗(yàn)和傳輸成本,之后也機(jī)會(huì)再跟大家分享。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容