Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio .aac和.m4a文件中音频数据在字节级别的差异_Audio_Aac_M4a - Fatal编程技术网

Audio .aac和.m4a文件中音频数据在字节级别的差异

Audio .aac和.m4a文件中音频数据在字节级别的差异,audio,aac,m4a,Audio,Aac,M4a,这是为了尝试理解aac文件结构 为简单起见,我们可以假设M4是一个只有aac音频(即没有视频)的文件 我正在使用faac库比较m4a文件和由m4a文件生成的aac文件 下面给出了两个文件字节级比较的屏幕截图: 上部是m4a文件,下部是aac文件 对于第一帧,从下半部分开始,AAC ADTS报头为FF F9 4C 80 12 3F FC,从下半部分开始,实际AAC音频数据应为138字节 从下半部分我们可以看到,从DE到80的字节与上窗口中的数据块(绿色部分)匹配 我假设我在m4a文件中找到了偏移

这是为了尝试理解aac文件结构

为简单起见,我们可以假设M4是一个只有aac音频(即没有视频)的文件

我正在使用faac库比较m4a文件和由m4a文件生成的aac文件

下面给出了两个文件字节级比较的屏幕截图:

上部是m4a文件,下部是aac文件

对于第一帧,从下半部分开始,AAC ADTS报头为
FF F9 4C 80 12 3F FC
,从下半部分开始,实际AAC音频数据应为138字节

从下半部分我们可以看到,从
DE
80
的字节与上窗口中的数据块(绿色部分)匹配

我假设我在m4a文件中找到了偏移量,实际aac音频数据存储在该文件中。我认为上面窗口中的字节
214c…
包含aac音频下一帧的所有字节,如果我们查看下面的窗口,我们确实可以看到
。。。a3 80
(下部窗口中绿色部分的末尾)后接另一个ADTS标题(
FF F9 4C 80 12 1F FC
,表示下一个aac帧中的音频数应为137字节)

但是,从aac文件读取的字节与m4a文件中的字节不匹配,如下面的屏幕截图所示:

它们匹配到某一点,但之后的一切看起来都是随机的

m4a文件与从中创建的相应aac文件在字节级别的关系是什么?


主要目标是能够修改(需要m4a输入并解码为原始wav数据)以直接从aac文件中读取aac音频数据,然后使用该matlab项目中的aac解码器功能,保持不变。

hm,因此,我有点困惑:你怎么知道ByTestStream应该是相同的?@MarcusMüller我不知道。我仍在试图理解aac文件的结构,我假设.aac中的所有音频数据都应该在.m4a文件中的某个位置。由于我在m4a文件中发现aac的第一个帧整齐地排列为一块内存,因此我认为接下来的帧也应该是类似的,但看起来不是,因此问题就来了