在解析RM 文件时我们首先需要了解RM 文件的格式
在下面的内容中将介绍 RM 文件的格式
RM 文件格式(RealMedia File Format 简称 RMFF),文件单元使用四字符编码
编码是 32 位的
RMF 的基本单元是 chu nk
是数据的逻辑单元
每个 chu nk 包含: 1
四字符编码的单元标识符; 2
每个 chu nk 的32 位的数据; 3
RMFF 的标签 RMFF 的标签由一个头单元,一个数据单元和一个引导单元组成
在头部中包括一下单元:RM 的文件头,属性头,媒体属性头,内容描述头
RM 文件头: 每个RM 文件都是以RM 文件头开始的
RealMedia_File_Header { UINT32 object_id; UINT32 size; UINT16 object_version ; if ((object_version == 0) || (object_version == 1)) { UINT32 file_version; UINT32 num_headers; } } RMFHeader 的结构体 由于 RMFH 的内容要根据 RMFF 的版本来改变,所以头的结构体有一个版本信息为了扩展方便
object_id: RMF 唯一的ID 号
是32 位的无符号整型
相当于文件的标识符
size: RM 头的大小
32 位的无符号整型
object_version: RMFH 对象的版本
16 位的无符号整型
所有文件依照这个规定有一个object_version 是0 或 1
file_version: 0 或 1
num_headers: 在头部中头的数量
32 位无符号整型
属性头: 描述 RMF 的一般媒体属性
RM 系统成员通过这个对象来配置如何处理 RMF 中或者流中的数据