什么是RTP協(xié)議
1、協(xié)議簡介
RTP是針對Internet上多媒體數(shù)據(jù)流的一個傳輸協(xié)議??梢詫崿F(xiàn)一對一或一對多的傳輸情況。RTP的典型應用建立在UDP上,但也可以在TCP或ATM等其他協(xié)議之上工作。
? RTP本身只保證實時數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機制,也不提供流量控制或擁塞控制。
2、工作機制
多媒體數(shù)據(jù)傳輸?shù)囊粋€尖銳的問題就是不可預料數(shù)據(jù)到達時間。但是流媒體的傳輸是需要數(shù)據(jù)的適時的到達用以播放和回放。
? rtp協(xié)議就是提供了時間標簽,序列號以及其它的結(jié)構(gòu)用于控制適時數(shù)據(jù)流的播放。發(fā)送端依照即時的采樣在數(shù)據(jù)包里設(shè)置了時間標簽。在接受端收到數(shù)據(jù)包后,就依照時間標簽按照正確的速率恢復成原始的適時的數(shù)據(jù)。
?? 在rtp協(xié)議中,一幀數(shù)據(jù)被分割成幾個包,這幾個包具有相同的時間標簽,但是每一個包又具有不同的序號
3、協(xié)議頭
????????①版本(V)
????? 2位,標識RTP版本。
②填充標識(P)
????? 1位,如設(shè)置填充位,在包尾將包含附加填充字,它不屬于有效載荷。填充的最后一個字節(jié)指明可以忽略多少個填充比特。填充可能用于某些具有固定長度的加密算法
③擴展(X)
????? 1位,如設(shè)置擴展位,固定頭后跟一個頭擴展。
④CSRC計數(shù)(CC)
????? 4位,CSRC計數(shù)包括緊接在固定頭后CSRC標識符個數(shù)。
⑤標記(M)
????? 1位,標志的解釋由具體協(xié)議規(guī)定。它用來允許在比特流中標記重要的事件,如幀邊界
⑥載荷類型(PT)
????? 7位,記錄后面資料使用哪種編碼,接收端找出相應的?decoder?解碼出來。H264的為96
⑦系列號
???? ?16位,系列號隨每個RTP數(shù)據(jù)包而增加1,由接收者用來探測包損失。系列號初值是隨機的。
⑧時標
????? 32位,時標反映RTP數(shù)據(jù)包中第一個八進制數(shù)的采樣時刻,采樣時刻必須從單調(diào)、線性增加的時鐘導出,以允許同步與抖動計算。時標可以讓receiver端知道在正確的時間將資料播放出來。
??????只有系列號而沒有時標,并不能完整按照順序的將data播放出來,因為如果data中間有一段是沒有資料的,只有系列號的話會造成錯誤.一般rtp頭以0x80 60開頭
H264 over RTP基本上分三種類型:
1.Single NAL unitpacket 也就是實際的NAL類型,可以理解為一個包就是一幀H264數(shù)據(jù),這個在實際中是比較多的。
2. Aggregation packet 一包數(shù)據(jù)中含有多個H264幀。
3. Fragmentationunit??一幀數(shù)據(jù)被分為多個RTP包,這也是很常見的,特別是對于關(guān)鍵幀。