• WAV文件格式


    作者:阿宝 
    更新:2016-09-21 
    来源:彩色世界(https://blog.hz601.org/2016/09/21/waveform-audio-file-format/index.html) 

    WAVE (Waveform Audio File Format),是由微软和IBM公司共同开发的音频编码格式;广泛应用于Windows平台;
    又因为文件后缀名为.wav而被称为WAV。

    官方文档

    WAV文件格式 draft-ema-vpim-wav-00

    WAVE和AVI支持的编码格式 RFC 2361

    文件格式

    由多个块组成,必须包含四种(分别为RIFF头块、格式块、数据头块、数据块),其中格式块必须在数据块前面,其他块可自定义并且允许被忽略。
    所有数据均以小端方式存储。

    OFFSET  LENGTH  VALUE   DESCRIPTION
    0       4 bytes 'RIFF'  The file format ID.
    4       4 bytes         Length of the file minus (-) 8 bytes.
    8       4 bytes 'WAVE'  The data format ID.
    12      4 bytes 'fmt '  The chunk ID.
    16      4 bytes 32      Length of the chunk excluding the 8
                            bytes for the ID and length.
    20      4 bytes         The codec ID.
    24      4 bytes         The number of channels.
    28      8 bytes         Samples per second.
    36      8 bytes         Average bytes per second.
    44      4 bytes         Block alignment.
    48      4 bytes         Bits per sample.
    52      4 bytes 'data'  The chunk ID.
    56      4 bytes         Length of the data (chunk size minus (-) 8 bytes.
    60      4 bytes 'fact'  The chunk ID.
            4 bytes  8      Chunk size minus (-) 8 bytes.
            8 bytes         Sample length.
    

    WAV文件示例

    下面是一个由FFmpeg转码生成的WAV文件示例,PCM数据,大小5292078B,位宽16bit,小端存储,采样率44100,2声道,码率1411kb/s。
    分析发现,真实的WAV文件格式与IETF中的描述并不一致,暂时还没找到原因。

    在资源交换文件RIFF标准中,所有的数据被组织成"块"格式,每个块必须包含一个4字节的ID,一个4字节的长度字段,和若干字节的数据。

    52 49 46 46 26 c0 50 00 57 41 56 45 66 6d 74 20
    10 00 00 00 01 00 02 00 44 ac 00 00 10 b1 02 00
    04 00 10 00 4c 49 53 54 1a 00 00 00 49 4e 46 4f
    49 53 46 54 0e 00 00 00 4c 61 76 66 35 36 2e 34
    30 2e 31 30 31 00 64 61 74 61 e0 bf 50 00 06 00
    ...
    

    0-4B 0x52 0x49 0x46 0x46 文件格式标识'RIFF'
    5-8B 0x26 0xc0 0x50 0x00 文件长度减8,小端存储,此处为5292070
    9-12B 0x57 0x41 0x56 0x45 数据格式标识'WAVE'

    13-16B 0x66 0x6d 0x74 0x20 格式块标识'fmt '
    17-20B 0x10 0x00 0x00 0x00 格式长度,此处为16
    21-22B 0x01 0x00 数据编码格式 Microsoft PCM Format 0x0001 RFC2361
    23-24B 0x02 0x00 音频声道数,此处为2,双声道
    25-28B 0x44 0xac 0x00 0x00 音频采样率,此处为44100
    29-32B 0x10 0xb1 0x02 0x00 平均码率
    33-34B 0x04 0x00 数据的调整数?
    35-36B 0x10 0x00 样本位宽,此处为16bit
    37-40B 0x4c 0x49 0x53 0x54 块标识'LIST'
    41-44B 0x1a 0x00 0x00 0x00 块长度,此处为26
    45-70B 0x49 0x4e 0x46 0x4f 0x49 0x53 0x46 0x54 0x0e 0x00 0x00 0x00 0x4c 0x61 0x76 0x66 0x35 0x36 0x2e 0x34 0x30 0x2e 0x31 0x30 0x31 0x00
    71-74B 0x64 0x61 0x74 0x61 数据头块标识'data'
    75-78B 0xe0 0xbf 0x50 0x00 数据长度,不包括数据头,此处为5292000
    ...

    音频数据

    WAV编码不对源数据做任何压缩处理;
    如果源数据是无损的,编码后的WAV文件也是无损的;
    如果源数据是有损的,编码后的WAV文件也是有损的;

    关于采样

    通常情况下人耳只能感受到频率从100到20,000赫兹的信号;因此44,100赫兹的采样相对于人耳即是“无损”的。
    音乐制作人通常会录制采为96,000赫兹的数据,之后采样处理成不同的格式。

    常见的音频处理软件

    剪辑 Goldwave
    精细制作 MATLAB

  • 相关阅读:
    南京师范大学2021年高等代数数学分析考研试题及参考解答
    南昌大学2021年数学分析考研试题参考解答
    南昌大学2021年高等代数考研试题参考解答
    河南师范大学2021年数学分析考研试题参考解答
    河海大学2021年数学分析考研试题参考解答
    河海大学2021年高等代数考研试题参考解答
    合肥工业大学2021年高等代数数学分析考研试题参考解答
    福州大学2021年高等代数数学分析考研试题参考解答
    东华大学2021年高等代数数学分析考研试题参考解答
    安徽大学2021年数学分析考研试题参考解答
  • 原文地址:https://www.cnblogs.com/shishuo365/p/5895351.html
Copyright © 2020-2023  润新知