下圖為RTP部格式:
*****************************************************
1) V:RTP協議的版本號,占2位,當前協議版本號為2
2) P:填充標志,占1位,如果P=1,則在該報文的尾部填充一個或多個額外的八位組,它們不是有效載荷的一部分。
3) X:擴展標志,占1位,如果X=1,則在RTP報頭后跟有一個擴展報頭
4) CC:CSRC計數器,占4位,指示CSRC 標識符的個數(作用信源CSRC計數器)
5) M: 標記,占1位,不同的有效載荷有不同的含義,對於視頻,標記一幀的結束;對於音頻,標記會話的開始。(對於分組中的重要事件可用該位標識)
6) PT: 有效荷載類型,占7位,用於說明RTP報文中有效載荷的類型,如GSM音頻、JPEM圖像等,在流媒體中大部分是用來區分音頻流和視頻流的,這樣便於客戶端進行解析。
7) 序列號:占16位,用於標識發送者所發送的RTP報文的序列號,每發送一個報文,序列號增1。這個字段當下層的承載協議用UDP的時候,網絡狀況不好的時候可以用來檢查丟包。同時出現網絡抖動的情況可以用來對數據進行重新排序,序列號的初始值是隨機的,同時音頻包和視頻包的sequence是分別記數的。
8) 時戳(Timestamp):占32位,必須使用90 kHz 時鍾頻率。時戳反映了該RTP報文的第一個八位組的采樣時刻。接收者使用時戳來計算延遲和延遲抖動,並進行同步控制。
9) 同步信源(SSRC)標識符:占32位,用於標識同步信源。該標識符是隨機選擇的,參加同一視頻會議的兩個同步信源不能有相同的SSRC。
10) 特約信源(CSRC)標識符:每個CSRC標識符占32位,可以有0~15個。每個CSRC標識了包含在該RTP報文有效載荷中的所有特約信源。
注意
RTP協議詳細說明了在互聯網上傳遞音頻和視頻的標准數據包格式。它一開始被設計為一個多播協議,但后來被用在很多單播應用中。RTP協議常用於流媒體系統(配合RTCP協議),視頻會議和一鍵通(Push to Talk)系統(配合H.323或SIP),使它成為IP電話產業的技術基礎。RTP協議和RTP控制協議RTCP一起使用,而且它是建立在用戶數據報協議上的。
它作為因特網標准在RFC 3550(該文檔的舊版本是RFC 1889)有詳細說明。RFC 3551(STD 65,舊版本是RFC 1890)詳細描述了使用最小控制的音頻和視頻會議。
此列表維護並擴展該列表。
可用的格式
PT ![]() |
Encoding Name ![]() |
Audio/Video (A/V) ![]() |
Clock Rate (Hz) ![]() |
Channels ![]() |
Reference ![]() |
---|---|---|---|---|---|
0 | PCMU | A | 8000 | 1 | [RFC3551] |
1 | Reserved | ||||
2 | Reserved | ||||
3 | GSM | A | 8000 | 1 | [RFC3551] |
4 | G723 | A | 8000 | 1 | [Vineet_Kumar][RFC3551] |
5 | DVI4 | A | 8000 | 1 | [RFC3551] |
6 | DVI4 | A | 16000 | 1 | [RFC3551] |
7 | LPC | A | 8000 | 1 | [RFC3551] |
8 | PCMA | A | 8000 | 1 | [RFC3551] |
9 | G722 | A | 8000 | 1 | [RFC3551] |
10 | L16 | A | 44100 | 2 | [RFC3551] |
11 | L16 | A | 44100 | 1 | [RFC3551] |
12 | QCELP | A | 8000 | 1 | [RFC3551] |
13 | CN | A | 8000 | 1 | [RFC3389] |
14 | MPA | A | 90000 | [RFC3551][RFC2250] | |
15 | G728 | A | 8000 | 1 | [RFC3551] |
16 | DVI4 | A | 11025 | 1 | [Joseph_Di_Pol] |
17 | DVI4 | A | 22050 | 1 | [Joseph_Di_Pol] |
18 | G729 | A | 8000 | 1 | [RFC3551] |
19 | Reserved | A | |||
20 | Unassigned | A | |||
21 | Unassigned | A | |||
22 | Unassigned | A | |||
23 | Unassigned | A | |||
24 | Unassigned | V | |||
25 | CelB | V | 90000 | [RFC2029] | |
26 | JPEG | V | 90000 | [RFC2435] | |
27 | Unassigned | V | |||
28 | nv | V | 90000 | [RFC3551] | |
29 | Unassigned | V | |||
30 | Unassigned | V | |||
31 | H261 | V | 90000 | [RFC4587] | |
32 | MPV | V | 90000 | [RFC2250] | |
33 | MP2T | AV | 90000 | [RFC2250] | |
34 | H263 | V | 90000 | [Chunrong_Zhu] | |
35-71 | Unassigned | ? | |||
72-76 | Reserved for RTCP conflict avoidance | [RFC3551] | |||
77-95 | Unassigned | ? | |||
96-127 | dynamic | ? | [RFC3551] |
除了RTP中列出的RTP有效載荷格式(編碼)之外有效載荷類型表,還有其他有效載荷格式沒有是否分配了靜態RTP有效負載類型,但使用了動態有效負載型號任務。每個有效負載格式都由一個已注冊的下表中列出的媒體子類型。
作為新的有效載荷格式指定后,應將其注冊的媒體子類型添加到其中表。
此外,對於RTP有效負載中列出的有效負載格式在上面的Types表中,“編碼名稱”也被注冊為媒體媒體類型“音頻”或“視頻”下的子類型。時鍾頻率和這里顯示的通道數是這些有效負載的正常值具有正常值的格式。類型名和子類型名都是RFC4288中定義的不區分大小寫。
注冊程序和注冊模板可在 [RFC4855].
除了上表中明確指定PT值的負載類型,還有些負載類型由於誕生的較晚,沒有具體的PT值,只能使用動態(dynamic)PT值,即96到127,這就是為什么大家普遍指定H264的PT值為96。下表中列出了沒有具體PT值的負載類型。
Media Type ![]() |
Subtype ![]() |
Clock Rate (Hz) ![]() |
Channels (audio) ![]() |
Reference ![]() |
---|---|---|---|---|
application | 1d-interleaved-parityfec | [RFC6015] | ||
application | h224 | 4800 | [RFC4573] | |
application | parityfec | [RFC3009] | ||
application | raptorfec | [RFC6682] | ||
application | rtx | [RFC4588] | ||
application | smpte336m | [RFC6597] | ||
application | ulpfec | [RFC5109] | ||
audio | 1d-interleaved-parityfec | [RFC6015] | ||
audio | 32kadpcm | 8000 | [RFC3802][RFC2421] | |
audio | ac3 | [RFC4184] | ||
audio | AMR | 8000 | [RFC4867][RFC3267] | |
audio | AMR-WB | 16000 | [RFC4867][RFC3267] | |
audio | amr-wb+ | 72000 | [RFC4352] | |
audio | ATRAC-ADVANCED-LOSSLESS | [RFC5584] | ||
audio | atrac-x | [RFC5584] | ||
audio | atrac3 | 44100 | [RFC5584] | |
audio | BV16 | 8000 | [RFC4298] | |
audio | BV32 | 16000 | [RFC4298] | |
audio | clearmode | 8000 | 1 | [RFC4040] |
audio | CN | [RFC3389] | ||
audio | DAT12 | [RFC3190] | ||
audio | dsr-es201108 | [RFC3557] | ||
audio | dsr-es202050 | 8000 | [RFC4060] | |
audio | dsr-es202211 | 8000 | [RFC4060] | |
audio | dsr-es202212 | 8000 | [RFC4060] | |
audio | DV | [RFC6469] | ||
audio | DVI4 | [RFC4856] | ||
audio | eac3 | [RFC4598] | ||
audio | EVRC | 8000 | 1 | [RFC4788] |
audio | EVRC0 | 8000 | 1 | [RFC4788] |
audio | EVRC1 | 8000 | 1 | [RFC4788] |
audio | EVRCB | 8000 | 1 | [RFC4788] |
audio | EVRCB0 | 8000 | 1 | [RFC4788] |
audio | EVRCB1 | 8000 | 1 | [RFC4788] |
audio | EVRCWB | [RFC5188] | ||
audio | EVRCWB0 | [RFC5188] | ||
audio | EVRCWB1 | [RFC5188] | ||
audio | fwdred | [RFC6354] | ||
audio | g719 | 48000 | [RFC5404] | |
audio | G722 | [RFC4856] | ||
audio | G7221 | 16000 | 1 | [RFC5577] |
audio | G723 | [RFC4856] | ||
audio | G726-16 | 8000 | 1 | [RFC3551][RFC4856] |
audio | G726-24 | 8000 | 1 | [RFC3551][RFC4856] |
audio | G726-32 | 8000 | 1 | [RFC3551][RFC4856] |
audio | G726-40 | 8000 | 1 | [RFC3551][RFC4856] |
audio | G728 | [RFC4856] | ||
audio | G729 | [RFC4856] | ||
audio | G7291 | 16000 | [RFC4749][RFC5459] | |
audio | G729D | 8000 | 1 | [RFC3551][RFC4856] |
audio | G729E | 8000 | 1 | [RFC3551][RFC4856] |
audio | GSM | [RFC4856] | ||
audio | GSM-EFR | 8000 | 1 | [RFC3551][RFC4856] |
audio | GSM-HR-08 | 8000 | [RFC5993] | |
audio | iLBC | 8000 | [RFC3952] | |
audio | ip-mr_v2.5 | 16000 | [RFC6262] | |
audio | L8 | [RFC3551][RFC4856] | ||
audio | L16 | [RFC4856] | ||
audio | L20 | [RFC3190] | ||
audio | L24 | [RFC3190] | ||
audio | LPC | [RFC4856] | ||
audio | MELP | 8000 | 1 | [RFC8130] |
audio | MELP600 | 8000 | 1 | [RFC8130] |
audio | MELP1200 | 8000 | 1 | [RFC8130] |
audio | MELP2400 | 8000 | 1 | [RFC8130] |
audio | MP4A-LATM | [RFC3016] | ||
audio | MPA | 90000 | [RFC3555] | |
audio | mpa-robust | 90000 | [RFC5219] | |
audio | mpeg4-generic | [RFC3640][RFC5691][RFC6295] | ||
audio | parityfec | [RFC5109] | ||
audio | PCMA | [RFC4856] | ||
audio | PCMA-WB | 16000 | [RFC5391] | |
audio | PCMU | [RFC4856] | ||
audio | PCMU-WB | 16000 | [RFC5391] | |
audio | QCELP | [RFC3555] | ||
audio | raptorfec | [RFC6682] | ||
audio | RED | [RFC2198][RFC3555] | ||
audio | rtp-midi | [RFC6295] | ||
audio | rtx | [RFC4588] | ||
audio | SMV | 8000 | 1 | [RFC3558] |
audio | SMV0 | 8000 | 1 | [RFC3558] |
audio | speex | [RFC5574] | ||
audio | t140c | [RFC4351] | ||
audio | t38 | [RFC4612] | ||
audio | telephone-event | [RFC4733] | ||
audio | tone | [RFC4733] | ||
audio | uemclip | [RFC5686] | ||
audio | ulpfec | [RFC5109] | ||
audio | VDVI | 1 | [RFC3551][RFC4856] | |
audio | VMR-WB | 16000 | [RFC4348][RFC4424] | |
audio | vorbis | [RFC5215] | ||
audio | vorbis-config | [RFC5215] | ||
text | 1d-interleaved-parityfec | [RFC6015] | ||
text | fwdred | [RFC6354] | ||
text | parityfec | [RFC3009] | ||
text | raptorfec | [RFC6682] | ||
text | red | 1000 | [RFC4102] | |
text | rtx | [RFC4588] | ||
text | t140 | 1000 | [RFC4103] | |
text | ulpfec | [RFC5109] | ||
video | BMPEG | 90000 | [RFC2343][RFC3555] | |
video | 1d-interleaved-parityfec | [RFC6015] | ||
video | 3gpp-tt | [RFC4396] | ||
video | BT656 | 90000 | [RFC2431][RFC3555] | |
video | celB | [RFC3555] | ||
video | DV | 90000 | [RFC6469] | |
video | H261 | [RFC4587] | ||
video | H263 | 90000 | [RFC4628] | |
video | H263-1998 | 90000 | [RFC4629] | |
video | H263-2000 | 90000 | [RFC4629] | |
video | H264 | [RFC6184] | ||
video | H264-RCDO | 90000 | [RFC6185] | |
video | H264-SVC | [RFC6190] | ||
video | JPEG | [RFC3555] | ||
video | JPEG2000 | [RFC5371] | ||
video | MP1S | 90000 | [RFC2250][RFC3555] | |
video | MP2P | 90000 | [RFC2250][RFC3555] | |
video | MP2T | [RFC3555] | ||
video | MP4V-ES | 90000 | [RFC3016] | |
video | mpeg4-generic | [RFC3640] | ||
video | MPV | [RFC3555] | ||
video | nv | [RFC4856] | ||
video | parityfec | [RFC5109] | ||
video | pointer | 90000 | [RFC2862] | |
video | raptorfec | [RFC6682] | ||
video | raw | 90000 | [RFC4175] | |
video | rtx | [RFC4588] | ||
video | SMPTE292M | [RFC3497] | ||
video | ulpfec | [RFC5109] | ||
video | vc1 | 90000 | [RFC4425] | |
video | vc2 | 90000 | [RFC8450] |
詳情請參考官方文檔:https://www.ietf.org/assignments/rtp-parameters/rtp-parameters.xml
轉自:https://blog.csdn.net/qq_40732350/article/details/88374707