zoukankan      html  css  js  c++  java
  • RTP有效负载(载荷)类型 (RTP Payload Type)

    下图为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

  • 相关阅读:
    古典问题rabbit
    输入两个正整数m和n,求其最大公约数和最小公倍数
    水仙花数
    输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
    mybatis中的#和$的区别
    SpringMVC 中整合JSON、XML视图
    Gson简要使用笔记
    Spring Framework Artifacts
    Quartz的cron表达式
    清除svn文件目录的bat脚本
  • 原文地址:https://www.cnblogs.com/liushui-sky/p/13846456.html
Copyright © 2011-2022 走看看