`
xpp02
  • 浏览: 1020671 次
社区版块
存档分类
最新评论

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 压缩,...

    第五十章 视频播放器实验STM32F4开发指南正点原子探索者STM32开发板.pdf

    * AVI 文件格式是微软开发的一种数字音频与视频文件格式,符合 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读取波形文件,并绘制其波形。

    文件头和文件尾.docx

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

    RIFF-开源

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

    波形文件(.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 驱动内容好,可惜太少了点,很好,可以使用。

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

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

    多媒体数据的封装.pptx

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

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

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

    RiffPad文件查看工具

    查看Riff 文件的工具

Global site tag (gtag.js) - Google Analytics