`
weiyinchao88
  • 浏览: 1194690 次
文章分类
社区版块
存档分类
最新评论

RIFF文件规范

 
阅读更多

RIFF文件规范
Peter Lee 2007-10-02

摘要:RIFF全称为资源互换文件格式(Resources Interchange File Format),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构,常见的如WAV文件、AVI文件等。RIFF可以看成一种树状结构,其基本组成单元为LIST和CHUNK,分别如树的节点和叶子。

一、RIFF文件简介
RIFF是Microsoft提出的一种多媒体文件的存储方式,不同编码的音频、视频文件,可以按照它定义的存储规则保存、记录各自不同的数据,如:数据内容、采集信息、显示尺寸、编码方式等。在播放器或者其它提取工具读取文件的时候,就可以根据RIFF的规则来分析文件,合理的解析出音频、视频信息,正确进行播放。常见的RIFF文件有WAV文件和AVI文件,它们都是遵循RIFF格式保存播放信息和播放数据的。

二、RIFF文件的组织结构
在RIFF的文件存储规则中,主要有几个重要的概念需要理解,它们是FOURCC, CHUNK, LIST。下面会对这几个概念进行详细解释。
RIFF格式是一种树状的结构,其基本组成单元为LIST和CHUNK,分别如树的节点和叶子。RIFF格式也类似windows文件系统的组织形式,windows文件系统有目录和文件,分别对应RIFF中的LIST和CHUNK。Windows文件系统中的目录可以包含子目录和文件,而文件是保存数据的基本单元,RIFF也使用了这样的结构。在RIFF文件中,数据保存的基本单元是CHUNK,可用于保存音视频数据或者一些参数信息,LIST相当于文件系统的目录,可以包含多个CHUNK或者多个LIST。
1、FOURCC
一个FOURCC(four character code)是一个占4个字节的数据,一般表示4个ASCII字符。在RIFF文件格式中,FOURCC非常普遍,LISTtype, chunkid, 起始标识等信息都是用FOURCC表示的。FOURCC一般是四个字符,如”abcd”这样的形式,也可以三个字符包含一个空格,如”abc ”这样的形式。
2、CHUNK
一个CHUNK数据块的数据结构如下:
ChunkID ChunkSize ChunkData
ChunkID是一个FOURCC,标识该CHUNK的名称,类似于windows文件系统中的文件名。 ChunkSize占用4个字节,表示ChunkData部分的数据内容大小,以字节为单位。ChunkData则是CHUNK中实质性的内容,保存的是CHUNK的具体数据内容。一个CHUNK保存的数据可以是关于声音文件的编码方式、音视频采样等信息,也可以是音频或视频数据。具体表示是哪类数据则通过ChunkID来标识。
3、LIST
一个LIST数据块的数据结构如下:
“LIST” ListSize ListType ListData
“LIST”也是一个FOURCC,而且是固定的,每个LIST都是以“LIST”为开头。ListSize占用4个字节,表示ListType和ListData两部分加在一起的大小。ListType是一个FOURCC,是对LIST具体包含的数据内容的标识。而ListData则是该LIST的数据内容区,有CHUNK和子LIST组成,它们的个数和组成次序可以是不确定的。
4、RIFF文件头
RIFF文件头的数据结构如下:
“RIFF” FileSize FileType FileData
“RIFF”也是一个FOURCC,用于标识该文件是一个RIFF格式的文件。FileSize是一个4字节的数据,给出文件的大小,但仅包括FileType和FileData两部分。FileType是一个FOURCC,用来说明文件类型,如”WAV”, “AVI”等。FileData部分表示文件的具体内容,可以是LIST也可以是CHUNK.

三、RIFF文件举例——WAV文件
WAV是waveform(波形)的所写,该声音文件是一个典型的按照RIFF规则组织的文件。一般,在一个WAV文档中,主要用到RIFF文件头和CHUNK块两个概念。图1所示为windows自带录音器所录制一段WAV语音文件的结构图。这个文件主要由三个CHUNK组成,它们的名称分别是:”fmt”,”fact和””data”,前两个CHUNK包含的是编码、回放等信息,”data”CHUNK包含的是语音数据。


图1 WAV示例文件结构图

四、RIFF解析器——RIFFspot
RIFFspot用树方式直观展现wav,avi等RIFF文件的结构信息,图2为RIFFspot截图。

图2 RIFFspot截图

RIFFspot程序下载页面:
http://blog.csdn.net/sunshine1314/archive/2007/09/22/1795739.aspx


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunshine1314/archive/2007/10/10/1817991.aspx

分享到:
评论

相关推荐

    视频文件文件头解析--avi

    AVI 格式是音频视频交错(Audio Video Interleaved)的英文缩写,它是 Microsoft 公司开发的一种符合 RIFF 文件规范的数字音频与视频文件格式。AVI 格式允许视频和音频交错在一起同步播放,支持 256 色和 RLE 压缩,...

    avi文件格式解析[参照].pdf

    AVI(Audio Video Interleaved)是 Microsoft 公司开发的一种符合 RIFF 文件规范的数字音频与视频文件格式。AVI 格式允许视频和音频交错在一起同步播放,支持 256 色和 RLE 压缩,但 AVI 文件并未限定压缩标准,因此...

    最完整的视频文件格式详解

    AVI(Audio Video Interleaved)是 Microsoft 公司开发的一种符合 RIFF 文件规范的数字音频与视频文件格式。AVI 格式允许视频和音频交错在一起同步播放,支持 256 色和 RLE 压缩,但 AVI 文件并未限定压缩标准,因此...

    riff文件格式分析软件

    RIFF格式分析工具 做音视频分析的良好工具

    RIFF文件格式

    很不错的介绍RIFF文件格式的资料,一看就明白

    基于RIFF的微震信号音频信息提取算法

    建立了一种基于RIFF标准(Resource Interchange File Format)的微震监测波形音频信息提取算法。首先对微震监测波形序列x(t)进行放大处理,将波形振幅按比例调整到[-1,1]之间,从而在不改变波形基本信息的基础上增强转化...

    RIFF格式声音文件的实现C++源代码程序小实例visual studio.net

    RIFF格式声音文件的实现C++源代码程序小实例visual studio.net

    Riff格式解析兼生成AVI的小程序

    第二部分,则是注重介绍AVI文件的格式,让我们深入了解AVI格式究竟是怎么一回事。第三部分则是利用一个程序分析一个AVI文件的格式,让我们了解AVI里各部分CHUNK或LIST的信息。相信经过这三部分的学习,即使是初学者...

    wav:读取RIFF文件的库

    波形 用于读取RIFF文件的库。

    riffdump:用于检查符合RIFF容器格式的文件的内容和元数据的cli工具

    riff 用于检查符合RIFF容器格式的文件的内容和元数据的cli工具。 免责声明:该软件是我在业余时间一直在从事的一个较大项目的一部分。 我在短时间内将其放在一起,并且随着时间的推移,我打算修补其他功能。 我在C...

    RIFF wav specification 1

    Microsoft的Riff格式的specification

    wav-format-decode.rar_VB 波形_WAV-RIFF 文件格式_wav波形_波形_读取wav

    波形文件格式解析,使用vb读取波形文件,并绘制其波形。

    RIFF-开源

    RIFF不是文件格式化程序。 RIFF是一个用Python编写的小型命令行工具,可以将文本数据文件转换为另一种文本格式(例如定界,SQL转储和固定witdh)。

    文件头和文件尾.docx

    * WAVE(.wav):文件头为 52494646,文件尾无固定结尾,标志为 RIFF。 ### 压缩文件类型 * ZIP Archive(.zip):文件头为 504B0304,文件尾无固定结尾,标志为 PK。 * RAR Archive(.rar):文件头为 52617221,...

    波形文件(.wav)读写操作

     mmioOpen( ) 打开一个RIFF文件  mmioDescend ( ) 进入块  mmioRead( ); 该取RIFF文件  mmioAscend ( ); 跳出块  mmioClose( ); 关闭PIFF文件  对于块来说,进入块和跳出块是配对的。  读取WAV文件的...

    获取AVI类型文件的信息.rar_RIFF_streaming_wav avi_视频流_音频

    由于在Windows2000下右键点击RIFF (*.avi,*.wav) 类型的文件,在摘要里没有该文件的具体信息,所以我就编了一个小程序,用来显示该类型文件的信息。具体信息主要包含视频流和音频流信息。视频流信息主要有:(1)Total ...

    RIFF USB驱动

    用RIFF BOX 驱动内容好,可惜太少了点,很好,可以使用。

    多媒体数据的封装.pptx

    RIFF是微软公司定义的一种用于管理windows环境中多媒体数据的文件格式,构造RIFF文件的基本单元叫做数据块,每个数据块包括3个部分:4字节的数据块标记(数据块的ID)、大小、数据。整个RIFF文件可以看成一个数据块...

    用系统api播放波形文件(wav)例子

     mmioOpen( ) 打开一个RIFF文件  mmioDescend ( ) 进入块  mmioRead( ); 该取RIFF文件  mmioAscend ( ); 跳出块  mmioClose( ); 关闭PIFF文件  对于块来说,进入块和跳出块是配对的。  读取WAV文件的...

    riff-wave:用于读写 WAVE 文件的库

    即兴波 描述: 用于读取和写入WAVE 文件的库。 阅读支持是有限的。 由或riff-wave本身生成的健全格式的 WAVE 文件处理得很好,但有许多文件会使其变得糟糕。 文档: 依赖项:

Global site tag (gtag.js) - Google Analytics