Windows WAVE format
Byte order: Little-endian
Offset Length Contents 0 4 bytes "RIFF" 4 4 bytes <File length - 8> 8 4 bytes "WAVE" 12 4 bytes "fmt " 16 4 bytes <Length of the fmt data> // (=16) 20 2 bytes <WAVE File Encoding Tag> 22 2 bytes <Channels> // Channels: 1 = mono, 2 = stereo 24 4 bytes <Sample rate> // Samples per second: e.g., 44100 28 4 bytes <bytes/second> // sample rate * block align 32 2 bytes <block align> // channels * bits/sample / 8 34 2 bytes <bits/sample> // 8 or 16 36 4 bytes "data" 40 4 bytes <Sample data size(n)> 44 (n)bytes <Sample data>
/* Windows WAVE File Encoding Tags */ #define WAVE_FORMAT_UNKNOWN 0x0000 /* Unknown Format */ #define WAVE_FORMAT_PCM 0x0001 /* PCM */ #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft ADPCM Format */ #define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* IEEE Float */ #define WAVE_FORMAT_VSELP 0x0004 /* Compaq Computer's VSELP */ #define WAVE_FORMAT_IBM_CSVD 0x0005 /* IBM CVSD */ #define WAVE_FORMAT_ALAW 0x0006 /* ALAW */ #define WAVE_FORMAT_MULAW 0x0007 /* MULAW */ #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI ADPCM */ #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel's DVI ADPCM */ #define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /*Videologic's MediaSpace ADPCM*/ #define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra ADPCM */ #define WAVE_FORMAT_G723_ADPCM 0x0014 /* G.723 ADPCM */ #define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solution's DIGISTD */ #define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solution's DIGIFIX */ #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic OKI ADPCM */ #define WAVE_FORMAT_MEDIAVISION_ADPCM 0x0018 /* MediaVision ADPCM */ #define WAVE_FORMAT_CU_CODEC 0x0019 /* HP CU */ #define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha ADPCM */ #define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression's Sonarc */ #define WAVE_FORMAT_TRUESPEECH 0x0022 /* DSP Group's True Speech */ #define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech's EchoSC1 */ #define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* Audiofile AF36 */ #define WAVE_FORMAT_APTX 0x0025 /* APTX */ #define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* AudioFile AF10 */ #define WAVE_FORMAT_PROSODY_1612 0x0027 /* Prosody 1612 */ #define WAVE_FORMAT_LRC 0x0028 /* LRC */ #define WAVE_FORMAT_AC2 0x0030 /* Dolby AC2 */ #define WAVE_FORMAT_GSM610 0x0031 /* GSM610 */ #define WAVE_FORMAT_MSNAUDIO 0x0032 /* MSNAudio */ #define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex ADPCME */ #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Res VQLPC */ #define WAVE_FORMAT_DIGIREAL 0x0035 /* Digireal */ #define WAVE_FORMAT_DIGIADPCM 0x0036 /* DigiADPCM */ #define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Res CR10 */ #define WAVE_FORMAT_VBXADPCM 0x0038 /* NMS VBXADPCM */ #define WAVE_FORMAT_ROLAND_RDAC 0x0039 /* Roland RDAC */ #define WAVE_FORMAT_ECHOSC3 0x003A /* EchoSC3 */ #define WAVE_FORMAT_ROCKWELL_ADPCM 0x003B /* Rockwell ADPCM */ #define WAVE_FORMAT_ROCKWELL_DIGITALK 0x003C /* Rockwell Digit LK */ #define WAVE_FORMAT_XEBEC 0x003D /* Xebec */ #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics G.721 */ #define WAVE_FORMAT_G728_CELP 0x0041 /* G.728 CELP */ #define WAVE_FORMAT_MSG723 0x0042 /* MSG723 */ #define WAVE_FORMAT_MPEG 0x0050 /* MPEG Layer 1,2 */ #define WAVE_FORMAT_RT24 0x0051 /* RT24 */ #define WAVE_FORMAT_PAC 0x0051 /* PAC */ #define WAVE_FORMAT_MPEGLAYER3 0x0055 /* MPEG Layer 3 */ #define WAVE_FORMAT_CIRRUS 0x0059 /* Cirrus */ #define WAVE_FORMAT_ESPCM 0x0061 /* ESPCM */ #define WAVE_FORMAT_VOXWARE 0x0062 /* Voxware (obsolete) */ #define WAVE_FORMAT_CANOPUS_ATRAC 0x0063 /* Canopus Atrac */ #define WAVE_FORMAT_G726_ADPCM 0x0064 /* G.726 ADPCM */ #define WAVE_FORMAT_G722_ADPCM 0x0065 /* G.722 ADPCM */ #define WAVE_FORMAT_DSAT 0x0066 /* DSAT */ #define WAVE_FORMAT_DSAT_DISPLAY 0x0067 /* DSAT Display */ #define WAVE_FORMAT_VOXWARE_BYTE_ALIGNED 0x0069 /* Voxware Byte Aligned (obsolete) */ #define WAVE_FORMAT_VOXWARE_AC8 0x0070 /* Voxware AC8 (obsolete) */ #define WAVE_FORMAT_VOXWARE_AC10 0x0071 /* Voxware AC10 (obsolete) */ #define WAVE_FORMAT_VOXWARE_AC16 0x0072 /* Voxware AC16 (obsolete) */ #define WAVE_FORMAT_VOXWARE_AC20 0x0073 /* Voxware AC20 (obsolete) */ #define WAVE_FORMAT_VOXWARE_RT24 0x0074 /* Voxware MetaVoice (obsolete) */ #define WAVE_FORMAT_VOXWARE_RT29 0x0075 /* Voxware MetaSound (obsolete) */ #define WAVE_FORMAT_VOXWARE_RT29HW 0x0076 /* Voxware RT29HW (obsolete) */ #define WAVE_FORMAT_VOXWARE_VR12 0x0077 /* Voxware VR12 (obsolete) */ #define WAVE_FORMAT_VOXWARE_VR18 0x0078 /* Voxware VR18 (obsolete) */ #define WAVE_FORMAT_VOXWARE_TQ40 0x0079 /* Voxware TQ40 (obsolete) */ #define WAVE_FORMAT_SOFTSOUND 0x0080 /* Softsound */ #define WAVE_FORMAT_VOXWARE_TQ60 0x0081 /* Voxware TQ60 (obsolete) */ #define WAVE_FORMAT_MSRT24 0x0082 /* MSRT24 */ #define WAVE_FORMAT_G729A 0x0083 /* G.729A */ #define WAVE_FORMAT_MVI_MV12 0x0084 /* MVI MV12 */ #define WAVE_FORMAT_DF_G726 0x0085 /* DF G.726 */ #define WAVE_FORMAT_DF_GSM610 0x0086 /* DF GSM610 */ #define WAVE_FORMAT_ISIAUDIO 0x0088 /* ISIAudio */ #define WAVE_FORMAT_ONLIVE 0x0089 /* Onlive */ #define WAVE_FORMAT_SBC24 0x0091 /* SBC24 */ #define WAVE_FORMAT_DOLBY_AC3_SPDIF 0x0092 /* Dolby AC3 SPDIF */ #define WAVE_FORMAT_ZYXEL_ADPCM 0x0097 /* ZyXEL ADPCM */ #define WAVE_FORMAT_PHILIPS_LPCBB 0x0098 /* Philips LPCBB */ #define WAVE_FORMAT_PACKED 0x0099 /* Packed */ #define WAVE_FORMAT_RHETOREX_ADPCM 0x0100 /* Rhetorex ADPCM */ #define WAVE_FORMAT_IRAT 0x0101 /* BeCubed Software's IRAT */ #define WAVE_FORMAT_VIVO_G723 0x0111 /* Vivo G.723 */ #define WAVE_FORMAT_VIVO_SIREN 0x0112 /* Vivo Siren */ #define WAVE_FORMAT_DIGITAL_G723 0x0123 /* Digital G.723 */ #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative ADPCM */ #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative FastSpeech8 */ #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative FastSpeech10 */ #define WAVE_FORMAT_QUARTERDECK 0x0220 /* Quarterdeck */ #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* FM Towns Snd */ #define WAVE_FORMAT_BTV_DIGITAL 0x0400 /* BTV Digital */ #define WAVE_FORMAT_VME_VMPCM 0x0680 /* VME VMPCM */ #define WAVE_FORMAT_OLIGSM 0x1000 /* OLIGSM */ #define WAVE_FORMAT_OLIADPCM 0x1001 /* OLIADPCM */ #define WAVE_FORMAT_OLICELP 0x1002 /* OLICELP */ #define WAVE_FORMAT_OLISBC 0x1003 /* OLISBC */ #define WAVE_FORMAT_OLIOPR 0x1004 /* OLIOPR */ #define WAVE_FORMAT_LH_CODEC 0x1100 /* LH Codec */ #define WAVE_FORMAT_NORRIS 0x1400 /* Norris */ #define WAVE_FORMAT_ISIAUDIO 0x1401 /* ISIAudio */ #define WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS 0x1500 /* Soundspace Music Compression */ #define WAVE_FORMAT_DVM 0x2000 /* DVM */ #define WAVE_FORMAT_EXTENSIBLE 0xFFFE /* SubFormat */ #define WAVE_FORMAT_DEVELOPMENT 0xFFFF /* Development */ /*?#define WAVE_FORMAT_IBM_MULAW 0x0101 IBM MULAW? */ /*?#define WAVE_FORMAT_IBM_ALAW 0x0102 IBM ALAW? */ /*?#define WAVE_FORMAT_IBM_ADPCM 0x0103 IBM ADPCM? */ /*?#define WAVE_FORMAT_DIVX_AUDIO160 0x00000160 DivX Audio? */ /*?#define WAVE_FORMAT_DIVX_AUDIO161 0x00000161 DivX Audio? */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)