Rtmp aac抓包分析

Message type id: 8

第一个audio data包:AAC sequence header

Rtmp aac抓包分析_第1张图片

第二个audio data包:AAC raw

Rtmp aac抓包分析_第2张图片

AF表示的含义:

1)第一个字节af,a就是10代表的意思是AAC,
Format of SoundData. The following values are defined:
0 = Linear PCM, platform endian
1 = ADPCM
2 = MP3
3 = Linear PCM, little endian
4 = Nellymoser 16 kHz mono
5 = Nellymoser 8 kHz mono
6 = Nellymoser
7 = G.711 A-law logarithmic PCM
8 = G.711 mu-law logarithmic PCM
9 = reserved
10 = AAC
11 = Speex
14 = MP3 8 kHz
15 = Device-specific sound
Formats 7, 8, 14, and 15 are reserved.
AAC is supported in Flash Player 9,0,115,0 and higher.
Speex is supported in Flash Player 10 and higher.
2)第一个字节中的后四位f代表如下
前2个bit的含义采样频率,这里是二进制11,代表44kHZ
Sampling rate. The following values are defined:
0 = 5.5 kHz
1 = 11 kHz
2 = 22 kHz
3 = 44 kHz
第3个bit,代表 音频用16位的
Size of each audio sample. This parameter only pertains to
uncompressed formats. Compressed formats always decode
to 16 bits internally.
0 = 8-bit samples
1 = 16-bit samples
第4个bit代表声道
Mono or stereo sound
0 = Mono sound
1 = Stereo sound

3)第2个字节
AACPacketType,这个字段来表示AACAUDIODATA的类型:0 = AAC sequence header,1 = AAC raw。第一个音频包用0,后面的都用1

当 AAC sequence header为0的码流结构参见“ISO-14496-3 Audio”中描述

Rtmp aac抓包分析_第3张图片

*调用 GetAudioObjectType(),从码流中读取5bits,得到audioObjectType值,表示编码结构类型,AAC-LC为2

*samplingFrequenceIndex:4bits,表示音频采样率索引值,44100对于值为4

*channelConfiguration:4bits,表示音频输出声道,2为双声道

Rtmp aac抓包分析_第4张图片

调用函数GASpecificConfig()

Rtmp aac抓包分析_第5张图片

*frameLengthFlag:1 bit,表示IMDCT窗口长度,值为0

*dependsOnCoreCoder: 1bit,表明是否依赖corecoder,值为0

*extensionFlag: 1bit,值为0,没有扩展
Rtmp aac抓包分析_第6张图片

Rtmp aac抓包分析_第7张图片

syncExtensionType: 11bits,同步字,值固定为0x2b7

extensionAudioType: 5bits,扩展的audio编码结构类型,值为5,表示SBR:Spectral Band Replication

sbrPresentFlag:sbr data是否出现的标志,1bit,值为0.

你可能感兴趣的:(rtmp)