音视频入门基础:AAC专题(4)——ADTS格式的AAC裸流实例分析

news/2024/9/21 6:43:08/

=================================================================

音视频入门基础: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的实现

=================================================================

一、ADTS格式的AAC裸流实例分析

在《音视频入门基础:AAC专题(3)——AAC的ADTS格式简介》中对AAC的ADTS格式进行了简介。下面用一个具体的例子来对ADTS格式的AAC裸流进行分析。

通过《音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件》生成的AAC裸流文件就是ADTS格式的。用notepad++打开该文件,下图红框中的数据为文件头(header),可以看到Header为:0xFF F1 50 80 03 9F FC,也就是二进制的0b11111111 11110001 01010000 10000000 00000011 10011111 11111100(注:这里是因为先知道了Header里面没有CRC校验,所以才确定它为7个字节):

(一)adts_fixed_header

syncword:占12位,每个位都必须被设置为1,也就是0b111111111111,用于标识ADTS帧的起始位置:

ID:占1位,值为0表示音频数据是MPEG-4 AAC:

layer:占2位,总被设置为00:

protection_absent:占1位,值为1表示CRC校验不存在:

profile_ObjectType:占2位。值为1表示规格是AAC LC。该版本是AAC标准的基本部分,其中“LC”代表“Low Complexity”,意味着该编码器使用较少的计算资源来实现高质量的音频压缩:

samplingFrequencyIndex:占4位。值为0b0100,也就是十进制的4表示音频采样频率为44100Hz:

private_bit:占1位,没用:

channel_configuration:占3位。值为0b010,也就是十进制的2表示是双声道:

original_copy:占1位。值为0表示编码的比特流没有版权:

home:占1位。值为0表示比特流是一个拷贝:

(二)adts_variable_header

copyright_identification_bit:占1位。为72位版权标识字段中的一位:

copyright_identification_start:占1位。值为0表示没有版权标识传输:

aac_frame_length:占13位。值为0b11100,也就是十进制的28表示整个ADTS音频帧的长度为28字节:

adts_buffer_fullness:占11位。值为0b11111111111,也就是0x7FF,表示比特流是可变速率比特流:

number_of_raw_data_blocks_in_frame:占2位。值为0表示该ADTS音频帧中只有一个AAC原始数据块:

二、使用工具分析AAC裸流文件

实际开发中我们一般都是使用工具去分析AAC的Header。比如AAC Audio ES Viewer(在Download - Jongbel Media Solutions 可以下载):

用Elecard Stream Analyzer工具也可以分析AAC的Header:


http://www.ppmy.cn/news/1528288.html

相关文章

安克创新25届校招CATA北森测评:笔试攻略、真题题库、高分技巧

安克创新自适应能力CATA测评是该公司用于评估候选人认知能力的计算机自适应测评系统。该测评系统由北森题库提供支持,是国内唯一被国际计算机自适应测验协会(IACAT)收录的产品。测评主要评估以下几个维度: 言语能力:测试理解言语信息并基于这…

Mac 上,终端如何开启 proxy

前提 确保你的浏览器可以访问 google,就是得先有这个能力 步骤 查看网络的 http/https 还有 socks5 的 port配置 .zshrc 查看 port 点击 wifi 设置 以我的为例,我的 http/https 都是 7890, socks5 是 7891 查看代理的port 以我的软件…

开发易忽视的问题:InnoDB 行锁设计与实现

开发易忽视的问题:InnoDB 行锁设计与实现 存储模型和锁机制 存储结构 数据页: InnoDB 将表的数据存储在数据页中,每个页默认大小为 16KB。数据页中存储多个行记录,行记录按照主键顺序存放。 行格式: InnoDB 支持多种…

[SDX35+WCN6856]SDX35 + WCN6856 WiFi 起来之后,使用终端连接会导致系统重启

SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…

28V_1MHZ电子烟,无线鼠标,医疗器械等专用恒频升压转换器超小体积封装

概述: PC7128是一款高效、准恒频升压转换器,具有输入/输出隔离功能开关、涌流限制、内部软启动和补偿。它可以从Li电池的典型3.6V轨道输入端输出高达28V的电压。1.0 MHz的开关频率适用于小型外部组件,为各种负载电流提供了一种紧凑的解决方案…

基于SpringBoot+Vue+MySQL的画师约稿平台系统

系统展示 用户界面 画师界面 管理员界面 系统背景 基于SpringBootVueMySQL的画师约稿平台系统的背景,主要源于数字艺术行业的快速发展与画师、客户双方需求的日益增长。在传统的约稿方式中,往往存在沟通效率低下、交易过程不透明等问题,这限制…

php语言基本语法

HP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合于Web开发。 它能够嵌入到HTML中&#xff0c;执行动态网页内容。 PHP的一些基本语法元素&#xff1a; 1. 基本结构 PHP代码通常嵌入到HTML中&#xff0c;以<…

领域驱动DDD三种架构-分层架构、洋葱架构、六边形架构

博主介绍&#xff1a; 大家好&#xff0c;我是Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;以及golang、.Net、…