首页 > 其他分享 >AAC ADTC

AAC ADTC

时间:2024-07-22 21:29:41浏览次数:5  
标签:ADTC AAC 音频 ADTS 格式 bit bits

AAC音频格式:
Advanced Audio Coding(高级音频解码)是一种由MPEG-4标准定义的有损音频压缩格式,由Fraunhofer发展,Dolby,Sony和AT&T是主要的贡献者。

AAC是一种高效的音频编码格式,设计用于提供比MP3更好的音频质量,同时使用更少的存储空间。它广泛应用于各种音频文件中,如音乐流媒体服务、广播、和许多便携设备的音频文件格式。

ADIF 和 ADTS

ADIF (Audio Data Interchange Format):
Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用于磁盘文件中。

ADTS (Audio Data Transport Stream):
ADTS的全称是Audio Data Transport Stream,是AAC音频的传输流格式。AAC音频格式在MPEG-2(ISO-13818-7 2003)中有定义。AAC后来又被采用到MPEG-4标准中。这种格式的特征是它有一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。

详细解释
ADIF: ADIF格式包含头信息,使得解码器可以在文件的开头解析音频数据。这种格式主要用于静态文件存储,如磁盘上的音频文件。ADIF头包含了全局信息,并且整个文件通常只有一个ADIF头。

ADTS: ADTS格式使得音频数据可以作为比特流传输,每一帧音频都有头信息。这种格式常用于流媒体传输,因为解码器可以在比特流的任何地方开始解码,而不需要从头开始。每个ADTS帧都包含同步信息和帧长度信息,使得解码器可以找到帧的开始和结束。

总结
简言之,ADTS可以在任意位置解码,也就是说每一帧都有头信息。ADIF只有一个统一的头,必须得到所有的数据后解码。

目前一般编码后的和抽取出的都属于ADTS格式的音频流。两者具体的组织结构如下:

ADIF头: 包含全局信息如音频配置、比特率、采样率等。
ADTS帧: 每帧包含同步字、帧长度、CRC校验(如果有的话)、以及实际的AAC编码音频数据。
这种组织结构使得AAC能够灵活地用于文件存储和流媒体传输,提供高质量的音频体验。

ADTS Header 详细分析

ADTS(Audio Data Transport Stream)的头文件主要包含两部分:固定头和可变头。每一帧的ADTS头文件都包含了音频的采样率、声道、帧长度等信息,这样解码器才能解析读取。

ADTS Header 的组成
ADTS头信息在一般情况下是7个字节,分为2部分:

adts_fixed_header(): 固定头部分,长度为28 bits。
adts_variable_header(): 可变头部分,长度为28 bits。
固定头 (adts_fixed_header)
固定头部分的数据在每一帧中都是相同的。它包含了如下信息:

syncword (12 bits): 同步字,固定为0xFFF,用于标识ADTS帧的开始。
ID (1 bit): MPEG版本标识,0表示MPEG-4,1表示MPEG-2。
layer (2 bits): 总是设置为00。
protection_absent (1 bit): 标识是否有CRC校验,0表示有CRC校验,1表示没有CRC校验。
profile (2 bits): 标识AAC的级别。
sampling_frequency_index (4 bits): 采样率索引,标识音频的采样率。
private_bit (1 bit): 私有位,用户自定义。
channel_configuration (3 bits): 声道配置。
original_copy (1 bit): 标识原始音频或副本。
home (1 bit): 标识音频是否在家使用。
可变头 (adts_variable_header)
可变头部分的数据在每一帧中可能不同。它包含了如下信息:

copyright_identification_bit (1 bit): 版权标识位。
copyright_identification_start (1 bit): 版权标识开始。
aac_frame_length (13 bits): ADTS帧长度,包括ADTS头和AAC原始数据。
adts_buffer_fullness (11 bits): ADTS缓冲区满度。
number_of_raw_data_blocks_in_frame (2 bits): 每帧中包含的AAC原始数据块的数量。
ADTS Header 的长度
ADTS Header的长度可能为7字节或9字节。protection_absent=0时,头文件长度为9字节,protection_absent=1时,头文件长度为7字节。

