標籤:

流媒體系統的RTMP協議

流媒體系統的RTMP協議

什麼是RTMP協議

RTMP(Real-Time Messaging Protocol實時消息傳送協議)的縮寫,它是Adobe Systems公司為Flash播放器和伺服器之間音頻、視頻和數據傳輸開發的協議。這是一個標準的,未加密的實時消息傳遞協議,默認埠是1935,如果未指定連接埠,那麼flash客戶端會嘗試連接其他埠,其嘗試連接順序按照下列順序依次連接:1935、443、80(RTMP), 80(RTMPT)。

RTMP協議應用優勢

使用RTMP技術的流媒體系統有一個非常明顯的特點:使用 Flash Player 作為播放器客戶端,而Flash Player 現在已經安裝在了全世界將近99%的PC上,因此一般情況下收看RTMP流媒體系統的視音頻是不需要安裝插件的。用戶只需要打開網頁,就可以直接收看流媒體,十分方便。

RTMP協議有效的保證了媒體傳輸質量,使用戶可以觀看到高質量的多媒體。RTMP採用TCP協議作為其在傳輸層的協議,避免了多媒體數據在廣域網傳輸過程中的丟包對質量造成的損失。此外RTMP協議傳輸的FLV封裝格式支持的H.264視頻編碼方式可以在很低的碼率下顯示質量還不錯的畫面,非常適合網路帶寬不足的情況下收看流媒體。

RTMP協議應用劣勢

當然RTMP協議也有一些局限,RTMP基於TCP協議,而TCP協議實時性不如UDP,也非常佔用帶寬。目前基於UDP的RTMFP協議能很好的解決這些問題,如Adobe的AMS和800li media server。

RTMP協議的播放依賴於Flash Player,優勢是直接將直播內容很容易就嵌入網頁進行流媒體內容直播。那麼它的一個局限也自然是這個協議的播放依賴於Flash Player。 如果沒有這個播放媒介,這個協議就沒有用武之地了,如蘋果的MacOS電腦,蘋果iOS手機和移動設備都是屏蔽Flash Player的。 目前谷歌公司也宣布安卓Android系統也不再繼續支持Flash Player。

支持此協議輸出的流媒體伺服器系統

支持該協議的軟體包括Adobe Media Server,800Li Media Server,Ultrant Media Server,Wowza Media Server,Red5等。以800Li Media Server 為例,如下圖:

輸出發布地址及播放地址(發布地址+流名稱=播放地址)

輸出RTMP協議的嵌入網頁的HTML代碼(網頁嵌入播放器代碼)

RTMP協議的播放

網頁播放示例

第三方播放器播放示例

相關知識

AMF(Action Message Format)是在flash和flex中與遠程服務端交換數據的一種格式。它是二進位格式,Flash應用與服務端或資料庫通過RPC交換數據時,通常都採用這種格式。AMF 1 誕生於Flash Player6,發展到現在已經變成了了AMF3。

RTMPT,RTMP的變種,此協建立在HTTP協議之上,是通過HTTP封裝後的RTMP協議,默認埠80。

RTMPS,RTMP的另一個變種,此協議是通過SSL(Secure Sockets Layer 安全套接層)加密的RTMP協議,為數據通訊提供安全支持。SSL在傳輸層對網路連接進行加密,默認埠443。

RTMPE,RTMP的變種,RTMPE是一個加密版本的RTMP,和RTMPS不同的是RTMPE不採用SSL加密,RTMPE加密快於SSL,並且不需要認證管理。如果沒有指定RTMPE埠,Flash播放器將像RTMP協議一樣依次掃描下列埠,1935(RTMPE),443(RTMPE) ,80(RTMPE),80(RTMPTE)。

RTMPTE,RTMPTE 這個協議是一個通過加密通道連接的RTMPE,默認埠80。

RTMFP,RTMFP是Adobe公司開發的一套新的通信協議,該協議可以讓使用Adobe Flash Player的終端用戶之間進行直接通信。


推薦閱讀:

rtmp協議學習筆記
Spotify:有權力不用王八蛋?!
很多人想打造「體育版Netflix」,不過這看起來似乎是個偽命題

TAG:rtmp | 流媒體 |