wordpress做资源分享站,网站建设维护资质,公司公众号怎么制作,国外案例网站音视频入门基础#xff1a;AAC专题系列文章#xff1a;
音视频入门基础#xff1a;AAC专题#xff08;1#xff09;——AAC官方文档下载
音视频入门基础#xff1a;AAC专题#xff08;2#xff09;——使用FFmpeg命令生成AAC裸流文件
音视频入门基础#xff1a;AAC…
音视频入门基础AAC专题系列文章
音视频入门基础AAC专题1——AAC官方文档下载
音视频入门基础AAC专题2——使用FFmpeg命令生成AAC裸流文件
音视频入门基础AAC专题3——AAC的ADTS格式简介
音视频入门基础AAC专题4——ADTS格式的AAC裸流实例分析
音视频入门基础AAC专题5——FFmpeg源码中判断某文件是否为AAC裸流文件的实现
音视频入门基础AAC专题6——FFmpeg源码中解码ADTS格式的AAC的Header的实现
音视频入门基础AAC专题7——FFmpeg源码中计算AAC裸流每个packet的size值的实现
音视频入门基础AAC专题8——FFmpeg源码中计算AAC裸流AVStream的time_base的实现
音视频入门基础AAC专题9——FFmpeg源码中计算AAC裸流每个packet的duration和duration_time的实现
音视频入门基础AAC专题10——FFmpeg源码中计算AAC裸流每个packet的pts、dts、pts_time、dts_time的实现
音视频入门基础AAC专题11——AudioSpecificConfig简介
音视频入门基础AAC专题12——FFmpeg源码中解码AudioSpecificConfig的实现 一、引言
MPEG-4包括一个以统一方式处理不同音频格式组的系统。每种格式都用一个唯一的音频对象类型Audio Object Type 简称AOT来表示。所有Audio Object Type共享的通用格式全局header称为音频特定配置Audio Specific Config。简单来讲Audio Specific Config是MPEG-4音频的全局header该header包含了音频编码器的重要信息比如编码器类别音频频率音频通道数等。比如如果FLV文件中的音频为AAC格式那正常情况下它必定存在一个Audio Tag包含Audio Specific Config。 二、AudioSpecificConfig
《ISO14496-3-2009.pdf》第52页到第55页定义了AudioSpecificConfig其包含的属性如下 其中比较重要的是audioObjectType、samplingFrequencyIndex和channelConfiguration属性。 一audioObjectType属性
audioObjectType音频对象类型可以理解为音频压缩编码格式。该属性定义在《ISO14496-3-2009.pdf》第35页其取值如下 即
0: Null 1: AAC Main 2: AAC LC (Low Complexity) 3: AAC SSR (Scalable Sample Rate) 4: AAC LTP (Long Term Prediction) 5: SBR (Spectral Band Replication) 6: AAC Scalable 7: TwinVQ 8: CELP (Code Excited Linear Prediction) 9: HXVC (Harmonic Vector eXcitation Coding) 10: Reserved 11: Reserved 12: TTSI (Text-To-Speech Interface) 13: Main Synthesis 14: Wavetable Synthesis 15: General MIDI 16: Algorithmic Synthesis and Audio Effects 17: ER (Error Resilient) AAC LC 18: Reserved 19: ER AAC LTP 20: ER AAC Scalable 21: ER TwinVQ 22: ER BSAC (Bit-Sliced Arithmetic Coding) 23: ER AAC LD (Low Delay) 24: ER CELP 25: ER HVXC 26: ER HILN (Harmonic and Individual Lines plus Noise) 27: ER Parametric 28: SSC (SinuSoidal Coding) 29: PS (Parametric Stereo) 30: MPEG Surround 31: (Escape value) 32: Layer-1 33: Layer-2 34: Layer-3 35: DST (Direct Stream Transfer) 36: ALS (Audio Lossless) 37: SLS (Scalable LosslesS) 38: SLS non-core 39: ER AAC ELD (Enhanced Low Delay) 40: SMR (Symbolic Music Representation) Simple 41: SMR Main 42: USAC (Unified Speech and Audio Coding) (no SBR) 43: SAOC (Spatial Audio Object Coding) 44: LD MPEG Surround 45: USAC 根据《ISO14496-3-2009.pdf》第55页audioObjectType占5位或11位。如果其前5位的值为0到30audioObjectType总共只占5位8位等于1个字节如果前5位值为31即0b11111audioObjectType总共占11位其前5位后面还需要加上6位32 audioObjectTypeExt来进行扩展audioObjectTypeExt的值为audioObjectType减去32。比如音频对象类型为DST (Direct Stream Transfer)根据上面的表格audioObjectType的值为3535超过30所以audioObjectType的前5位应为0b11111后6位应为35 - 32 3也就是0b000011所以audioObjectType的实际二进制存贮最终为0b11111000011 二samplingFrequencyIndex属性
samplingFrequencyIndex占4位。根据《ISO14496-3-2009.pdf》第59页samplingFrequencyIndex表示音频的采样频率 根据《ISO14496-3-2009.pdf》第52页和第59页如果samplingFrequencyIndex的值为150x0F在samplingFrequencyIndex属性后面还需增加24位3字节的samplingFrequency属性实际音频采样率直接由samplingFrequency的值表示 三channelConfiguration属性
channelConfiguration占4位。根据《ISO14496-3-2009.pdf》第60页。channel_configuration表示音频声道数。比如channel_configuration值为1表示是单声道center front speaker值为2表示是双声道left, right front speakers值为3三声道center, left, right front speakers值为4四声道center, left, right front speakers, rear surround speakers值为5五声道center, left, right front speakers, left surround, right surround rear speakers值为6 5.1声道center, left, right front speakers, left surround, right surround rear speakers, front low frequency effects speaker)值为77.1声道center, left, right center front speakers, left, right outside front speakers, left surround, right surround rear speakers, front low frequency effects speaker)值为8到15保留 四Bit depth
AudioSpecificConfig中没有Bit depth又叫位深度、位元深度、采样深度、采样位数、采样格式这是因为对于有损压缩编解码器如MP3和AACBit depth是在编码期间计算的并且可以因采样而异Bit depth只对PCM数字信号有意义。AudioSpecificConfig中没有Bit depth这个跟AAC裸流的Header中没有Bit depth的原因是一样的。具体可以参考《音视频入门基础AAC专题3——AAC的ADTS格式简介》。 五其它属性
根据audioObjectType值的不同AudioSpecificConfig中可能还会存在其它属性。比如audioObjectType的值为1、2、3、4、6、7、17、19、20、21、22、23时AudioSpecificConfig中还会存在GASpecificConfig。这里就不一一阐述了 三、AudioSpecificConfig实例分析
按照《音视频入门基础FLV专题4——使用flvAnalyser工具分析FLV文件》中介绍的方法通过flvAnalyser工具打开一个音频压缩编码格式为AAC的FLV文件分析其某个包含AudioSpecificConfig的Audio Tag。下面红框中所示的就是AudioSpecificConfig可以看到AudioSpecificConfig为0x12 0x10也就是二进制的0b0001001000010000 audioObjectType0b0001001000010000的前5位为0b00010也就是十进制的2。所以音频压缩编码格式为AAC LC (Low Complexity) samplingFrequencyIndex0b0100也就是十进制的4。所以音频采样频率为44100Hz channelConfiguration0b0010也就是十进制的2。所以是双声道 四、参考文章
《维基百科——MPEG-4 Audio》