RIFF文件规范

原创 2007年10月10日 10:42:00
  
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。
1FOURCC
一个FOURCC(four character code)是一个占4个字节的数据,一般表示4个ASCII字符。在RIFF文件格式中,FOURCC非常普遍,LISTtype, chunkid, 起始标识等信息都是用FOURCC表示的。FOURCC一般是四个字符,如”abcd”这样的形式,也可以三个字符包含一个空格,如”abc ”这样的形式。
2CHUNK
一个CHUNK数据块的数据结构如下:
ChunkID ChunkSize ChunkData
ChunkID是一个FOURCC,标识该CHUNK的名称,类似于windows文件系统中的文件名。 ChunkSize占用4个字节,表示ChunkData部分的数据内容大小,以字节为单位。ChunkData则是CHUNK中实质性的内容,保存的是CHUNK的具体数据内容。一个CHUNK保存的数据可以是关于声音文件的编码方式、音视频采样等信息,也可以是音频或视频数据。具体表示是哪类数据则通过ChunkID来标识。
3LIST
一个LIST数据块的数据结构如下:
“LIST” ListSize ListType ListData
“LIST”也是一个FOURCC,而且是固定的,每个LIST都是以“LIST”为开头。ListSize占用4个字节,表示ListType和ListData两部分加在一起的大小。ListType是一个FOURCC,是对LIST具体包含的数据内容的标识。而ListData则是该LIST的数据内容区,有CHUNK和子LIST组成,它们的个数和组成次序可以是不确定的。
4RIFF文件头
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
 
<script type="text/javascript"> google_ad_client = "pub-7168982058404735"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel = ""; google_color_border = "C3D9FF"; google_color_bg = "FFFFFF"; google_color_link = "3D81EE"; google_color_text = "000000"; google_color_url = "008000"; google_ui_features = "rc:0"; google_language = 'zh-CN'; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

RIFF文件格式

1.简介 RIFF全称为资源互换文件格式(Resource Interchange File Format),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件格式,RIFF文件所包含...
  • Beyond_cn
  • Beyond_cn
  • 2015年01月07日 19:55
  • 924

RIFF及其WAVE数据格式

RIFF及其WAVE数据格式
  • u014646950
  • u014646950
  • 2016年04月28日 14:04
  • 676

riff文件格式分析软件

  • 2012年07月28日 17:24
  • 348KB
  • 下载

RIFF文件是什么

RIFF全称为资源互换文件格式(ResourcesInterchange FileFormat),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构,RIFF文件所包含的数据类型由该...
  • zxm317122667
  • zxm317122667
  • 2017年12月07日 22:14
  • 35

RIFF文件简介

音频处理基础知识: ------------------------------------------------------------ RIFF 简介: -----------------...
  • hejinjing_tom_com
  • hejinjing_tom_com
  • 2014年06月26日 09:10
  • 1164

RIFF文件格式

1. 简介 RIFF全称为资源互换文件格式(ResourcesInterchange FileFormat),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构,RIFF文件所...
  • coloriy
  • coloriy
  • 2015年07月28日 10:56
  • 1694

AVI RIFF 格式说明

AVI RIFF 格式说明 收藏  AVI RIFF Format                     Clean  080830 晚文件包含3部分,2个LIST(必须包括) + 1个索引(可选...
  • jueqing007
  • jueqing007
  • 2011年02月22日 15:47
  • 2115

RIFFspot.exe

  • 2012年05月04日 07:52
  • 32KB
  • 下载

RIFF和WAVE音频文件格式

RIFF file formatRIFF全称为资源互换文件格式(Resources Interchange File Format),是Windows下大部分多媒体文件遵循的一种文件结构。RIFF文件...
  • BrookIcv
  • BrookIcv
  • 2016年10月13日 18:43
  • 532

RIFF文件规范

RIFF文件规范 Peter Lee 2007-10-02   摘要:RIFF全称为资源互换文件格式(Resources Interchange File Format),RIFF文...
  • coloriy
  • coloriy
  • 2015年07月28日 11:00
  • 341
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RIFF文件规范
举报原因:
原因补充:

(最多只允许输入30个字)