首页 > 其他分享 >AAC音频ADTS的分析

AAC音频ADTS的分析

时间:2023-11-08 14:02:59浏览次数:36  
标签:AAC csd 解码 ADTS byte 音频

一种有损的音频压缩格式。,AAC音频格式有两种类型:

  • ADIF 音频数据交换格式
  • ADTS 音频数据传输流

ADTS

可以在任意帧解码,每一帧都拥有头信息。ADTS Header + AAC ES共同组成了一个完整的ADTS帧。ADTS Header可以是7个字节或9个字节,包含了采样率、通道数、帧长度等信息。

csd-0参数

AAC编解码中csd-0表示ADTS头文件,是通过AAC的Profile、采样率、通道数算出来的。比如常见的44100采样率、双声道、LC计算出来的byte字节为18,16。在通过MedaiCodec解码AAC裸流时,需要设置csd-0,否则会解析失败。如果有需要还需要设置KEY_IS_ADTS为1,用来表明每帧的头部都带有ADTS头文件,注意改参数只用在解码的时候,也就是编码是不需要的。

//解码的是AAC音频且带有 ADTS header,则必须将KEY_IS_ADTS重置为1,否则后面获取解码后的ByteBuffer会一直为-1
        mMediaFormat.setInteger(MediaFormat.KEY_IS_ADTS, 1)

csd-0计算方式:

int audioProfile = 2;   //表示LC
int sampleIndex = 4;    //44100
int channelConfig = 2;  //2
byte[] adtsAudioHeader = new byte[2];
adtsAudioHeader[0] = (byte) ((audioProfile << 3) | (sampleIndex >> 1));
adtsAudioHeader[1] = (byte) ((byte) ((sampleIndex << 7) & 0x80) | (channelConfig << 3));

当解码aac文件时,通过MediaFormat可以获取adts头文件,然后设置到创建MediaCodec的MediaFormat中。

当通过AAC编码时,在MediaCodec.INFO_OUTPUT_FORMAT_CHANGED中可以获取到MediaFormat,然后获取adts头文件。

val adtsBuffer = format.getByteBuffer("csd-0")

标签:AAC,csd,解码,ADTS,byte,音频
From: https://blog.51cto.com/u_16348220/8250058

相关文章

  • Mac——MAC笔记本本地音频文件如何添加图标?
    在Mac上的“音乐”App  中,选择边栏中的一个播放列表。执行以下一项操作:点按播放列表左上方的插图区域,然后选取一个图像文件。将一个图像文件拖到插图区域。点按“完成”。   我自己的操作记录:本地音乐文件没有图标,就想要加上图标,文件-comd+i实现文......
  • CSS绘制无状态的音频波形图
    效果代码这是从codepen参考过来的一段代码,自己diy了一下。可以根据需求修改显示的条数、宽度、颜色、跳动频率及幅度。importReactfrom'react';constSoundWave=()=>{return(<divclass="sound-wave"><divclass="sound-bar"></div>......
  • ​​Android平台GB28181历史视音频文件回放规范解读及技术实现
     技术背景在实现GB28181历史视音频文件回放之前,我们已完成了历史视音频文件检索和下载,历史视音频回放,在GB28181平台非常重要,比如执法记录仪等前端设备,默认录像数据存储在前端设备侧,如果需要上传到平台统一保存,除了到工作站拷贝外,还可以通过GB28181的历史视音频文件下载到指挥中心......
  • pygame.mixer音频播放
    1、介绍pygame.mixer模块是一个第三方模块,广泛应用于音频播放控制业务。2、示例defm():pygame.mixer.init()#加载待播放音频pygame.mixer.music.load('data/abc.wav')#播放pygame.mixer.music.play()#阻塞线程等待播放whilepygame.mix......
  • 数字人+背景图片+音频生成一段视频是如何实现的?
    要实现数字人、背景图片和音频生成一段视频,可以按照以下步骤进行操作:创建数字人模型:使用数字化人技术,可以创建一个虚拟的人物模型。这可以通过使用动画软件或游戏引擎来实现。你可以设计和定制数字人的外观、动作和表情等。准备背景图片:选择适合场景的背景图片,可以是静态的图片或一......
  • expo-av如何实现动态播放本地音频?
    要实现动态播放本地音频,可以结合使用expo-file-system和expo-av库。下面是一个实现的示例:首先,确保你的项目已经安装了expo-file-system和expo-av。如果没有安装,你可以使用以下命令进行安装:expoinstallexpo-file-systemexpo-av在你的代码中,导入所需的库:import*asFileSystemfr......
  • 国产教学实验箱_嵌入式实验箱:3-4 mp3音频解码实验
    一、实验目的了解MP3文件的结构,掌握MP3音频解码的原理,并实现基于SYSBIOS系统,将MP3格式的音频解码为PCM格式。二、实验原理1、MP3音频格式MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(MovingPictureExpertsGroupAudioLayerIII),简称为MP3。它被设计用来大幅度地......
  • Android GB28181历史视音频远程回放
     作为GB28181安卓客户端,实时视音频点播是必须支持的功能,对于历史视音频回放功能,不支持的话可以从设备上拷贝录像文件再播放,但有些场景没法拷贝,安卓支持回放还是需要的。 历史视音频的回放和实时视音频点播信令上很相似,音视频数据都是通过RTP传输,信令回放要处理SIPINFO消息,解析......
  • ffmpeg实现视频的分割生成测试用的图片视频和音频
    测试代码如下:#!/bin/bash#提示用户输入参数read-p"请输入要切分的MP4文件名:"filenameread-p"请输入要生成的视频数量:"video_countread-p"请输入视频文件的大小范围(单位MB,例如10-20):"video_size_rangeread-p"请输入要生成的图片数量:"image_countread-......
  • 【Au 音频处理软件】Audition CC 2018 Mac 中文汉化版安装教程
    AuditionCC2018Mac中文汉化版是由Adobe公司位Mac用户所开发的一款OSX版本的专业性极强的音频处理软件,简称Aucc2018mac,软件提供了效果最佳的音频清理、恢复和精确编辑工具,通过此软件您可以快速轻松制作音频、编辑音频以及进行后期处理,为音频制作者提供了一系列的音频制作处理服务......