RTSP協議解析

記錄下RTP的解析

參考:

http://blog.csdn.net/chen495810242/article/details/39207305

http://blog.csdn.net/bytxl/article/details/50395427


RTP Header解析

圖1

前12字節是固定的,CSRC可以有多個。

1)? ? ? ? V:RTP協議的版本號,占2位,當前協議版本號為2

2)? ? ? ? P:填充標志,占1位,如果P=1,則在該報文的尾部填充一個或多個額外的八位組,它們不是有效載荷的一部分。

3)? ? ? ? X:擴展標志,占1位,如果X=1,則在RTP報頭后跟有一個擴展報頭

4)? ? ? ? CC:CSRC計數器,占4位,指示CSRC 標識符的個數

5)? ? ? ? M: 標記,占1位,不同的有效載荷有不同的含義,對于視頻,標記一幀的結束;對于音頻,標記會話的開始。

6)? ? ? ? PT(payload type): 有效荷載類型,占7位,用于說明RTP報文中有效載荷的類型,如GSM音頻、JPEM圖像等,在流媒體中大部分是用來區分音頻流和視頻流的,這樣便于客戶端進行解析。

7)? ? ? ? 序列號:占16位,用于標識發送者所發送的RTP報文的序列號,每發送一個報文,序列號增1。這個字段當下層的承載協議用UDP的時候,網絡狀況不好的時候可以用來檢查丟包。當出現網絡抖動的情況可以用來對數據進行重新排序。序列號的初始值是隨機的,同時音頻包和視頻包的sequence 是分別記數的。

8)? ? ? ? 時戳(Timestamp):占32位,必須使用90 kHz 時鐘頻率(程序中的90000)。時戳反映了該RTP報文的第一個八位組的采樣時刻。接收者使用時戳來計算延遲和延遲抖動,并進行同步控制??梢愿鶕TP包的時間戳來獲得數據包的時序。

9)? ? ? ? 同步信源(SSRC)標識符:占32位,用于標識同步信源。同步信源是指產生媒體流的信源,它通過RTP報頭中的一個32位數字SSRC標識符來標識,而不依賴于網絡地址,接收者將根據SSRC標識符來區分不同的信源,進行RTP報文的分組。

該標識符是隨機選擇的,參加同一視頻會議的兩個同步信源不能有相同的SSRC。

此標識不是隨機選擇的,目的在于使同一RTP包連接中沒有兩個同步源有相同的SSRC標識。盡管多個源選擇同一個標識的概率很低,所有RTP實現都必須探測并解決沖突。如源改變源傳輸地址,也必須選擇一個新SSRC標識以避免插入成環行源。

10)? ? 提供信源(CSRC)標識符:每個CSRC標識符占32位,可以有0~15個CSRC。每個CSRC標識了包含在該RTP報文有效載荷中的所有提供信源。

提供信源用來標志對一個RTP混合器產生的新包有貢獻的所有RTP包的源。是指當混合器接收到一個或多個同步信源的RTP報文后,經過混合處理產生一個新的組合RTP報文,并把混合器作為組合RTP報文的SSRC,而將原來所有的SSRC都作為CSRC傳送給接收者,使接收者知道組成組合報文的各個SSRC。

注:基本的RTP說明并不定義任何頭擴展本身,如果遇到X=1,需要特殊處理

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,141評論 6 13
  • 網絡抽象層單元類型 (NALU): NALU頭由一個字節組成,它的語法如下: F: 1個比特. forbidde...
    ai___believe閱讀 8,194評論 0 9
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者...
    保川閱讀 5,987評論 1 13
  • 西方人把技術因素看得很重,他就覺得顛覆一個政權,既可以從政治上也可以從技術上,他可能放在更加重要的一個位置。因為技...
    瘦一玄閱讀 343評論 1 1
  • 春游(珂祎) 今天上午,陽光明媚,萬里無云,老師要帶我們去春游。老師說,我們要去一個叫化鳳...
    紅楓在側閱讀 521評論 0 0