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