2017年11月8日 星期三

RTP Payload Type

RTP 的 Payload Type 欄位 (PT) 用來對應的 RTP payload 所採用的格式,通常指的是影音編碼格式。

RTP 主規範 RFC 3350 預設 PT 佔 7 位元,不同的應用採用不同的 RTP profile 規範,PT 的位元數可以增減或擴充,可有不同的 PT 對應。 影音應用常用的 profile 是 RFC 3551《RTP Profile for Audio and Video Conferences with Minimal Control》,簡稱 RTP A/V Profile 或 RTP/AVP,PT 維持 7 位元。早期 PT 採用靜態對應,例如 0 就是 PCMU、8 就是 PCMA、18 就是 G.729 等,但這樣 128 個值無法滿足所有已有的和未來的編碼格式。

現在 SDP RFC4566、H.323/H.245 或其它協定,支援動態綁定 PT 到語音編碼,也就是在某個 RTP session 建立前,說明使用的 PT 值,其對應的編碼格式是什麼。此外,還可以附帶相關速率、通道數等資訊。新的編碼格式會使用動態 PT,使用註冊在 RTP Payload Format media types 中 media type 為 audio 或 video 的 subtype 作為名稱。

RTP Payload types (PT) for standard audio and video encodings 列出所有 PT 號碼的使用情形,其中 96 ~ 127 這 32 個值是動態對應應該先使用的部份。如不夠,再使用小於 63 中從未指定的部份。預設已經靜態對應的部份也可以動態使用,只是有些沒實作動態對應而可能造成衝突。
  1. 96 ~ 127:動態對應專用。
  2. < 63 的從未指定的部份:動態指定不會有衝突。
  3. 1, 2, 19, 64, 65:原本打算要用,但後來沒用。參考 RFC 3551、RFC 5761。
  4. 靜態指定的部份:
  5. 66 ~ 95:RTCP 跟 RTP 使用相同 UDP port 時,M 和 PT 欄位是 RTCP 的 packet type,用來區別出 RTCP,只能使用沒衝突的 PT。
    • 66 ~ 71:將來 RTCP 擴充的新 packet type。
    • 72 ~ 76:和 RTCP SR (200)、RR (201)、SDES (202)、BYE (203)、和 APP (204) 衝突。
    • 77, 78:和 RTP/AVPF 定義的 RTCP RTPFB 和 PSFB 衝突。
    • 79:和 RTCP XR 衝突。
    • 81:和 RTCP RSI 衝突。
    • 80, 82 ~ 95:將來 RTCP 擴充的新 packet type。

參考

  1. RFC 3551《RTP Profile for Audio and Video Conferences with Minimal Control》:RTP/AVP
  2. RFC 3550《RTP: A Transport Protocol for Real-Time Applications》
  3. RFC 5761《Multiplexing RTP Data and Control Packets on a Single Port》:討論 RTCP 跟 RTP 使用同一 UDP port 的衝突問題。
  4. RTCP Control Packet types (PT):RTCP packet type 列表。
  5. https://tools.ietf.org/id/draft-wu-avtcore-dynamic-pt-usage-02.html
  6. 其它 profile 有 RTP/SAVP [RFC3711]、RTP/AVPF [RFC4585]、RTP/SAVPF [RFC5124],皆以 RTP/AVP 為基礎。

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...