SDP文件中 音视频config描述符的解析

SDP文件节选:
m=video 0 RTP/AVP 96
a=rtpmap:96 MP4V-ES/90000
a=control:trackID=0
a=mpeg4-esid:1
a=fmtp:96 profile-level-id=1; config=000001B0F4000001B50900000100000001200086C400670C5A1120518F;
m=audio 0 RTP/AVP 97
a=rtpmap:97 mpeg4-generic/44100/2
a=control:trackID=1
a=mpeg4-esid:3
a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1210; SizeLength=13; IndexLength=3; IndexDeltaLength=3;Profile=1;
 
 
音频:
audioObjectType:5
samplingFrequencyIndex:4
channelConfiguration:4 
reserve:3
 
代码:
UINT8 audioConfig[2] = {0}; 
UINT8 const audioObjectType = profile + 1; 
audioConfig[0] = (audioObjectType<<3) | (samplingFrequencyIndex>>1); 
audioConfig[1] = (samplingFrequencyIndex<<7) | (channelConfiguration<<3); 
printf("%02x%02x", audioConfig[0], audioConfig[1]);
 
对本例来说:
audioObjectType = profile(1) + 1 = 0x02;
samplingFrequencyIndex = 0x04(44100)
channelConfiguration = 0x02(立体声)
故:
0 1 2 3|4 5 6 7|8 9 a b|c d e f
0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0
 
config= 1210,与文件中描述相符。
 
sampling_frequency_index 
Table 35 – Sampling frequency dependent on sampling_frequency_index
sampling_frequency_index  sampling frequeny [Hz] 
0x0                       96000 
0x1                       88200 
0x2                       64000 
0x3                       48000 
0x4                       44100 
0x5                       32000 
0x6                       24000 
0x7                       22050 
0x8                       16000 
0x9                       12000 
0xa                       11025 
0xb                       8000 
0xc                       reserved 
0xd                       reserved 
0xe                       reserved 
0xf                       reserved 

 
 
 
 

你可能感兴趣的:(SDP文件中 音视频config描述符的解析)