77百科网
当前位置: 首页 生活百科

aac格式怎么播放音频(AAC音频格式详解和实战解析)

时间:2023-06-01 作者: 小编 阅读量: 7 栏目名: 生活百科

aac格式怎么播放音频一.基本概念AAC:即MPEG-2AdvancedAudioCoding,分为流格式和文件格式。文件格式主要用于文件存储和文件播放,流格式主要用于流媒体在线播放。流式AAC可以简单理解如下图:固定头如下:syncword同步字Thebitstring‘111111111111’,说明一个ADTS帧的开始。Raw数据块:一个帧包含1024个采样Duration算法:一个AAC原始帧包含一段时间内1024个采样及相关数据。时间t=总帧数x一个AAC音频帧的播放时间。

aac格式怎么播放音频?一.基本概念AAC:即MPEG-2 Advanced Audio Coding,分为流格式和文件格式文件格式主要用于文件存储和文件播放,流格式主要用于流媒体在线播放,今天小编就来说说关于aac格式怎么播放音频?下面更多详细答案一起来看看吧!

aac格式怎么播放音频

一.基本概念

AAC:即MPEG-2 Advanced Audio Coding,分为流格式和文件格式。文件格式主要用于文件存储和文件播放,流格式主要用于流媒体在线播放。

文件格式:adif格式

adif格式

该格式特点:只有开头有一个头部信息,后面都是AAC裸数据。适应磁盘存储和文件播放

流格式:adts_frame格式

adts_frame格式

该格式特点:每一帧数据=固定头(fixed_header)可变头(variable_header) 帧数据(raw_data),适合流媒体在线播放。

流式AAC可以简单理解如下图:

固定头如下:

syncword 同步字The bit string ‘1111 1111 1111’,说明一个ADTS帧的开始。

ID MPEG 标示符, 设置为1.

layer Indicates which layer is used. Set to ‘00’

protection_absent 表示是否误码校验

profile 表示使用哪个级别的AAC,如01 Low Complexity(LC)--- AACLC

sampling_frequency_index 表示使用的采样率下标

channel_configuration 表示声道数

frame_length 一个ADTS帧的长度包括ADTS头和raw data block.

可变头如下:

adts_buffer_fullness 0x7FF 说明是码率可变的码流

number_of_raw_data_blocks_in_frame

表示ADTS帧中有number_of_raw_data_blocks_in_frame1个AAC原始帧.

所以说number_of_raw_data_blocks_in_frame == 0 表示说ADTS帧中有一个AAC数据块并不是说没有。

其他字段为定义,可以忽略,。

Raw数据块:

一个帧包含1024个采样

Duration算法:

一个AAC原始帧包含一段时间内1024个采样及相关数据。

一个AAC音频帧的播放时间=一个AAC帧对应的采样样本的个数/采样率。总时间t=总帧数x一个AAC音频帧的播放时间。

时间t=总帧数x一个AAC音频帧的播放时间。

二. 实战演练

1)使用ffmpeg抽取一个mp4文件中的aac音频如下:

ffmpeg.exe -i CCTV-2-dszg-1.mp4 -vn -y -acodec copy audio.aac

2)利用工具分析该aac音频固定头和可变头字段如下:

adts头解析

3)使用程序代码解析

#include"stdafx.h"#include<windows.h>typedefstruct_AdtsHeader{unsignedintnSyncWord;unsignedintnId;unsignedintnLayer;unsignedintnProtectionAbsent;unsignedintnProfile;unsignedintnSfIndex;unsignedintnPrivateBit;unsignedintnChannelConfiguration;unsignedintnOriginal;unsignedintnHome;unsignedintnCopyrightIdentificationBit;unsignedintnCopyrigthIdentificationStart;unsignedintnAacFrameLength;unsignedintnAdtsBufferFullness;unsignedintnNoRawDataBlocksInFrame;}AdtsHeader;int_tmain(intargc,_TCHAR*argv[]){FILE*fd=fopen("D:\\ffmpeg-4.1-tool\\bin\\audio.aac","rb ");if(fd==NULL){printf("fopenisfailed,err%d\n",GetLastError());}charadts[7];intadtslen=7;intret=fread(adts,adtslen,1,fd);if(ret!=1){printf("freadisfailed,err%d\n",GetLastError());}char*p=adts;GetAdtsSpecificConfig(p,&tAdtsHeader);printf("AACkeyparam:\n");printf("id:%d\n",tAdtsHeader.nId);printf("layer:%d\n",tAdtsHeader.nLayer);printf("ProtectionAbsent:%d\n",tAdtsHeader.nProtectionAbsent);printf("Profile:%d\n",tAdtsHeader.nProfile);printf("SfIndex:%d\n",tAdtsHeader.nSfIndex);printf("PrivateBit:%d\n",tAdtsHeader.nPrivateBit);printf("ChannelConfiguration:%d\n",tAdtsHeader.nChannelConfiguration);printf("Original:%d\n",tAdtsHeader.nOriginal);printf("nHome:%d\n",tAdtsHeader.nHome);printf("nCopyrigthIdentificationStart:%d\n",tAdtsHeader.nCopyrigthIdentificationStart);printf("nAacFrameLength:%d\n",tAdtsHeader.nAacFrameLength);printf("nAdtsBufferFullness:%d\n",tAdtsHeader.nAdtsBufferFullness);printf("NoRawDataBlocksInFrame:%d\n",tAdtsHeader.nNoRawDataBlocksInFrame);getchar();return0;}

