AAC ADTS流解析总结

这里列出Android里将aac编码器输出的音频帧加上ADTS头的代码:


+ int tmpFd;

+ tmpFd = ::open("/data/src.aac", O_WRONLY | O_APPEND );

+ if ( tmpFd < 0 ) {

+    LOGE("No dump decode file %s",strerror(errno));

+ }

+ else

+ {

+    unsigned char adts_hdr[7] = {0xff, 0xf9, 0x5c, 0x80, 0x00,0x1f, 0xfc};

+

+    adts_hdr[3] = 0x80 | ((mConfig->inputBufferCurrentLength >> 11) & 3);

+    adts_hdr[4] = (mConfig->inputBufferCurrentLength >> 3) & 0xff;

+    adts_hdr[5] = ((mConfig->inputBufferCurrentLength & 7) << 5) | 0x1f;

+

+    ::write(tmpFd,adts_hdr, 7);

+    ::write(tmpFd,(const char *)mConfig->pInputBuffer , mConfig->inputBufferCurrentLength);

+    ::close(tmpFd);

+ }

AAC参考知识:

http://blog.csdn.net/jay100500/article/details/52955232

http://blog.csdn.net/leixiaohua1020/article/details/11822537

时间: 2024-12-17 06:56:37

AAC ADTS流解析总结的相关文章

视音频数据处理入门:AAC音频码流解析

本文继续上一篇文章的内容,介绍一个音频码流处理程序.音频码流在视频播放器中的位置如下所示. 本文中的程序是一个AAC码流解析程序.该程序可以从AAC码流中分析得到它的基本单元ADTS frame,并且可以简单解析ADTS frame首部的字段.通过修改该程序可以实现不同的AAC码流处理功能. 原理 AAC原始码流(又称为"裸流")是由一个一个的ADTS frame组成的.他们的结构如下图所示. 其中每个ADTS frame之间通过syncword(同步字)进行分隔.同步字为0xFFF(

aac adts &amp; LATM封装码流分析

本文继续上一篇文章的内容,介绍一个音频码流处理程序.音频码流在视频播放器中的位置如下所示. 本文中的程序是一个AAC码流解析程序.该程序可以从AAC码流中分析得到它的基本单元ADTS frame,并且可以简单解析ADTS frame首部的字段.通过修改该程序可以实现不同的AAC码流处理功能. 原理 AAC原始码流(又称为"裸流")是由一个一个的ADTS frame组成的.他们的结构如下图所示. 其中每个ADTS frame之间通过syncword(同步字)进行分隔.同步字为0xFFF(

AAC ADTS解析

1.ADTS ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC ES流前添加7个字节的ADTS header.也就是说你可以把ADTS这个头看作是AAC的frameheader. ADTS AAC ADTS_header AAC ES ADTS_header AAC ES ... ADTS_header AAC ES 2.ADTS内容及结构 ADTS 头中相对

视音频数据处理入门:H.264视频码流解析

前两篇文章介绍的YUV/RGB处理程序以及PCM处理程序都属于视音频原始数据的处理程序.从本文开始介绍视音频码流的处理程序.本文介绍的程序是视频码流处理程序.视频码流在视频播放器中的位置如下所示. 本文中的程序是一个H.264码流解析程序.该程序可以从H.264码流中分析得到它的基本单元NALU,并且可以简单解析NALU首部的字段.通过修改该程序可以实现不同的H.264码流处理功能. 原理 H.264原始码流(又称为"裸流")是由一个一个的NALU组成的.他们的结构如下图所示. 其中每

(转)【多媒体封装格式详解】--- AAC ADTS格式分析

 出自:http://blog.csdn.net/tx3344/article/details/7414543 http://www.it6655.com/2012/08/aac-adts-html 1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播.当时崩溃了,后来通过查找资

AAC ADTS格式分析

http://blog.csdn.net/tx3344/article/details/7414543# 目录(?)[-] ADTS是个啥 ADTS内容及结构 将AAC打包成ADTS格式 1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播. 当时崩溃了,后来通过查找资料才知道.

(转)AAC ADTS格式分析

1,ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式记得第一做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播,保存到本地用pc的播放器博时,我靠也不能播.但是崩溃了,后来通过查找资料才知道.一般的ACC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC ES流前添加7个字节的ADTS header.也就是说,你可以把ADTS这个头看作是AAC的frameheader. A

AAC ES流如何解码播放

AAC原始流能让ffmpeg软解或系统硬解,最简单的处理可在前面加上ADTS头,那么这个ADTS头如何添加呢?其实就是七个字节,下面分享一个我使用的代码样例,每次传递数据都是以一个个sample为单元的: adts_header[7] = {0xff,0xf9,0x00,0x00,0x00,0x1f,0xfc}; //AAC level switch(AAC_level) { case AUDIO_AACM: adts_header[2] |= (0x00 << 6)&0xc0; br

【多媒体封装格式详解】--- AAC ADTS格式分析

1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播.当时崩溃了,后来通过查找资料才知道.一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC ES流前添加7个字节的ADTS header.也就是说你可以吧ADTS这个头看作是AAC的frameheader