RTSP和RTMP是2個不同的網絡傳輸協議,RTSP(Real Time Streaming Protocol),RFC2326,實時流傳輸協議,而RTMP是Real Time Messaging Protocol(實時消息傳輸協議),網絡攝像機的廠家,可根據自身的需求,采用不同協議來處理。目前多數網絡攝像機支持RTSP、ONVIF等通用的協議,而支持RTMP比較少。
RTMP是Real Time Messaging Protocol(實時消息傳輸協議)
它是Adobe Systems公司為Flash播放器和服務器之間音頻、視頻、數據傳輸開發的協議。該協議基于TCP,是一個協議族,包括RTMP基本協議及RTMPT、RTMPS、RTMPE等多種變種。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用來在Flash、AIR平臺和支持RTMP協議的流媒體、交互服務器之間進行音視頻和數據通信。支持該協議的軟件包括Adobe Media Server、Ultrant Media Server、red5等。
這是一個標準的,未加密的實時消息傳遞協議,默認端口是1935,如果未指定連接端口,那么flash客戶端會嘗試連接其他端口,其嘗試連接順序按照下列順序依次連接:1935、443、80(RTMP), 80(RTMPT).
RTSP(Real Time Streaming Protocol),RFC2326,實時流傳輸協議
該協議是TCP/IP協議體系中的一個應用層協議,由哥倫比亞大學、網景和RealNetworks公司提交的IETF RFC標準。該協議定義了一對多應用程序如何有效地通過IP網絡傳送多媒體數據。RTSP在體系結構上位于RTP和RTCP之上,它使用TCP或UDP完成數據傳輸。HTTP與RTSP相比,HTTP請求由客戶機發出,服務器作出響應;使用RTSP時,客戶機和服務器都可以發出請求,即RTSP可以是雙向的。RTSP是用來控制聲音或影像的多媒體串流協議,并允許同時多個串流需求控制,傳輸時所用的網絡通訊協定并不在其定義的范圍內,服務器端可以自行選擇使用TCP或UDP來傳送串流內容,它的語法和運作跟HTTP 1.1類似,但并不特別強調時間同步,所以比較能容忍網絡延遲。而前面提到的允許同時多個串流需求控制(Multicast),除了可以降低服務器端的網絡用量,更進而支持多方視訊會議(Video Conference)。因為與HTTP1.1的運作方式相似,所以代理服務器〈Proxy〉的快取功能〈Cache〉也同樣適用于RTSP,并因RTSP具有重新導向功能,可視實際負載情況來轉換提供服務的服務器,以避免過大的負載集中于同一服務器而造成延遲。
RTSP、RTMP、HTTP都是可以做視頻直播或者點播,但一般做直播用RTSP、RTMP做點播用HTTP。做視頻會議的時候原來用SIP協議,現在基本上被RTMP協議取代了,下面我們就來看看他們的作用到底有何不同。
共同點:
1:RTSP、RTMP、HTTP都是在應用應用層。
2: 理論上RTSP、RTMP、HTTP都可以做直播和點播,但一般做直播用RTSP、RTMP做點播用HTTP。做視頻會議的時候原來用SIP協議,現在基本上被RTMP協議取代了。
區別:
1:HTTP: 即超文本傳送協議(ftp即文件傳輸協議)。
HTTP:(Real Time Streaming Protocol),實時流傳輸協議。
HTTP全稱Routing Table Maintenance Protocol(路由選擇表維護協議)。
2:HTTP將所有的數據作為文件做處理。http協議不是流媒體協議。
RTMP和RTSP協議是流媒體協議。
3:RTMP協議是Adobe的私有協議,未完全公開,RTSP協議和HTTP協議是共有協議,并有專門機構做維護。
4:RTMP協議一般傳輸的是flv,f4v格式流。RTSP協議一般傳輸的是ts,mp4格式的流。HTTP沒有特定的流。
5:RTSP傳輸一般需要2-3個通道,命令和數據通道分離,HTTP和RTMP一般在TCP一個通道上傳輸命令和數據。
RTSP實時流協議 作為一個應用層協議,RTSP提供了一個可供擴展的框架,它的意義在于使得實時流媒體數據的受控和點播變得可能。總的說來,RTSP是一個流媒體表示協議,主要用來控制具有實時特性的數據發送,但它本身并不傳輸數據,而是必須依賴于下層傳輸協議所提供的某些服務。RTSP可以對流媒體提供諸如播放、暫停、快進等操作,它負責定義具體的控制消息、操作方法、狀態碼等,此外還描述了與RTP間的交互操作(RFC2326)。
擴展
AMF
AMF(是Action Message Format的縮寫)是在flash和flex中與遠程服務端交換數據的一種格式.它是二進制格式,Flash應用與服務端或數據庫通過RPC交換數據時,通常都采用這種格式。AMF 1 誕生于Flash Player6,發展到現在已經變成了了AMF3
RTMPT
此協建立在HTTP協議之上,是通過HTTP封裝后的RTMP協議,默認端口80. 4. RTMPS RTMP的另一個變種,此協議是通過SSL加密的RTMP協議,為數據通訊提供安全支持。SSL(Secure Sockets Layer 安全套接層)是為網絡通信提供安全及數據完整性的一種安全協議。SSL在傳輸層對網絡連接進行加密。默認端口443。
RTMPS
RTMPS類似RTMPT,但使用的是HTTPS連接。
RTMPE
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的終端用戶之間進行直接通信。此方案提升了目前Flash Player在網絡交互方面的體驗。RTMFP將減少直播、實時聊天方案的帶寬消耗,例如音視頻聊天和多人游戲。因為RTMFP的數據在終端用戶之間流動,而不是和服務器,所以此方案很適合于大范圍的部署。RTMFP因為采用了UDP也提升了傳送的速度。UDP是Internet上一種更有效傳送音頻視頻的方法,雖然會有一些丟包,錯包。RTMFP有兩個特性可以幫助解決一些連接錯誤。快速連接恢復:連接在以外情況下將快速恢復。例如,一個無線連接掉線了,一旦重連,他將迅速擁有所有的傳送能力。
IP動態化
一個活動的網絡會話將以PEER來標識,即使他變了一個IP,也可以保持原來的會話。例如,一個筆記本在一個無線網絡獲得了一個新IP地址,他將立刻繼續剛才的會話。 RTMP和RTMFP之間的不同,最根本的是他們在網絡上采用的協議。RTMFP是基于UDP的,RTMP是基于TCP的。UDP在傳送直播數據方面比TCP還是有較多優勢的,比如減少延時,對丟包的容忍,雖然在可靠性上有所損失。RTMFP支持Flash Player直接發送數據給另一個,而不經過Server,服務端連接將被用來初始化并交互一些客戶端之間的信息,也可用來進行服務端調用或者作為進入其他系統的網關。
ONVIF
ONVIF(Open Network Video Interface Forum,開放型網絡視頻接口論壇)ONVIF規范描述了網絡視頻的模型、接口、數據類型以及數據交互的模式。并復用了一些現有的標準,如WS系列標準等。ONVIF規范的目標是實現一個網絡視頻框架協議,使不同廠商所生產的網絡視頻產品(包括攝錄前端、錄像設備等)完全互通。
ONVIF規范中設備管理和控制部分所定義的接口均以Web Services 的形式提供。
ONVIF = 服務端 + 客戶端 =(Web Services + RTSP)+ 客戶端 = ((WSDL + SOAP) + RTSP) + 客戶端
ONVIF規范的網絡層次結構:
ONVIF接口被劃分為不同模塊,包括:設備發現、設備管理、設備輸入輸出服務、圖像配置、媒體配置、實時流媒體、接收端配置、顯示服務、事件處理、PTZ控制等。
參考