RTSP協議、RTMP協議、HTTP協議的區別

轉載:http://easydarwin.org/article/Streaming/141.html

RTSP、 RTMP、HTTP的共同點、區別

共同點:

1:RTSP RTMP HTTP都是在應用應用層。

2: 理論上RTSP RTMPHTTP都可以做直播和點播,但一般做直播用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、RTCP、RTP區別

1:RTSP實時流協議

作爲一個應用層協議,RTSP提供了一個可供擴展的框架,它的意義在於使得實時流媒體數據的受控和點播變得可能。總的說來,RTSP是一個流媒體表示 協議,主要用來控制具有實時特性的數據發送,但它本身並不傳輸數據,而是必須依賴於下層傳輸協議所提供的某些服務。RTSP可以對流媒體提供諸如播放、暫 停、快進等操作,它負責定義具體的控制消息、操作方法、狀態碼等,此外還描述了與RTP間的交互操作(RFC2326)。

2:RTCP控制協議

RTCP控制協議需要與RTP數據協議一起配合使用,當應用程序啓動一個RTP會話時將同時佔用兩個端口,分別供RTP和RTCP使用。RTP本身並 不能爲按序傳輸數據包提供可靠的保證,也不提供流量控制和擁塞控制,這些都由RTCP來負責完成。通常RTCP會採用與RTP相同的分發機制,向會話中的 所有成員週期性地發送控制信息,應用程序通過接收這些數據,從中獲取會話參與者的相關資料,以及網絡狀況、分組丟失概率等反饋信息,從而能夠對服務質量進 行控制或者對網絡狀況進行診斷。

RTCP協議的功能是通過不同的RTCP數據報來實現的,主要有如下幾種類型:

SR:發送端報告,所謂發送端是指發出RTP數據報的應用程序或者終端,發送端同時也可以是接收端。(SERVER定時間發送給CLIENT)。

RR:接收端報告,所謂接收端是指僅接收但不發送RTP數據報的應用程序或者終端。(SERVER接收CLIENT端發送過來的響應)。

SDES:源描述,主要功能是作爲會話成員有關標識信息的載體,如用戶名、郵件地址、電話號碼等,此外還具有向會話成員傳達會話控制信息的功能。

BYE:通知離開,主要功能是指示某一個或者幾個源不再有效,即通知會話中的其他成員自己將退出會話。

APP:由應用程序自己定義,解決了RTCP的擴展性問題,並且爲協議的實現者提供了很大的靈活性。

3:RTP數據協議

RTP數據協議負責對流媒體數據進行封包並實現媒體流的實時傳輸,每一個RTP數據報都由頭部(Header)和負載(Payload)兩個部分組成,其中頭部前12個字節的含義是固定的,而負載則可以是音頻或者視頻數據。

RTP用到的地方就是 PLAY ,服務器往客戶端傳輸數據用UDP協議,RTP是在傳輸數據的前面加了個12字節的頭(描述信息)。

RTP載荷封裝設計本文的網絡傳輸是基於IP協議,所以最大傳輸單元(MTU)最大爲1500字節,在使用IP/UDP/RTP的協議層次結構的時候,這 其中包括至少20字節的IP頭,8字節的UDP頭,以及12字節的RTP頭。這樣,頭信息至少要佔用40個字節,那麼RTP載荷的最大尺寸爲1460字 節。以H264 爲例,如果一幀數據大於1460,則需要分片打包,然後到接收端再拆包,組合成一幀數據,進行解碼播放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章