RTSP和RTMP是2個不同的網(wǎng)絡(luò)傳輸協(xié)議,RTSP(Real Time Streaming Protocol)阳懂,RFC2326梅尤,實時流傳輸協(xié)議,而RTMP是Real Time Messaging Protocol(實時消息傳輸協(xié)議),網(wǎng)絡(luò)攝像機的廠家岩调,可根據(jù)自身的需求巷燥,采用不同協(xié)議來處理。目前多數(shù)網(wǎng)絡(luò)攝像機支持RTSP号枕、ONVIF等通用的協(xié)議缰揪,而支持RTMP比較少。
RTMP是Real Time Messaging Protocol(實時消息傳輸協(xié)議)
它是Adobe Systems公司為Flash播放器和服務(wù)器之間音頻葱淳、視頻钝腺、數(shù)據(jù)傳輸開發(fā)的協(xié)議。該協(xié)議基于TCP赞厕,是一個協(xié)議族艳狐,包括RTMP基本協(xié)議及RTMPT、RTMPS皿桑、RTMPE等多種變種毫目。RTMP是一種設(shè)計用來進行實時數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議蔬啡,主要用來在Flash、AIR平臺和支持RTMP協(xié)議的流媒體蒜茴、交互服務(wù)器之間進行音視頻和數(shù)據(jù)通信星爪。支持該協(xié)議的軟件包括Adobe Media Server、Ultrant Media Server粉私、red5等顽腾。
這是一個標準的,未加密的實時消息傳遞協(xié)議诺核,默認端口是1935抄肖,如果未指定連接端口,那么flash客戶端會嘗試連接其他端口窖杀,其嘗試連接順序按照下列順序依次連接:1935漓摩、443、80(RTMP), 80(RTMPT).
RTSP(Real Time Streaming Protocol)入客,RFC2326管毙,實時流傳輸協(xié)議
該協(xié)議是TCP/IP協(xié)議體系中的一個應用層協(xié)議,由哥倫比亞大學桌硫、網(wǎng)景和RealNetworks公司提交的IETF RFC標準夭咬。該協(xié)議定義了一對多應用程序如何有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上铆隘,它使用TCP或UDP完成數(shù)據(jù)傳輸卓舵。HTTP與RTSP相比,HTTP請求由客戶機發(fā)出膀钠,服務(wù)器作出響應;使用RTSP時掏湾,客戶機和服務(wù)器都可以發(fā)出請求,即RTSP可以是雙向的肿嘲。RTSP是用來控制聲音或影像的多媒體串流協(xié)議融击,并允許同時多個串流需求控制,傳輸時所用的網(wǎng)絡(luò)通訊協(xié)定并不在其定義的范圍內(nèi)睦刃,服務(wù)器端可以自行選擇使用TCP或UDP來傳送串流內(nèi)容砚嘴,它的語法和運作跟HTTP 1.1類似,但并不特別強調(diào)時間同步涩拙,所以比較能容忍網(wǎng)絡(luò)延遲际长。而前面提到的允許同時多個串流需求控制(Multicast),除了可以降低服務(wù)器端的網(wǎng)絡(luò)用量兴泥,更進而支持多方視訊會議(Video Conference)工育。因為與HTTP1.1的運作方式相似,所以代理服務(wù)器〈Proxy〉的快取功能〈Cache〉也同樣適用于RTSP搓彻,并因RTSP具有重新導向功能如绸,可視實際負載情況來轉(zhuǎn)換提供服務(wù)的服務(wù)器嘱朽,以避免過大的負載集中于同一服務(wù)器而造成延遲。
RTSP怔接、RTMP搪泳、HTTP都是可以做視頻直播或者點播,但一般做直播用RTSP扼脐、RTMP做點播用HTTP岸军。做視頻會議的時候原來用SIP協(xié)議,現(xiàn)在基本上被RTMP協(xié)議取代了瓦侮,下面我們就來看看他們的作用到底有何不同艰赞。
共同點:
1:RTSP、RTMP肚吏、HTTP都是在應用應用層方妖。
2: 理論上RTSP、RTMP罚攀、HTTP都可以做直播和點播党觅,但一般做直播用RTSP、RTMP做點播用HTTP斋泄。做視頻會議的時候原來用SIP協(xié)議仔役,現(xiàn)在基本上被RTMP協(xié)議取代了。
區(qū)別:
1:HTTP: 即超文本傳送協(xié)議(ftp即文件傳輸協(xié)議)是己。
HTTP:(Real Time Streaming Protocol),實時流傳輸協(xié)議任柜。
HTTP全稱Routing Table Maintenance Protocol(路由選擇表維護協(xié)議)卒废。
2:HTTP將所有的數(shù)據(jù)作為文件做處理。http協(xié)議不是流媒體協(xié)議宙地。
RTMP和RTSP協(xié)議是流媒體協(xié)議摔认。
3:RTMP協(xié)議是Adobe的私有協(xié)議,未完全公開,RTSP協(xié)議和HTTP協(xié)議是共有協(xié)議宅粥,并有專門機構(gòu)做維護参袱。
4:RTMP協(xié)議一般傳輸?shù)氖莊lv,f4v格式流秽梅。RTSP協(xié)議一般傳輸?shù)氖莟s,mp4格式的流抹蚀。HTTP沒有特定的流。
5:RTSP傳輸一般需要2-3個通道企垦,命令和數(shù)據(jù)通道分離环壤,HTTP和RTMP一般在TCP一個通道上傳輸命令和數(shù)據(jù)。
RTSP實時流協(xié)議 作為一個應用層協(xié)議钞诡,RTSP提供了一個可供擴展的框架郑现,它的意義在于使得實時流媒體數(shù)據(jù)的受控和點播變得可能湃崩。總的說來接箫,RTSP是一個流媒體表示協(xié)議攒读,主要用來控制具有實時特性的數(shù)據(jù)發(fā)送,但它本身并不傳輸數(shù)據(jù)辛友,而是必須依賴于下層傳輸協(xié)議所提供的某些服務(wù)薄扁。RTSP可以對流媒體提供諸如播放、暫停瞎领、快進等操作泌辫,它負責定義具體的控制消息、操作方法九默、狀態(tài)碼等震放,此外還描述了與RTP間的交互操作(RFC2326)。
擴展
AMF
AMF(是Action Message Format的縮寫)是在flash和flex中與遠程服務(wù)端交換數(shù)據(jù)的一種格式.它是二進制格式驼修,F(xiàn)lash應用與服務(wù)端或數(shù)據(jù)庫通過RPC交換數(shù)據(jù)時殿遂,通常都采用這種格式。AMF 1 誕生于Flash Player6乙各,發(fā)展到現(xiàn)在已經(jīng)變成了了AMF3
RTMPT
此協(xié)建立在HTTP協(xié)議之上墨礁,是通過HTTP封裝后的RTMP協(xié)議,默認端口80. 4. RTMPS RTMP的另一個變種耳峦,此協(xié)議是通過SSL加密的RTMP協(xié)議恩静,為數(shù)據(jù)通訊提供安全支持。SSL(Secure Sockets Layer 安全套接層)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議蹲坷。SSL在傳輸層對網(wǎng)絡(luò)連接進行加密驶乾。默認端口443。
RTMPS
RTMPS類似RTMPT循签,但使用的是HTTPS連接级乐。
RTMPE
RTMPE是一個加密版本的RTMP,和RTMPS不同的是RTMPE不采用SSL加密县匠,RTMPE加密快于SSL,并且不需要認證管理风科。如果沒有指定RTMPE端口,F(xiàn)lash播放器將像RTMP協(xié)議一樣依次掃描下列端口:1935(RTMPE) 443(RTMPE) 80(RTMPE) 80(RTMPTE)
RTMPTE
RTMPTE 這個協(xié)議是一個通過加密通道連接的RTMPE乞旦,默認端口80.
RTMFP
RTMFP是Adobe公司開發(fā)的一套新的通信協(xié)議贼穆,該協(xié)議可以讓使用Adobe Flash Player的終端用戶之間進行直接通信。此方案提升了目前Flash Player在網(wǎng)絡(luò)交互方面的體驗杆查。RTMFP將減少直播扮惦、實時聊天方案的帶寬消耗,例如音視頻聊天和多人游戲亲桦。因為RTMFP的數(shù)據(jù)在終端用戶之間流動崖蜜,而不是和服務(wù)器浊仆,所以此方案很適合于大范圍的部署。RTMFP因為采用了UDP也提升了傳送的速度豫领。UDP是Internet上一種更有效傳送音頻視頻的方法抡柿,雖然會有一些丟包,錯包等恐。RTMFP有兩個特性可以幫助解決一些連接錯誤洲劣。快速連接恢復:連接在以外情況下將快速恢復课蔬。例如囱稽,一個無線連接掉線了,一旦重連二跋,他將迅速擁有所有的傳送能力战惊。
IP動態(tài)化
一個活動的網(wǎng)絡(luò)會話將以PEER來標識,即使他變了一個IP扎即,也可以保持原來的會話吞获。例如,一個筆記本在一個無線網(wǎng)絡(luò)獲得了一個新IP地址谚鄙,他將立刻繼續(xù)剛才的會話各拷。 RTMP和RTMFP之間的不同,最根本的是他們在網(wǎng)絡(luò)上采用的協(xié)議闷营。RTMFP是基于UDP的烤黍,RTMP是基于TCP的。UDP在傳送直播數(shù)據(jù)方面比TCP還是有較多優(yōu)勢的傻盟,比如減少延時蚊荣,對丟包的容忍,雖然在可靠性上有所損失莫杈。RTMFP支持Flash Player直接發(fā)送數(shù)據(jù)給另一個,而不經(jīng)過Server奢入,服務(wù)端連接將被用來初始化并交互一些客戶端之間的信息筝闹,也可用來進行服務(wù)端調(diào)用或者作為進入其他系統(tǒng)的網(wǎng)關(guān)。
ONVIF
ONVIF(Open Network Video Interface Forum腥光,開放型網(wǎng)絡(luò)視頻接口論壇)ONVIF規(guī)范描述了網(wǎng)絡(luò)視頻的模型关顷、接口、數(shù)據(jù)類型以及數(shù)據(jù)交互的模式武福。并復用了一些現(xiàn)有的標準议双,如WS系列標準等。ONVIF規(guī)范的目標是實現(xiàn)一個網(wǎng)絡(luò)視頻框架協(xié)議捉片,使不同廠商所生產(chǎn)的網(wǎng)絡(luò)視頻產(chǎn)品(包括攝錄前端平痰、錄像設(shè)備等)完全互通汞舱。
ONVIF規(guī)范中設(shè)備管理和控制部分所定義的接口均以Web Services 的形式提供宗雇。
ONVIF = 服務(wù)端 + 客戶端 =(Web Services + RTSP)+ 客戶端 = ((WSDL + SOAP) + RTSP) + 客戶端
ONVIF規(guī)范的網(wǎng)絡(luò)層次結(jié)構(gòu):
ONVIF接口被劃分為不同模塊昂芜,包括:設(shè)備發(fā)現(xiàn)、設(shè)備管理赔蒲、設(shè)備輸入輸出服務(wù)泌神、圖像配置、媒體配置舞虱、實時流媒體欢际、接收端配置、顯示服務(wù)矾兜、事件處理损趋、PTZ控制等。
參考