这是为了尝试了解aac文件结构
为简单起见,我们可以假设m4a文件仅包含aac音频(即没有视频)
我正在使用faac库比较m4a文件和由m4a文件制成的aac文件
下面是两个文件的字节级别比较的屏幕截图:
上部是m4a文件,下部是aac文件
对于第一帧,AAC ADTS标头从下部开始是FF F9 4C 80 12 3F FC
,从here和here开始,实际aac音频数据应具有138个字节
从下部我们可以看到从DE
到80
的字节与上部窗口中的数据块(绿色部分)相匹配
我假设我已经在m4a文件中找到了偏移量,从该偏移量中存储了实际的aac音频数据。尽管上方窗口中的字节21 4C ...
包含下一帧AAC音频的所有字节,但是如果我们看一下下方窗口,我们确实可以看到... a3 80
(绿色的结尾下方窗口中的彩色部分)后面是另一个ADTS标头(FF F9 4C 80 12 1F FC
,它表示下一aac帧中的音频数应为137字节)
但是,从aac文件读取的字节与预期的m4a文件中的字节不匹配,如下面的屏幕截图所示:
它们匹配到某个点,但是此后的一切看起来都是随机的。
在字节级别上m4a文件与从其创建的相应aac文件之间是什么关系?
主要目标是能够修改this matlab project(需要m4a输入并解码为原始wav数据)以直接从aac文件读取aac音频数据,然后在不更改该matlab项目的情况下使用aac解码器功能