Rtmp中audio包介绍

本文详细介绍了RTMP协议中音频包的格式与解析方法。重点讲述了AAC音频数据包的结构,包括其标识符、采样频率、位深度及声道设置等关键参数。此外还解析了AAC数据包类型的区分,以及如何通过特定字段获取音频的具体配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处

Rtmp中audio包介绍

Message type id: 8

第一个audio data包:AAC sequence header

185948_TIuj_2326611.png

第二个audio data包:AAC raw

190031_lABw_2326611.png

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”中描述

190618_Q7Jh_2326611.png

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

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

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

190640_7QcQ_2326611.png

调用函数GASpecificConfig()

191244_WdWc_2326611.png

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

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

*extensionFlag: 1bit,值为0,没有扩展
191632_tEET_2326611.png

191640_m6b4_2326611.png

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

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

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

转载于:https://my.oschina.net/u/2326611/blog/854488

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值