直播云架構(gòu)

國內(nèi)常見的直播協(xié)議有幾個:RTMP、HLS、HTTP-FLV

RTMP,全稱 Real Time Messaging Protocol,即實時消息傳送協(xié)議。Adobe 公司為 Flash 播放器和服務(wù)器之間音視頻數(shù)據(jù)傳輸開發(fā)的私有協(xié)議。

RTMP 是專為流媒體開發(fā)的協(xié)議,對底層的優(yōu)化比其它協(xié)議更加優(yōu)秀,同時它 Adobe Flash 支持好,基本上所有的編碼器(攝像頭之類)都支持 RTMP 輸出。現(xiàn)在 PC 市場巨大,PC 主要是 Windows,Windows 的瀏覽器基本上都支持 Flash。另外RTMP適合長時間播放,曾經(jīng)有過測試,聯(lián)系 100 萬秒,即 10 天多連續(xù)播放沒有出現(xiàn)問題。最后 RTMP 的延遲相對較低,一般延時在 1-3s 之間,一般的視頻會議,互動式直播,完全是夠用的。

當(dāng)然 RTMP 并沒有盡善盡美,它也有不足的地方。一方面是它是基于 TCP 傳輸,非公共端口,可能會被防火墻阻攔;另一方面,也是比較坑的一方面是 RTMP 為 Adobe 私有協(xié)議,很多設(shè)備無法播放,特別是在 iOS 端,需要使用第三方解碼器才能播放。

HTTP FLV則是將RTMP封裝在HTTP協(xié)議之上的,可以更好的穿透防火墻等。

這兩個協(xié)議實際上傳輸數(shù)據(jù)是一樣的,數(shù)據(jù)都是flv文件的tag。http_flv是一個無限大的http流的文件,相比rtmp就只能直播,而rtmp還可以推流和更多的操作。但是http有個好處,就是是以80http通信的,穿透性強(qiáng),而且rtmp是非開放協(xié)議。

這兩個協(xié)議是如今直播平臺主選的直播方式,主要原因就是延時極低。

將測試:RTMP延遲1s左右,HTTPFLV延遲1-2s左右,可用于對延遲要求比較苛刻的場景,但要注意兼容性,文章最后會說明HTTPFLV兼容性

HLS (HTTP Live Streaming) 則是蘋果公司基于 HTTP 的流媒體傳輸協(xié)議。主要應(yīng)用于 iOS 設(shè)備,包含(iPhone, iPad, iPod touch) 以及 Mac OSX 提供音視頻直播服務(wù)和錄制內(nèi)容(點播)等服務(wù)。

相對于常見的流媒體協(xié)議,HLS 最大的不同在于它并不是一下請求完整的數(shù)據(jù)流。它會在服務(wù)器端將流媒體數(shù)據(jù)切割成連續(xù)的時長較短的 ts 小文件,并通過 M3U8 索引文件按序訪問 ts 文件??蛻舳酥灰煌5陌葱虿シ艔姆?wù)器獲取到的文件,從而實現(xiàn)播放音視頻。

HLS 的優(yōu)勢:

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

穿透防火墻?;?HTTP/80 傳輸,有效避免防火墻攔截

性能高。通過 HTTP 傳輸, 支持網(wǎng)絡(luò)分發(fā),CDN 支持良好,且自帶多碼率自適應(yīng),Apple 在提出 HLS 時,就已經(jīng)考慮了碼流自適應(yīng)的問題。

HLS 的劣勢:

實時性差,延遲高。HLS 的延遲基本在 10s+ 以上

文件碎片。特性的雙刃劍,ts 切片較小,會造成海量小文件,對存儲和緩存都有一定的挑戰(zhàn)

HTM5的支持

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

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

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