我有一个未知格式的音频文件。我应该如何尝试确定其格式?
另外,是否可以通过手动观察而不使用任何自动化工具来做到这一点?
至于自动化方法,file 命令是经典推荐。它是一种尝试从文件中包含的数据中猜测文件类型的工具。它通过libmagic实现了许多众所周知的文件格式签名。如果您有一个复合文件,您可以尝试binwalk,它会尝试将文件作为较大文件的子集查找。
如果您想走手动路线,您需要将文件的某个子集与已知的签名或模式相匹配。这尤其适用于可能被压缩的文件格式,因为数据模式将不那么规则。因此,您通常需要在文件结构中找到一个模式,通常称为签名或指纹。大多数文件格式在文件的页眉或页脚中都有幻数,以便程序可以轻松检查它们将要加载的文件类型。对于众所周知的文件签名,有一些很好的资源:
像往常一样,彼得的建议非常好。我想补充几点。
除了其他答案中的好建议之外,这里还有一些针对音频的建议:
strings