




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/gongjun0371/blog/item/e38d28d6852e21d1a144dfb4.htmlRM/RMVB 文件格式-总结2010-05-14 16:22 RM文件格式是标准的标记符文件格式,RM文件格式把标记符块组合成头块,数据快,索引块,这些标记符块的组合方法如下:.RMF头块RealMedia File Header(RM 文件头)PROP属性头Properties(属性头)MDPR媒体属性头(可含多个)Media Properties(媒体属性头1)Media Properties(媒体属性头2)-(其他媒体属性头3n)CONT内容描述头Content Properties(内容描述头)DATA数据段(可含多个)Data Chunk Header(数据块头)Data Packets(数据包)-(其他数据包)Data Chunk Header(数据块头)Data Packets(数据包)-(其他数据包)-(其他数据段)INDX索引段(可含多个)Index Section(索引段)-(其他索引段)RM文件格式是标记符文件格式,所以块的先后次序并不确定,只有RM文件头必须是文件的第一个块。典型的RM格式文件的头段:RM文件头(必须是文件的第一块)、属性头、媒体属性头、内容描述头。在RM文件头后面,其他的头可以按任何次序出现,除了索引头以外,其他的头都必须要RM/RMVB 文件格式-.RMF(文件头) 2010-05-14 16:30每一个RM文件都以RM文件头开始,RM文件头标识文件是RMF类型,在RM文件中只有一种RM文件头,因为RM文件头的内容可能随着RMF的版本不同而改变,所以头结构里面有个版本域来指明有什么其他的额外域存在。下面的数据结构就是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; 结构中包含有如下成员: object_id,RM文件的唯一标识(“.RMF”),所有的RM文件都以这个标识开头,用32个二进制位表示;size,RM头段的大小,用32个二进制位表示;/上述结构体中五个元素都含有时,为18字节object_version,RM文件头的版本,决定结构中其他成员的取舍,用16个二进制位表示;file_version,RM文件的版本,用32个二进制位表示;num_headers,头段中RM文件头后面的包含的头的个数,用32个二进制位表示。注:num_headers具体指那些头的个数,不明,有文件该值为7,但仅包含1个PROP,3个MPPR,1个CONT,如果算上.RMF共6个;另外有文件该值为7,包含有1个PROP,3个MPPR,1个CONT,如果算上.RMF共6个,如果算上INDX(3个)则总数是9个。如图: RM/RMVB 文件格式-PROP(属性头)2010-05-14 17:01属性头 PROP属性头描述了RM文件的一般媒体属性,RM系统的组件根据属性头进行适当的配置来 处理RM文件或RM流中数据。在RM文件中只有一个属性头,下面的数据结构 就是属性头的数据存储方式:Properties UINT32 object_id; 0-3 UINT32 size;4-7 UINT16 object_version;8-9 if(object_version=0) UINT32 max_bit_rate;10 - 13 UINT32 avg_bit_rate;14 - 17 UINT32 max_packet_size;18 - 21 UINT32 avg_packet_size;22 - 25 UINT32 num_packets;26 - 29 UINT32 duration;30 - 33 UINT32 preroll; 34 - 37 UINT32 index_offset; 38 - 41 UINT32 data_offset; 42 - 45 UINT16 num_streams; 46 - 47 UINT16 flags; 48 - 49 结构中包含有如下成员:object_id,属性头唯一标识 (“PROP”),用32个二进制位表示;size,属性头大小,用32个二进制位表示;10+40字节object_version,RM文件头版本,决定结构中其他成员的取 舍,此结构中此值为零,用16个二进制位表 示; max_bit_rate,网络传输 时要求的最大比特率,用32个二进制位表示;avg_bit_rate,网络传输 时要求的平均比特率,用32个二进制位表示;max_packet_size,最 大媒体数据包的大小(以字节计算),用32个二进制位表示;avg_packet_size,平 均媒体数据包的大小(以字节计算),用32个二进制位表示;num_packets,媒体数据包 个数,用32个二 进制位表示;duration,媒体文件应该播放 的时间(以毫秒计算),用32个二进制位表示;preroll,回放之前的预留毫秒 数,用32个二进 制位表示;index_offset,索引头到 文件开始的偏移,这个值可为零,表明没有索引段,用32个二进制位表示;data_offset,数据段到文 件开始的偏移,用32个二进制位表示(注:在RM文件中可以有不止一个数据块头,这个值只表示第一个数据块头到文件开始的偏移,其他数据块头的偏移可以从数据块头中next_data_header域得到);num_streams,在主头段中 包含的全部媒体属性头(MDPR)的个数,用16个二进制位表示;flags,包含文件信息的位掩码, 用16个二进制位 表示。具体信息如表5.1,其它位应设置为零。/flags,文件中flag出现过如下 值:0009,000b 所以下述 位掩码显然不完全文件信息的位掩码表位标志描述0保存允许如果是1,就允许保存此文件到磁盘1最佳播放如果是1, 建议使用额外的缓存2实况如果是1, 表明媒体流来自实况广播图例:RM/RMVB 文件格式-MDPR(媒体属性头)2010-05-14 17:30媒体属性头描述了RM文件中每个媒体流的特定属性,RM系统的组件根据媒体属性头进行适当的配置来处理RM流中的媒体数据,RM文件中每一个媒体流有一个媒体属性头。媒体属性头的整体组成下面的数据结构就是媒体属性头的数据存储方式:Media_Properties UINT32 object_id;0 - 3 UINT32 size;4 - 7 UINT16 object_version;8 - 9 if(object_version=0) UINT16 stream_number; 10 - 11 UINT32 max_bit_rate; 12 - 15 UINT32 avg_bit_rate; 16 - 19 UINT32 max_packet_size;20 - 23 UINT32 avg_packet_size;24 - 27 UINT32 start_time;28 - 31 UINT32 preroll; 32 - 35 UINT32 duration; 36 -39 UINT8 stream_name_size;40 - 40 UINT8stream_name_size stream_name;41 - 41 UINT8 mime_type_size;42 - 42 UINT8mime_type_size mime_type;43 - 43/决定Type_Specific_Data UINT32 type_specific_len;44 - 47 UINT8type_specific_len Type_Specific_Data;48 - 51/详细说明见后文 媒体属性头结构中包含有如下这些成员:object_id:媒体属性头唯一标识,为“MDPR”;size,表明媒体属性头的大小;object_version,媒体属性头版本号;stream_number,流的标识,表明RM媒体文件中此媒体属性头代表的是哪个数据流(视频数据流或音频数据流),在数据段中的每个数据包中都包含有类似的标识以表明数据是属于哪个媒体流。当版本号为零时此成员才存在;max_bit_rate,网络上传输此媒体流所要求的最大比特率,当版本号为零时此成员才存在;avg_bit_rate,网络上传输此媒体流所要求的平均比特率,当版本号为零时此成员才存在;max_packet_size,媒体流数据包的最大容量(以字节计算),当版本号为零时此成员才存在;avg_packet_size,媒体流数据包的平均容量(以字节计算),当版本号为零时此成员才存在;start_time,开始时间(毫秒表示),用于加到数据包时间标志上,当版本号为零时此成员才存在;preroll,和start_time相反的时间尺度(毫秒表示),用于从数据包时间标志中减去的值,当版本号为零时此成员才存在;duration,流的持续时间,当版本号为零时此成员才存在;stream_name_size,流名称所占字节数,当版本号为零时此成员才存在,用8个二进制位表示;stream_name,流的名称,版本号为零时此成员才存在,大小不定;mime_type_size,表明下个成员(mime_type)所占的存储空间,版本号为零时此成员才存在,用8个二进制位表示;mime_type,和流相关的MIME形式的类型或子类型字符串,版
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遂宁市重点中学2024-2025学年高三冲刺模拟物理试题含解析
- 常熟中学2025年高三下学期模拟试题(二)物理试题含解析
- 广安职业技术学院《人文社科英语听说(下)》2023-2024学年第一学期期末试卷
- 广东省佛山市南海区重点中学2025年初三冲刺诊断考试化学试题试卷含解析
- 镇江市科技金融服务平台建设方案
- 2025年装修终止合同模板
- 市政划线施工方案
- 2025年合同权利义务转让协议
- 公共事业管理心理评估试题及答案
- 合同法分包的法律依据
- 二零二五年度汽车销售业务员劳动合同(新车与二手车)
- 护理人员中医技术使用手册(2024版)
- 设备设施风险分级管控清单
- 河北养老托育项目可行性研究报告
- 急诊医学题库含参考答案
- 《带电作业操作规范-架空配电线路机械化带电立撤杆》征求意见稿
- T-CAS 886-2024 输血相容性检测设备检测性能验证技术规范
- 公司安全生产事故隐患内部报告奖励工作制度
- 用户体验测试方法培训
- 压力性损伤安全警示教育
- 眼科诊所安全消毒规程
评论
0/150
提交评论