AVI文件与WAV文件格式
2011-01-31 20:59
197 查看
AVI 与WAV文件都属于RIFF文件,因此都遵循RIFF文件的格式要求
先看看RIFF文件的格式:
第一:"RIFF"+“大小"+"AVI/WAV"+数据
第二:RIFF 文件中实际的数据通常采用列表(list)和块(Chunk)的形式表示
列表结构为:'list'+listsize+listType+listData
块的结构:'ckID'+'ckSize '+'ckData'
(1)AVI文件格式
第一: AVI文件=‘一个RIFF文件头’+‘两个列表’+‘一个可选的索引块’
第二:AVI文件="RIFF"+“大小"+"AVI"+数据
第三:第一个列表:hdr1='list'+'listSize'+'hdr1'+'avih块'+'一个或者几个'str1'子列表
avih块='ckID'+'ckSize '+'ckData'
='avih'+'Sizeof(AVIMAINHEADER)'+AVIMAINHEADER
所以第一个列表hdr1='list'+'listSize'+'hdr1'+'avih块'
='list'+'listSize'+'hdr1'+'avih'+'Sizeof(AVIMAINHEADER)'+AVIMAINHEADER
接下来就是一个或者几个'str1'子列表(有多少个流就有多少个str1列表)
每个str1子列表必须包括一个‘strh’块和一个‘strf’块
strh块='strh'+Sizeof(AVISTREAMHEADER)+AVISTREAMHEADER +'strf'+Sizeof(WAVEFORMATEX/BITMAPINFOR) +BITMAPINFOR/WAVEFORMATEX
第四:第二个列表:move='list'+'listSize'+'move'+Data
第五:索引块='idx1'+Sizeof(AVIOLDINDEX)+AVIOLDINDEX
(2)wav文件格式
第一:wav文件='一个RIFF文件头'+'两个子块'
这两个子块的ID分别为'fmt'和'data'
其中"fmt"子块由结构WAVEFORMATEX所组成,其子块的大小就是sizeofof(WAVEFORMATEX),数据组成就是WAVEFORMATEX结构中的数据。
wav文件='RIFF'+'大小‘+'wav'+两个块
wav文件='RIFF'+'大小'+wav'+'fmt'+Sizeof(WAVEFORMATEX)+'WAVEFORMATEX+'data'+'声音数据大小'+
'声音数据'
先看看RIFF文件的格式:
第一:"RIFF"+“大小"+"AVI/WAV"+数据
第二:RIFF 文件中实际的数据通常采用列表(list)和块(Chunk)的形式表示
列表结构为:'list'+listsize+listType+listData
块的结构:'ckID'+'ckSize '+'ckData'
(1)AVI文件格式
第一: AVI文件=‘一个RIFF文件头’+‘两个列表’+‘一个可选的索引块’
第二:AVI文件="RIFF"+“大小"+"AVI"+数据
第三:第一个列表:hdr1='list'+'listSize'+'hdr1'+'avih块'+'一个或者几个'str1'子列表
avih块='ckID'+'ckSize '+'ckData'
='avih'+'Sizeof(AVIMAINHEADER)'+AVIMAINHEADER
所以第一个列表hdr1='list'+'listSize'+'hdr1'+'avih块'
='list'+'listSize'+'hdr1'+'avih'+'Sizeof(AVIMAINHEADER)'+AVIMAINHEADER
接下来就是一个或者几个'str1'子列表(有多少个流就有多少个str1列表)
每个str1子列表必须包括一个‘strh’块和一个‘strf’块
strh块='strh'+Sizeof(AVISTREAMHEADER)+AVISTREAMHEADER +'strf'+Sizeof(WAVEFORMATEX/BITMAPINFOR) +BITMAPINFOR/WAVEFORMATEX
第四:第二个列表:move='list'+'listSize'+'move'+Data
第五:索引块='idx1'+Sizeof(AVIOLDINDEX)+AVIOLDINDEX
(2)wav文件格式
第一:wav文件='一个RIFF文件头'+'两个子块'
这两个子块的ID分别为'fmt'和'data'
其中"fmt"子块由结构WAVEFORMATEX所组成,其子块的大小就是sizeofof(WAVEFORMATEX),数据组成就是WAVEFORMATEX结构中的数据。
wav文件='RIFF'+'大小‘+'wav'+两个块
wav文件='RIFF'+'大小'+wav'+'fmt'+Sizeof(WAVEFORMATEX)+'WAVEFORMATEX+'data'+'声音数据大小'+
'声音数据'