比较应该是相同的AAC音频文件 - 时间戳?

时间:2015-04-06 12:47:20

标签: ios audio diff aac extaudiofile

我在iPhone(iOS)和模拟器中以某种方式编码AAC / M4A音频文件时出现问题

  1. mono / stereo and
  2. 赛道持续时间
  3. 外部玩家(如VLC)可以正确识别

    为了解决各种设备上的问题,我编写了代码,为各种编码配置生成测试文件。编码声音是生成的正弦波,它始终是相同的。这很好用。在下一步中,我对这些测试文件进行二进制比较,这些文件是在不同的divices和模拟器中生成的。令我惊讶的是,.m4a文件永远不会相同(aac文件始终相同)。我使用ExtAudioFile...()方法编写文件,并使用文件类型标识符kAudioFileM4AType

    我怀疑这些文件中包含时间戳,这会混淆我的二进制比较。

    任何人都可以确认或反驳M4A文件中有时间戳,这总是会混淆二进制比较吗?

1 个答案:

答案 0 :(得分:1)

M4A是一种容器格式,几乎肯定会包含一些元数据。正如您所怀疑的那样,很可能这些元数据中的一些元素与一种编码不同。

您可能最好编写某种算法来查看您的M4A文件是否包含与您拥有的AAC数据匹配的字节流。解决这个问题的一种方法是在Hex编辑器中手动比较两个文件(M4A和AAC与相同的原始声音数据),并尝试找到AAC数据开始和/或结束的偏移量,然后只比较这些数据。