zoukankan      html  css  js  c++  java
  • (转)WAVE PCM 声音文件格式

    WAVE文件格式是Microsoft为存储多媒体的RIFF规范的一部分。一个RIFF文件以一个文件头开始,然后是一系列的数据块。一个WAVE文件常常仅由一个WAVE块构成,WAVE块包含一个说明格式的fmt块和存储取样信息的数据块。

    标准WAVE文件格式

     

    偏移

    长度(字节)

    变量名

    描述

    备注

    0

    4

    ChunkID

    ASCII字符“RIFF”,大端形式

    RIFF头

    4

    4

    ChunkSize

    36+SubChunk2Size,即:4 + (8 + SubChunk1Size) + (8 + SubChunk2Size),指除文件前8字节后的字节数

    RIFF头

    8

    4

    Format

    ASCII字符“WAVE”,大端形式

    RIFF头

    12

    4

    Subchunk1ID

    ASCII字符“fmt ”,大端形式

    Fmt子块

    16

    4

    Subchunk1Size

    对于PCM文件为16。指除前8字节的Fmt块大小

    Fmt子块

    20

    2

    AudioFormat

    PCM=1,其他值指以某种形式压缩(见表2)

    Fmt子块

    22

    2

    NumChannels

    单声道=1,立体声=2

    Fmt子块

    24

    4

    SampleRate

    取样率,取16000

    Fmt子块

    28

    4

    ByteRate

    SampleRate * NumChannels * BitsPerSample/8

    Fmt子块

    32

    2

    BlockAlign

    NumChannels * BitsPerSample/8,所有声道中一个样本数据的字节总数

    Fmt子块

    34

    2

    BitsPerSample

    8或16

    Fmt子块

    36

    4

    Subchunk2ID

    ASCII字符串“data”

    Data子块

    40

    4

    Subchunk2Size

    NumSamples * NumChannels * BitsPerSample/8,指数据中的字节数

    Data子块

    44

    *

    Data

    实际的声音数据

     

    表2 Format Code 格式编码

    格式编码

    预处理符号

    数据

    0x0001

    WAVE_FORMAT_PCM

    PCM

    0x0003

    WAVE_FORMAT_IEEE_FLOAT

    Ieee float

    0x0006

    WAVE_FORMAT_ALAW

    8bits ITU-T G.711 A-law

    0x0007

    WAVE_FORMAT_MULAW

    8-bit ITU-T G.711 u-law

    0xFFFE

    WAVE_FORMAT_EXTENSIBLE

     

     

    注意:

    1)WAVE文件默认的字节顺序是小端顺序,若是大端顺序用RIFX代替RIFF标识

    2)取样数据必须是偶数字节

    3)8位取样数据被存储为无符号数,从0到255.16位的取样数据被存储为补码,从-32768到32767

    4)在wave数据流中可能有添加的子块。每一个子块有char SubChunkID[4],unsigned long SubChunkSize和SubChunkSize字节的数据

    5)RIFF代表Resource Interchange File Format

     

    转自:http://blog.csdn.net/foxwit/article/details/5802389

  • 相关阅读:
    [deviceone开发]-底部弹出选择
    [deviceone开发]-动态添加组件add方法的示例
    [deviceone开发]-openPage的动画效果示例
    [deviceone开发]-do_Album的简单示例
    [deviceone开发]-Star分享的几个示例
    [deviceone开发]-do_Webview的基本示例
    [deviceone开发]-do_Webview加载JQueryMobile的示例
    [deviceone开发]-心形点赞动画示例
    函数式编程思维学习 (1)
    android 14.04 64位 adb cannot run program adb
  • 原文地址:https://www.cnblogs.com/lihaiping/p/4796925.html
Copyright © 2011-2022 走看看