是否可以(以及如何)确定 AIFF 音频文件的字节顺序?

发布于 2024-12-04 06:18:29 字数 453 浏览 0 评论 0原文

我在 JAVA 中开发音频导入器(用于鼓音序器),在导入 AIFF 文件时遇到以下问题:

我有 2 个相同类型的 AIFF 文件(24 位、44100kHz、单声道),其中一个是在 Mac 上创建的,另一个是在Windows计算机上用wavelab创建的。两个文件都是未压缩的 PCM,都是 FORM == AIFF。

Mac 上的 AIFF 是 BigEndian(应该是这样), Wavelab (Windows) 的 AIFF 是 LittleEndian。

这两个文件都可以在 Wavelab (Windows) 和 Quicktime (Windows) 中正确播放。 这些工具如何检测这些文件的字节顺序?无论如何,它必须是可能的,否则至少有一个文件听起来就像噪音(这就是我的应用程序中发生的情况)。

文件头中是否存在一些隐藏信息或任何其他方式来确定 AIFF 文件的字节顺序? 有什么建议吗?

多谢

I work on an audio Importer in JAVA (used in a drum sequencer) and I have the following problem with importing AIFF files:

I have 2 AIFF files of the same type (24bit, 44100kHz, mono), one is created on a Mac, the other is created with wavelab on a windows computer. Both files are uncompressed PCM, both are FORM == AIFF.

The AIFF from the Mac is BigEndian (as it should be),
the AIFF from Wavelab (windows) is LittleEndian.

Both files can be played back properly in Wavelab (Windows) as well as in Quicktime (Windows).
How can these tools detect the endianness of these files? In any way it must be possible, otherwise at least one of the files would sound just like noise (that's what happen in my application).

Is there some hidden information within the file header or any other way to determine the endianness of the AIFF file?
Any suggestions?

Thanks a lot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

新人笑 2024-12-11 06:18:29

快速谷歌搜索显示,AIFF 文件是大端

然而,根据 维基百科,还有另一种称为 AIFF-C 的格式可以压缩数据。苹果现在使用小端字节序,并创建了一种名为 sowt 的假压缩方法,其本质上意味着“没有压缩,但小端字节序”。你可能需要检查一下。

除此之外,普通 AIFF 不提供检查字节顺序的方法。以小尾数法编码的标准 AIFF 似乎违反了规范。

A quick googling says, AIFF files are big endian.

However according to Wikipedia there is another format called AIFF-C that compresses data. Apple uses little endian these days and created a fake compression method named sowt that essentially means "no compression but little endian". You might have to check for that.

Apart from that, plain AIFF provides no way to check for endianness. A standard AIFF that is encoded in little endian seems to violate the specification.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文