有人可以解释.wav(WAVE)文件头吗?

时间:2015-01-25 14:35:28

标签: java audio header byte wav

好的,所以我试图创建一个可以操作.wav文件的程序,我已经看过this question/answers,但我不完全确定每个部分是什么标题中的数据是指。例如," chunk"参考?这是一个特定的位/字节数吗?

如果有人能够告诉我,至少以这个问题中使用的格式,除了常量字符串文字和数据之外,每个数据写入.wav的内容是什么。数组,请参阅?特别是我特别想知道什么是" chunk"是,以及所有通道的采样率,字节速率,每个采样的字节数和每个采样的字节数如何相关?(我怀疑字节速率是每个采样的采样率*字节数,但是对于所有通道''一个?)

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

发布链接是违反董事会规则的,所以这是我从http://www.topherlee.com/software/pcm-tut-wavformat.html

获取的表格
Positions   Sample Value         Description
1 - 4       "RIFF"               Marks the file as a riff file. Characters are each 1. byte long.
5 - 8       File size (integer)  Size of the overall file - 8 bytes, in bytes (32-bit integer). Typically, you'd fill this in after creation.
9 -12       "WAVE"               File Type Header. For our purposes, it always equals "WAVE".
13-16       "fmt "               Format chunk marker. Includes trailing null
17-20       16                   Length of format data as listed above
21-22       1                    Type of format (1 is PCM) - 2 byte integer
23-24       2                    Number of Channels - 2 byte integer
25-28       44100                Sample Rate - 32 bit integer. Common values are 44100 (CD), 48000 (DAT). Sample Rate = Number of Samples per second, or Hertz.
29-32       176400               (Sample Rate * BitsPerSample * Channels) / 8.
33-34       4                    (BitsPerSample * Channels) / 8.1 - 8 bit mono2 - 8 bit stereo/16 bit mono4 - 16 bit stereo
35-36       16                   Bits per sample
37-40       "data"               "data" chunk header. Marks the beginning of the data section.
41-44       File size (data)     Size of the data section, i.e. file size - 44 bytes header.

上面给出了16位立体声源的样本值。

<强>更新/提醒

标头整数都是最低有效字节顺序, 所以两个字节的信道信息0x01 0x00实际上是0x00001,例如单声道。

答案 1 :(得分:0)

enter image description here

我知道OP将问题标记为Java,但这是完整的Kotlin代码,用于读取可能传递给Java的标头。读Little Endian可能很棘手,但值得庆幸的是,我们不必这样做。

Delivery Date

使用this URL运行会产生输出:

Database