RIFF WAV文件中是否保证格式参数的字节顺序?

时间:2009-07-10 19:32:48

标签: audio wav endianness

RIFF WAV文件中格式参数的字节顺序是否有保证?我对此有heard conflicting answers,包括对RIFX文件格式的引用。

1 个答案:

答案 0 :(得分:18)

如果文件以RIFF开头,则它是小端。 如果它以FFIR或RIFX开头,则可能不是。 通常,支持WAV格式意味着支持RIFF文件,尽管添加RIFX支持并不难。

BWF(广播波形格式)的AES31规范引用了RIFF的此规范:http://www.tactilemedia.com/info/MCI_Control_Info.html

由此:

  

RIFF有一个对应的RIFX,即   用于定义RIFF文件格式   使用Motorola整数字节排序   格式而不是英特尔格式。一个   RIFX文件与RIFF文件相同,   除了前四个字节是   'RIFX'而不是'RIFF',和整数   字节排序用。表示   摩托罗拉格式。

您引用的KVR文章指的是作者在big-endian系统(Motorola PPC)上对int *的错误使用,它将检索字节交换的值。在编写跨端代码时,始终需要小心处理字节交换。

如果磁盘上文件的第0个字节为'R',而第3个为'F',则可以确定其余内容将以little endian存储。

RIFX并未广泛使用。大多数big-endian RIFF实现将字节交换到磁盘,并生成正确的RIFF文件。