当前位置: 首页 > news >正文

江苏省建设招标网站首页推广软文发布平台

江苏省建设招标网站首页,推广软文发布平台,百度做广告多少钱一天,设计微信小程序文章目录 前言一、AAC音频中的ADTS二、解析ADTS信息1.标准文档中介绍2.解析3.采样率索引和值4.下载AAC标准文档 前言 调试嵌入式设备中播放aac音频的过程中,了解了aac音频格式,记录在此,防止遗忘。 一、AAC音频中的ADTS ADTS(Audi…

文章目录

  • 前言
  • 一、AAC音频中的ADTS
  • 二、解析ADTS信息
    • 1.标准文档中介绍
    • 2.解析
    • 3.采样率索引和值
    • 4.下载AAC标准文档


前言

调试嵌入式设备中播放aac音频的过程中,了解了aac音频格式,记录在此,防止遗忘。


一、AAC音频中的ADTS

ADTS(Audio Data Transport Stream)是AAC(Advanced Audio Coding)音频编码格式的一种常见的封装格式。它用于将AAC音频数据以分帧的方式进行包装和传输。
ADTS封装格式将AAC音频数据按照一定格式进行组织,包括音频帧头信息和音频数据。每个ADTS帧由7个字节的帧头和音频数据组成。
帧头包含了音频帧的一些重要信息,如采样率、声道数、位率、编码类型等。音频数据是经过AAC压缩的音频信号,包含了实际的音频内容。
ADTS封装格式具有一定的错误容忍性和同步性。即使在传输过程中发生了丢包或错误,接收端仍然可以根据帧头信息正确地解析音频数据。此外,ADTS还可以通过添加同步头信息来实现同步传输,确保音频数据在接收端正确播放。
使用ADTS封装格式的好处是它的普遍性和兼容性。它被广泛支持和应用于各种音频播放器、设备和转码器中,包括流媒体传输、音频文件存储等场景。
需要注意的是,ADTS只是AAC的一种封装格式,而AAC编码格式还可以使用其他封装格式,如ADIF、LOAS等。根据具体的需求和使用环境,可以选择适合的AAC封装格式进行音频存储和传输。 【以上信息来源于ChatGPT】

二、解析ADTS信息

1.标准文档中介绍

在这里插入图片描述

ADTS 是一种用于传输 AAC 音频的文件格式,头部包含了一些关键信息。下面是各个字段的意义及其作用:

  • syncword(12 位):同步字,用于标识 ADTS 头部的开始,固定为 0xFFF。
  • ID(1 位):表示 MPEG 标准的版本,0 表示 MPEG-4,1 表示 MPEG-2。
  • layer(2 位):表示编码层次,一般设置为 0。
  • protection_absent(1 位):表示帧是否包含错误检测字,0 表示包含,1 表示不包含。
  • profile(2 位):表示 AAC 的编码配置文件。
  • sampling_frequency_index(4 位):表示采样频率的索引值。
  • private_bit(1 位):暂时不使用,一般设置为 0。
  • channel_configuration(3 位):表示音频通道的配置。
  • original_copy(1 位):表示原始数据复制标志,0 表示副本,1 表示原始数据。
  • home(1 位):暂时不使用,一般设置为 0。
  • copyright_identification_bit(1 位):版权标志位。
  • copyright_identification_start(1 位):表示此帧是否为版权开始。
  • acc_frame_length(13 位):表示 ADTS 帧的长度,包括头部和音频数据。
  • adts_buffer_fullness(11 位):表示音频缓冲区的填充量。
  • number_of_raw_data_blocks_in_frame(2 位):表示 ADTS 帧中的原始数据块数。

2.解析

typedef struct
{unsigned syncword : 12;unsigned ID : 1;unsigned layer : 2;unsigned protection_absent : 1;unsigned profile : 2;unsigned sampling_frequency_index : 4;unsigned private_bit : 1;unsigned channel_configuration : 3;unsigned original_copy : 1;unsigned home : 1;//variableunsigned copyright_identification_bit : 1;unsigned copyright_identification_start : 1;unsigned acc_frame_length : 13;unsigned adts_buffer_fullness : 11;unsigned number_of_raw_data_blocks_in_frame : 2;
} aac_adts_fixed_header_t;int get_aac_header_from_adts(char *buf, int len, aac_adts_fixed_header_t *header)
{// 使用位操作解析 ADTS 固定头部header->syncword = ((buf[0] & 0x0F) << 8) | buf[1];header->ID = (buf[1] >> 3) & 0x01;header->layer = (buf[1] >> 1) & 0x03;header->protection_absent = buf[1] & 0x01;header->profile = (buf[2] >> 6) & 0x03;header->sampling_frequency_index = (buf[2] >> 2) & 0x0F;header->private_bit = (buf[2] >> 1) & 0x01;header->channel_configuration = ((buf[2] & 0x01) << 2) | (buf[3] >> 6);header->original_copy = (buf[3] >> 5) & 0x01;header->home = (buf[3] >> 4) & 0x01;header->copyright_identification_bit = (buf[3] >> 3) & 0x01;header->copyright_identification_start = (buf[3] >> 2) & 0x01;header->acc_frame_length = ((buf[3] & 0x03) << 11) | (buf[4] << 3) | (buf[5] >> 5);header->adts_buffer_fullness = ((buf[5] & 0x1F) << 6) | (buf[6] >> 2);header->number_of_raw_data_blocks_in_frame = buf[6] & 0x03;return 0;
}

上述代码通过位操作将adts头部信息全部取出来,其实常用的也就采样率和帧长度,因为aac音频是允许可变码率的,所以每一帧都有可能长度不一样。

3.采样率索引和值

在这里插入图片描述

解析adts信息里的sampling_frequency_index索引,需要找到对应实际的采样率值,以方便设置给解码器。

4.下载AAC标准文档

AAC标准文档下载链接


http://www.yayakq.cn/news/188869/

相关文章:

  • 网站语言编程做搜狗网站快速排名软
  • 品牌网站建设十小蝌蚪电子商务网站开发人员要求
  • 佛山模板建站定制网站玛迪网站建设
  • 高端装修公司营销方案seo服务方法
  • 网站哪家做得好百度智能创作
  • 如何对新开网站做收录asp.net网站开发视频
  • 石岩企业网站建设义乌外发加工网是正规的吗
  • 宁乡县住房和城乡建设局网站网站自然优化自学
  • 怎么在网站做支付端口对接网页传奇游戏排行榜2014前十名
  • 企业网站建设网站模板wordpress 20theme
  • 常州云之家网站建设网络公司怎么样乐清网约车事件
  • 德清县新巿镇城市建设网站开官网
  • 好的网站2020网站内部链接如何进行优化建设
  • 高端大气网站建设网站建设的项目计划
  • 建设公司网站意义网站权重多少4
  • 青海省公路建设总公司网站韩国食品网站设计欣赏
  • 海西网站建设梧州红豆网梧州论坛
  • 网站备案完成网页微信二维码怎么扫
  • 临沂 网站建设做网站开封
  • 网站模板内容怎么改做网站 php python
  • 企业网络营销网站设计东莞企业制作网站
  • 从网络安全角度考量请写出建设一个大型电影网站规划方案网站一般都是用什么软件做的
  • 网站建设培训速成深圳公租房官网
  • 个人网站如何搭建龙岩好工作人才网最新招聘信息
  • 旅游网站开发设计文档标志设计理念
  • 电商网站如何做精细化运营医疗器械注册证查询
  • 国内 设计网站的公司网站Wordpress静态文件服务器
  • 用帝国做网站好做吗网站做任务挣钱
  • 济阳网站建设哪家好大连网站建设主页
  • 旅游网站开发内容网站建设所需资料