1. 程式人生 > >RTP網路位元組序

RTP網路位元組序

一. 填充12位元組的頭

在這裡插入圖片描述

  1. 版本(V):2 位元,版本是 2。
  2. 填充§:1 位元,值為0。
  3. 擴充套件(X):1 位元,若設定擴充套件位元,固定頭(僅)後面跟隨一個頭擴充套件,不 擴充套件,值為0。
  4. CSRC 計數(CC):4 位元,不使用,值為0。
  5. 標誌(M):1 位元,值為1時標誌為該幀的最後一包。
  6. 負載型別(PT):7 位元,此域定義了負載的格式,值為98,表示H.265。
  7. 序列號(sequence number):16 位元,每傳送一個 RTP 資料包,序列號加 1,接收端可以據此檢測丟包和重建包序列。序列號的初始值是隨機的(不可預測),以使即便在源本身不加密時(有時包要通過翻譯器,它會這樣做),對加密演算法泛知的普通文字攻擊也會更加困難。
  8. 時間戳(timestamp):32 位元,時間戳反映了 RTP 資料包中第一個位元組的取樣時間。
  9. SSRC:32 位元,用以識別同步源。識別符號被隨機生成,以使在同一個 RTP 會話期中沒有任何兩個同步源有相同的 SSRC 識別符。RTP 包流的源,用 RTP 報頭中 32 位數值的SSRC 識別符號進行標識,使其不依賴於網路地址。一個同步源的所有包構成了相同計時和序列號空間的一部分,這樣接收方就可以把一個同步源的包放在一起,來進行重放。

二. 判斷該幀是否大於1400

  1. 大於1400,分片
  • 12,13 位元組:填充2個位元組的FuIndicator,其中u6Type = 49, u6LayerId = 0;u1F 由視訊流中的Nalu頭部 的u1F決定,u3TID 由Nalu頭部的u3TID決定      在這裡插入圖片描述
  • 14位元組:填充一個位元組的FuHdr, 其中u1S為開始位,u1E為結束位,u6Type由Nalu頭部的u6Type決定          在這裡插入圖片描述
  • 位15:填充視訊流

2.不大於1400   注:最後一片,RTP頭的hRtp->pRtpFixedHdr->u1Marker = 1;

  • 位12、13:直接填充u6LayerId = 1,u3TID = 0, u6Type,u1F由視訊中Nalu頭部決定
  • 位14:填充視訊流