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

Posted

技术标签:

【中文标题】比较应该是相同的 AAC 音频文件 - 时间戳?【英文标题】:Comparing should-be identical AAC audio files - timestamp? 【发布时间】:2015-04-06 12:47:19 【问题描述】:

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

    单声道/立体声和 曲目时长

被 VLC 等外部播放器正确识别。

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

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

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

【问题讨论】:

此外,我当然愿意就如何解决错误识别单声道/立体声和/或持续时间的根本问题提出建议。 【参考方案1】:

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

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

【讨论】:

以上是关于比较应该是相同的 AAC 音频文件 - 时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

M4A 和 AAC 音频文件有啥区别?

aac 和 h264等的时间戳

OGG与AAC音质比较起来哪个更好?

将一个 AAC 文件附加到另一个文件时输出音频设置

MP3转AAC音频格式怎么使用音频转换器转换?

iOS6 AVAudioPlayer - AAC音频文件的持续时间总是返回0。