1. 程式人生 > >RTP RTCP RTSP

RTP RTCP RTSP

1.RTP  over UDP和RTP over RTSP有什麼區別?
2.RTP over RTSP是不是就是RTP over TCP?
3.RTP over TCP 打包視訊是不是要加4個位元組的頭,是怎麼加的?
4.有PS流的封裝格式嗎?

1.RTP  over UDP和RTP over RTSP有什麼區別?
 不一樣,RTP overUDP 是RTP下層使用udp傳輸,RTP over RTSP 是指的用rtsp協議建立會話,然後使用RTP協議傳輸資料;

2.RTP over RTSP是不是就是RTP over TCP?
不是:RTP over RTSP 是指的用用rtsp協議建立會話,然後使用RTP協議傳輸資料;
至於下面用udp 還是tcp是不確定的

3.RTP over TCP 打包視訊是不是要加4個位元組的頭,是怎麼加的?
需要看rfc3984

4.有PS流的封裝格式嗎?
PS,TS,ES都有

 

rtp和rtsp協議是應用層的,tcp和udp是傳輸層的,所以只能說rtp over tcp/udp。而且一般情況下一個點播需要rtsp+rtp+rtcp三個協議共同來實現。
RTP,RTCP資料和RTSP資料共享TCP資料通道,所以必須有一個標識來區別三種資料。RTP和RTCP資料會以$符號+1個位元組的通道編號+4個位元組的資料長度,共6個位元組的字首開始,RTSP資料是沒有字首資料的。RTP資料和RTCP資料的區別在於第二個位元組的通道編號,據觀察RTP通道編號是偶數,RTCP通道編號是奇數。

 

三: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,則需要分片打包,然後到接收端再拆包,組合成一幀資料,進行解碼播放。