什麼是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和八百裡的流媒體伺服器系統。
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的終端使用者之間進行直接通信。