由此可见:代码读出来的参数和工具分析参数一致。

更多更详细资源请关注公众号:AV_Chat

    推荐阅读
  • 18层容积率一般多少(一般住宅小区的容积率多少合适)

    18层高层住宅容积率一般为1.8-2.5;,现在小编就来说说关于18层容积率一般多少?18层容积率一般多少18层高层住宅容积率一般为1.8-2.5;容积率是指一个小区的地上总建筑面积与净用地面积的比率。又称建筑面积毛密度。对于开发商来说,容积率决定地价成本在房屋中占的比例,而对于住户来说,容积率直接涉及到居住的舒适度。一个良好的居住小区,高层住宅容积率应不超过5,多层住宅应不超过3,绿地率应不低于30%。

  • 直流电动机无刷电机原理(有刷直流电机的工作原理及控制电路)

    R1用于保护单片机免遭电流突增的破坏,R2用于确保在输入引脚处于三态时,Q1关断。直流电机的双向控制需要一个称为H桥的电路。导通Q4,保持Q3关断将使电机的相反端接地。刹车模式用于快速停止直流电机。同时导通同一个半桥上的MOSFET将导致电源短路,最终导致损坏MOSFET,致使电路无法工作。微型有刷直流电机速度控制直流电机的速度与施加给电机的电压成正比。经验之谈是在4kHz至20kHz范围内,调制输入信号的频率。

  • 百合花如何留种球(百合花怎么保留种球)

    保留百合花的种球,需要在它花后把残花剪除,之后等到高温天气它叶子枯萎后,就可以将其挖出来置于微湿的沙土里面保存了,到了10月份左右就可以栽种,也可以置于冰箱的冷藏层中保存,这样可以等到来年春天栽种。

  • 比宋慧乔还漂亮的韩国女明星(韩国票选最美女星)

    韩国票选最美女星韩国KBS文化研究所实施的主观式问卷,韩国最美女星排名24位中有很多中国观众熟悉的女星,比如第二名到第四名的宋慧乔、李英爱、金喜善等,在亚洲都有一定的知名度,看来英雄所见雷同金泰熙虽然在中国知名度不是。

  • 不甜的板栗热量高吗(不甜的板栗热量高不高)

    接下来我们就一起去研究一下吧!不管是甜板栗还是不甜的板栗,都含有较高的热量,100g板栗中含有185大卡热量,1个栗子含有热量15大卡,需要散步10分钟才能消耗完。因此,板栗不宜过量食用,一方面不利于保持体重,另一方面对血糖有一定影响。

  • 什么季节吃藕最合适(秋天吃藕胜过吃肉)

    煮出来的莲藕排骨汤为什么会变黑?因为淀粉含量比较高,所以7孔藕口感比较软糯,适合煲汤或跟肉一起炖,比如排骨莲藕汤、猪脚炖莲藕、莲藕猪骨汤、粉藕桂花糕、等。不过关于藕的软糯和爽脆,还要根据季节来看,一般夏季的藕片清脆,秋冬的藕会更糯一些。有的人买藕的时候还是好好的,还没开始做藕就变黑了,还有的炖了一锅排骨莲藕汤,结果汤汁都是黑乎乎的。快给自己和家人炖个莲藕排骨汤吧,驱除冬日里的严寒。

  • 突然胸变小怎么回事(是疾病的信号吗)

    其中身材匀称的女性,胸部脂肪占整体的比例,一般在50%左右。因此,妊娠同样可引起乳房增大,这是因为在妊娠过程中乳腺和乳管会增生,以便为之后的哺乳做好准备。这是因为乳腺和子宫内膜一样,也会经历月经前增生期和月经后恢复期的变化以及月经周期的变化。则需要及时就医。

  • 寿星公是什么意思(寿星公的解释)

    我们一起去了解并探讨一下这个问题吧!寿星公是什么意思寿星公意思是指被祝寿的人;对长寿老人的尊重之词;也可表示中国神话中的长寿之神。寿星公本为恒星名,为福、禄、寿三星之一,又称南极老人星。寿星一直被人们视作吉祥的象征,寿星为白须老翁,持杖,额部隆起。长衬托以鹿、鹤、仙桃等,象征长寿。

  • 凉拌折耳根配什么菜好吃(最常吃的家常菜)

    ,我来为大家科普一下关于凉拌折耳根配什么菜好吃?下面希望有你要的答案,我们一起来看看吧!凉拌折耳根配什么菜好吃折耳根洗净切碎,小葱和蒜切末备用菜和调料全部放到一起油热八成,浇到调料上,开拌!

  • 男生的肾的作用(肾与男人生理功能)

    肾与男人生理功能肾具有藏精化气、充天癸、主水液、主前阴二窍、精液排泄等功能,在男性生理活动中起着他脏不可替代的作用,中医学通过补肾可以调整男性生理病理功能,拥有深厚的理论根基学术支持,这正是中医学的神秘之处1、藏精化。