WAVE 流媒体格式解析
来源:互联网 发布:暑假作业答案软件 编辑:程序博客网 时间:2024/06/05 19:30
WAVE PCM soundfile format
The WAVE file format is a subset of Microsoft's RIFF specificationfor the storage of multimedia files. A RIFF file starts out witha file header followed by a sequence of data chunks. A WAVE fileis often just a RIFF file with a single "WAVE" chunk which consistsof two sub-chunks -- a "fmt " chunk specifying the data format anda "data" chunk containing the actual sample data. Call this formthe "Canonical form". Who knows how it really all works.
I use the standard WAVE format as created by the sox program:
Offset Size Name Description
The canonical WAVE format starts with the RIFF header:0 4 ChunkID Contains the letters "RIFF" in ASCII form (0x52494646 big-endian form).4 4 ChunkSize 36 + SubChunk2Size, or more precisely: 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size) This is the size of the rest of the chunk following this number. This is the size of the entire file in bytes minus 8 bytes for the two fields not included in this count: ChunkID and ChunkSize.8 4 Format Contains the letters "WAVE" (0x57415645 big-endian form).The "WAVE" format consists of two subchunks: "fmt " and "data":The "fmt " subchunk describes the sound data's format:12 4 Subchunk1ID Contains the letters "fmt " (0x666d7420 big-endian form).16 4 Subchunk1Size 16 for PCM. This is the size of the rest of the Subchunk which follows this number.20 2 AudioFormat PCM = 1 (i.e. Linear quantization) Values other than 1 indicate some form of compression.22 2 NumChannels Mono = 1, Stereo = 2, etc.24 4 SampleRate 8000, 44100, etc.28 4 ByteRate == SampleRate * NumChannels * BitsPerSample/832 2 BlockAlign == NumChannels * BitsPerSample/8 The number of bytes for one sample including all channels. I wonder what happens when this number isn't an integer?34 2 BitsPerSample 8 bits = 8, 16 bits = 16, etc. 2 ExtraParamSize if PCM, then doesn't exist X ExtraParams space for extra parametersThe "data" subchunk contains the size of the data and the actual sound:36 4 Subchunk2ID Contains the letters "data" (0x64617461 big-endian form).40 4 Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8 This is the number of bytes in the data. You can also think of this as the size of the read of the subchunk following this number.44 * Data The actual sound data.
As an example, here are the opening 72 bytes of a WAVE file withbytes shown as hexadecimal numbers:
52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d
Here is the interpretation of these bytes as a WAVE soundfile:
Notes:
- The default byte ordering assumed for WAVE data files is little-endian. Files written using the big-endian byte ordering scheme have the identifier RIFX instead of RIFF.
- The sample data must end on an even byte boundary. Whatever that means.
- 8-bit samples are stored as unsigned bytes, ranging from 0 to 255. 16-bit samples are stored as 2's-complement signed integers, ranging from -32768 to 32767.
- There may be additional subchunks in a Wave data stream. If so,each will have a char[4] SubChunkID, and unsigned long SubChunkSize,and SubChunkSize amount of data.
- RIFF stands for Resource Interchange File Format.
General discussion of RIFF files:
Multimedia applications require the storage and management of awide variety of data, including bitmaps, audio data, video data,and peripheral device control information. RIFF provides a way to store all these varied types of data. The type of data aRIFF file contains is indicated by the file extension. Examples ofdata that may be stored in RIFF files are:- Audio/visual interleaved data (.AVI)
- Waveform data (.WAV)
- Bitmapped data (.RDI)
- MIDI information (.RMI)
- Color palette (.PAL)
- Multimedia movie (.RMN)
- Animated cursor (.ANI)
- A bundle of other RIFF files (.BND)
For more info see http://www.ora.com/centers/gff/formats/micriff/index.htm
References:
- http://netghost.narod.ru/gff/graphics/summary/micriff.htm RIFF Format Reference (good).
- http://www.lightlink.com/tjweber/StripWav/WAVE.html
原文出处https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
craig@ccrma.stanford.edu (Updated by Scott Wilson Jan 20, 2003)
- WAVE 流媒体格式解析
- 流媒体ts格式解析
- WAVE格式
- 流媒体格式
- WAVE头格式
- WAVE PCM 声音文件格式
- wave 档格式
- wave文件的格式
- WAVE PCM 声音文件格式
- 详解WAVE音频文件格式
- wave文件 wav格式
- WAVE格式解码分析
- WAVE PCM 声音文件格式
- wave格式学习
- 详解WAVE音频文件格式
- H.264流媒体协议格式中的Annex B格式和AVCC格式深度解析
- H.264流媒体协议格式中的Annex B格式和AVCC格式深度解析
- Wave音频格式解析
- 在cocos2d-x中调用android的按键
- 2012-2013年度总结
- Mat - 基本图像容器
- 内存对齐
- 字符串的处理
- WAVE 流媒体格式解析
- GCC抽象语法树
- PHP常用正则表达式汇总
- Source Insight 常用设置和快捷键大全
- jquery学习
- google protocol buffer原理及使用
- broadcast有序与无序
- linxu下命令解析(git)
- 获取随机数