音频数据文件WAVE结构分析--Windows XP 启动.wav 文件头分析

来源:互联网 发布:js或者符号 编辑:程序博客网 时间:2024/04/27 14:17

 

Windows XP 启动.wav 文件头分析:

 

 

                       文件长度②                                                                      声道数 

格式标记"RIFF"                    WAVE           fmt                不定   WAV格式类别         采样频率     数据传输率③   

[                ]  [               ] [                 ] [                ]  [                ] [      ][      ]  [                ] [                 ]

52 49 46 46 BC 7A 06 00 57 41 56 45 66 6D74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00

  0   1 2   3   4   5   6  7   8  9 10  11 12 13 14 15 16 1718 19 20 21 22 23 24 25 26 27 28 29 30 31

 

        采样位数 

块调整值④       标记"data"  音频数据长度⑤  左                     

[      ]  [     ]  [               ] [                 ] [      ] [      ] [      ] [      ]  [      ] [      ] [      ] [      ] 

04 00 10 00 64 61 74 61 98 7A 06 00 5E 0000 00 F3 FF 00 00 05 00 00 00 FC FF 00 00 03 00 00 00...

32 33 34 35 36 37 38 39 40 41 42 43 44 4546 47 48 49 50 51 52 53 54 55 56 5758 59

 

 

注①:WAVE 文档的保存格式标准是RIFF

注②:文件长度= 文件实际长度- 8

注③:数据传输率= 声道数*采样频率*采样位数/8

注④:块调整值(每个采样需要的字节数)= 声道数*采样位数/8

注⑤:音频数据长度= 文件长度- 头长度

 

文件长度=67ABCH=424636,文件实际长度为424636+8=424644

采样频率22 56 00 5622H=22050(1000mS采集22050个点,两个波形点需要1/22.05=0.04535mS)

每次采样需要的字节数=2*16/8=4(1个通道要2个字节)

数据传输率(每秒所需字节数)15888H=88200=2*22050*16/8

音频数据长度=67A98H=424600(个字节)(212300个采样点)

 

一屏显示500个采样点,采样时间为500/22050=0.0226757s=22.6757ms

一屏显示300个采样点,采样时间为300/22050=0.0136054s=13.5054ms

 

单声道

一屏显示600个采样点,采样时间为600/22050=0.0272108s=27.2108ms

双声道

一屏显示600个采样点,采样时间为600/22050=0.0272108s=27.2108ms

 

 

音频数据量=采样频率* 声道数* 采样秒数*采样位数/8(字节)

采样秒数=音频数据长度*8/采样频率* 声道数*采样位数

424600*8/22050*2*16=4.81S

 

另外,如果采样位数为16位,则需要两个字节表示一个采样点,取值范围:0..65536,但表示范围为:-32768..32767,而16位波形数据用2个字节表示,范围为:0-65535,当读入F3 FF(65523)时,超过最大值32767,高位表示符号,所以读入后为-3 

 

以上是我对“WindowsXP 启动.wav”文件头的详细分析,其它的WAVE格式文件结构和上面分析的一样,只是声道数如果是8位的则数据都是一个点一个点的存放,希望对需要对WAVE格式文件解码的朋友有所帮助。

 

原创粉丝点击