sdp中aac config字段计算

在rtsp和sip协议中,生成sdp信息时经常要计算aac config字段。本文主要讲述aac config字段的计算方法。

aac每帧包含1024sample,每帧的时间间隔为1024/samplerate。


static unsigned const samplingFrequencyTable[16] = {
  96000, 88200, 64000, 48000,
  44100, 32000, 24000, 22050,
  16000, 12000, 11025, 8000,
  7350, 0, 0, 0
};


unsigned char audioSpecificConfig[2];
  u_int8_t const audioObjectType = profile + 1;
  audioSpecificConfig[0] = (audioObjectType<<3) | (samplingFrequencyIndex>>1);
  audioSpecificConfig[1] = (samplingFrequencyIndex<<7) | (channelConfiguration<<3);
  sprintf(fConfigStr, "%02X%02x", audioSpecificConfig[0], audioSpecificConfig[1]);

下面是一些常用的aac config字段:


low profile
8k     单通道 1588  双声道 1590
16k    单通道 1408  双声道 1410
32k    单通道 1288  双通道 1290  
24K    单通道 1308  双声道 1310
22.05K 单声道 1388  双声道 1390
44.1k  单声道 1208  双声道 1210


main profile
16k采样率 单通道为 0C08



latm config字段生成:
a=fmtp:96 profile-level-id=1; cpresent=0; config=400027103FC0
config 400027103FC0 前面的4000和后面的3FC0不要变,中间的2710是由前面讲述的aac config*2,

2710对应aac config中的1388,22050Hz,单通道

你可能感兴趣的:(config,aac,SDP)