总结
固定头 (adts_fixed_header): 包含同步字、版本、保护标识、采样率、声道等信息,每帧相同。
可变头 (adts_variable_header): 包含帧长度、缓冲区满度、原始数据块数量等信息,每帧可能不同。
ADTS头文件的结构确保了音频数据流的同步和解码器能正确解析每一帧的音频数据。这种结构使得ADTS非常适用于流媒体传输和实时音频处理。

标签:ADTC,AAC,音频,ADTS,格式,bit,bits
From: https://www.cnblogs.com/mxh010211/p/18316956

相关文章

  • NVIDIA Omniverse Isaac Sim (1) - 开发环境
    Windows开发环境(只支持Win10)参考文档: Windows(binary)—ROS2Documentation:Humbledocumentation安装Chocolatey和其它PackageInstallingChocolatey::安装Python3.8.3,注意需要安装到这个目录: C:\Python38 chocoinstall-ypython--version3.8.3::......
  • legged gym(包含isaac gym)丝滑安装教程
    LeggedGym(包含IsaacGym)安装教程——Ubuntu22.04安装IsaacGym安装leggedgym2.1.安装pytorch和cuda:2.2.安装rsl_r2.3.安装legged_gym参考了官方包括网上一堆教程,结合自己遇到的坑,整理了一个比较顺畅的流程,基础环境(例如miniconda或者CUDA)配好的情况下按照本教程......
  • AAC
    AAC音频AAC(AdvancedAudioCoding),即高级音频编码,是一种专为声音数据设计的文件压缩格式,具有以下优点:提升压缩率:以更小的文件大小获得更高的音质;支持多声道:可提供最多48个全音域声道;更高解析度:最高支持96KHz的采样频率;提升解码效率:解码播放所占的资源更少。首先给......
  • VR-LLM-AAC
    VR-LLM-AAC方案测试测试一:汉字聚类hanzi_similar算法GithubKmeans算法hanzi_similar通过四角编码,汉字结构,偏旁部首,笔画数来判断两个汉字之间的相似度将权重调整为调高偏旁部首和汉字结构的权重根据任意两个汉字之间的相似度,通过Kmeans算法构建相似度矩阵,取得......
  • RTMP解析音频AAC
    我们知道AAC如果带ADTS头一般是FFF1或者FFF9,开头的,但是有些网络协议在传输AAC的时候是不带ADTS头的譬如:RTSP传输的媒体流中的AAC是被封装在RTP中的,此时的AAC是不带ADTS头的,而ADTS头里有音频参数信息;所以此时解析音频是依赖RTSP协议的SDP中的音频参数信息解码的;先介绍下AAC的AD......
  • 为何使用isaac gym做强化学习
    前言   本文仅对比Gazebo,Pybullet,IsaacGym三款仿真软件。详细对比可参考:Gazebo,Pybullet,IsaacGym用于强化学习训练对比-CSDN博客1仿真软件概述Gazebo:    Gazebo提供高保真的物理仿真,适合复杂的机器人模拟和实际应用中的验证。支持多种传感器和机器人模......
  • ffmpeg之视频(avc+aac)无损转mp4(批处理,拖放)
    很多能够无损转视频的工具都来自命令行的ffmpeg版本,本文将介绍如何简单的批处理方法(直接拖放到bat文件上)来实现无损转视频。工具/原料ffmpeg(默认的static版本)方法/步骤 1.桌面左下角开始菜单,点Windows附件→记事本。 2.复制本步骤以下全部内......
  • ffmpeg提取aac数据
    方法1:通过命令提取ffmpeg-iinput.mp4-vn-acodecaac../output.aac方法2:通过代码提取流程图  main.c#include"libavutil/log.h"#include"libavformat/avformat.h"#include"libavcodec/avcodec.h"intmain(intargc,char**argv){......
  • NVIDIA机器人仿真环境 —— NVIDIA Isaac Sim 的headless模式/无头模式 —— 非桌面模
    相关:https://developer.nvidia.com/isaac-sim可视化模式,也就是在桌面系统上直接安装软件,具体地址:https://developer.nvidia.com/isaac-sim无头模式则是使用docker安装,该种情况下不使用可视化界面,所有操作均在docker容器内,地址:https://catalog.ngc.nvidia.com/orgs/nvid......
  • NVIDIA的ROS项目 —— Isaac ROS
    文档地址:https://nvidia-isaac-ros.github.io/index.htmlGithub地址:https://github.com/NVIDIA-ISAAC-ROS......