SDP中AS字段含义、程序计算方法及与编码码率关系咨询
SDP中AS字段的计算逻辑与常见疑问
先贴你查到的RFC2327原文:
AS Application-Specific Maximum: The bandwidth is interpreted to be application-specific, i.e., will be the application’s concept of maximum bandwidth. Normally this will coincide with what is set on the application’s "maximum bandwidth" control if applicable.
先明确:AS字段≠编解码器码率
编解码器码率是单路媒体流(比如视频、音频)的编码比特率,而AS是整个应用层面的最大带宽上限——比如你的应用同时传视频、音频、字幕,AS就得是这几路流的预估最大总带宽,再加上传输协议的额外开销;哪怕是单路流,AS也会比编解码器码率略高,因为要算上RTP/UDP/IP这些包头的开销。
程序里怎么算AS的值?
按这几步来就行:
- 第一步:把应用要传的所有媒体流的最大编码码率加起来。比如视频最大码率2000kbps,音频128kbps,字幕10kbps,基础总和就是2138kbps。
- 第二步:加上传输协议开销。RTP+UDP+IP的包头大概40字节/包,按媒体流的包频率算:比如视频30帧/秒,每帧一个包,每秒30个包,额外开销就是30×40×8=9.6kbps;音频20ms一帧,每秒50个包,额外开销是50×40×8=16kbps。把这些加到基础总和里,现在就是2138+9.6+16=2163.6kbps。
- 第三步:可选加冗余。如果要应对网络波动或者额外控制信令,在总和基础上多留5%-10%的余量,比如直接设成2200kbps。
- 最后注意单位:SDP里AS的单位是千比特每秒(kbps),别搞错换算。
内容的提问来源于stack exchange,提问作者lan muming
相关产品推荐
相关产品推荐

