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 中從未指定的部份。預設已經靜態對應的部份也可以動態使用,只是有些沒實作動態對應而可能造成衝突。
- 96 ~ 127:動態對應專用。
- < 63 的從未指定的部份:動態指定不會有衝突。
- 1, 2, 19, 64, 65:原本打算要用,但後來沒用。參考 RFC 3551、RFC 5761。
- 靜態指定的部份:
- 66 ~ 95:RTCP 跟 RTP 使用相同 UDP port 時,M 和 PT 欄位是 RTCP 的 packet type,用來區別出 RTCP,只能使用沒衝突的 PT。
參考
- RFC 3551《RTP Profile for Audio and Video Conferences with Minimal Control》:RTP/AVP
- RFC 3550《RTP: A Transport Protocol for Real-Time Applications》
- RFC 5761《Multiplexing RTP Data and Control Packets on a Single Port》:討論 RTCP 跟 RTP 使用同一 UDP port 的衝突問題。
- RTCP Control Packet types (PT):RTCP packet type 列表。
- https://tools.ietf.org/id/draft-wu-avtcore-dynamic-pt-usage-02.html
- 其它 profile 有 RTP/SAVP [RFC3711]、RTP/AVPF [RFC4585]、RTP/SAVPF [RFC5124],皆以 RTP/AVP 為基礎。
沒有留言:
張貼留言