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

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

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

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

    推荐阅读
  • 大米发糕怎么做好吃不粘锅(大米发糕正确做法)

    还有一个月不到就过年了,春节是中国重要的传统节日,人们都格外的重视。发糕在中国历史悠久,是一款很经典的传统中式糕点,相比西式糕点而言,做法更加简单。再加点酒酿和桂花,味道更是独特,别具一番风味。第二步:将浸泡好的大米中水倒掉,把大米倒入破壁机中,加入50g酒酿,加入半碗水,用料理机打成细腻的米糊即可。酒酿可以根据个人喜欢添加,我喜欢加点酒酿,酒酿可以使米糕有着淡淡的酒香味,吃起来更加香甜美味。

  • 涮羊肉火锅的配菜火锅配菜有哪些(有哪些涮羊肉火锅的配菜火锅配菜)

    涮羊肉火锅的配菜火锅配菜有哪些涮羊肉的腥味较重,所以在吃涮羊肉的时候一般会加入辣椒,青椒等。蔬菜类会有新鲜的生菜、菠菜、白萝卜、胡萝卜、油麦菜、大白菜、豆芽、土豆片、西红柿、莲藕、冬瓜、笋、韭菜、香菜等。肉类有墨鱼丸、肉丸、虾肉丸、火腿肠、蟹肉棒、亲亲肠、午餐肉、波波肠、肥牛、毛肚等。粉面类,诸如面筋、红薯粉、火锅面、粉丝、粉条、腐竹等。拍黄瓜、小葱拌豆腐、海带、黑木耳等。

  • 2022天津职业技能培训定向培训补贴规定

    定向培训补贴每人每年可享受一次。培训机构与区人社局签订“承接政府补贴职业培训项目协议书”。区人社局在5个工作日内对开班申请进行审核,审核通过的,培训机构按照教学计划开展培训,培训结束后提出班期补贴申请。

  • 最难怀孕的备孕方法(难孕体质都有什么样的特征)

    女性子宫环境影响自己怀孕的概率,尤其是输卵管是否通畅,很多的女性因为输卵管问题导致不孕,所以在备孕前做好体检,健康备孕很重要。早孕现象都是作为准妈妈的参考,也不能100%再没怀孕,如果自己不确定及时到医院进行检查,愿所有女性孕期身体健康,生出健康宝宝。

  • 补办驾驶证需要多长时间能下来 补办驾驶证需要多长时间能下来异地

    申请时应当填写《机动车驾驶证申请表》,并提交以下证明、凭证:(一)机动车驾驶人的身份证明;(二)机动车驾驶证遗失的书面声明。符合规定的,车辆管理所应当在三日内补发机动车驾驶证。第四十一条机动车驾驶人可以委托代理人办理机动车驾驶证的换证、补证业务。代理人申请办理机动车驾驶证业务时,应当提交代理人的身份证明和机动车驾驶人与代理人共同签字的《机动车驾驶证申请表》。

  • 有关古尔邦节的作文(关于古尔邦节作文范文)

    有关古尔邦节的作文每年5月春暖花开之时,我们新疆各地的民族团结教育蔚然成风。在同一片蓝天下,我们牵手同行在民族之花常开的美丽新疆。妈妈的同事中就有一位维吾尔族大妈——古丽,她的女儿帕力扎提也是我的好朋友,从幼儿园到现在,我们都是形影不离的好伙伴。我是一个活泼可爱,积极向上的汉族女孩,帕力扎提是一个自信和执着的维吾尔族小姑娘。我和帕力扎提无论在学习中还是在生活上都互相帮助,互相关心。

  • 苏州工业园区失业保险技能提升补贴发放名单(持续更新)

    以下为2020年第一季度苏州工业园区失业保险支持参保职工提升职业技能补贴符合人员公示名单,请按需查阅。

  • 午组词(午组词有哪些)

    跟着小编一起来看一看吧!午,汉语一级字,读作wǔ,最早见于甲骨文,其本义是舂杵,引申指抵触,借作“五”而指纵横相交,又借作十二地支的第七位,还可以表示十二生肖中的“马”等。

  • word编辑公式大全(Word公式怎么编辑又快又好)

    很多文件论文都是在Word中编写定稿以后再打印成册或者去投稿。毫无疑问,在Word中编辑各种各样的文字与符号是一项现在社会中非常必要的技能,而这其中一项就是对公式的编辑。想要在Word中编辑出完美的公式,那MathType是一个非常有必要的工具。很多国际期刊对其中的公式要求就是要使用MathType来编辑,所以想要在Word中又快又好地编辑各种公式,MathType是你的一大利器!