![OGG流媒体文件格式探析论文_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/4f2175a2-c924-4c34-93ce-e7947126d6d4/4f2175a2-c924-4c34-93ce-e7947126d6d41.gif)
![OGG流媒体文件格式探析论文_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/4f2175a2-c924-4c34-93ce-e7947126d6d4/4f2175a2-c924-4c34-93ce-e7947126d6d42.gif)
![OGG流媒体文件格式探析论文_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/4f2175a2-c924-4c34-93ce-e7947126d6d4/4f2175a2-c924-4c34-93ce-e7947126d6d43.gif)
![OGG流媒体文件格式探析论文_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/4f2175a2-c924-4c34-93ce-e7947126d6d4/4f2175a2-c924-4c34-93ce-e7947126d6d44.gif)
![OGG流媒体文件格式探析论文_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/4f2175a2-c924-4c34-93ce-e7947126d6d4/4f2175a2-c924-4c34-93ce-e7947126d6d45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OGG流媒体文件格式探析论文摘要流媒体文件格式在流媒体系统中占有重要地位,设 计合理的文件格式是提高流媒体服务器工作效率最直接和 最有效的办法。该文在剖析常用流媒体系统和文件格式的基 础上,特别地对美国基金会的开源流媒体工程Ogg文件格式子项目做了深入的分析,指出Ogg格式对媒体编码数据的存储读取和传输具有简洁性,Ogg格式的映射与逆映射与媒体编码数据具有相对独立性,能够有效提高流媒体服务器的工 作效率。关键词流媒体;OGG文件格式;流服务器效率1引言流媒体是指在Internet/lntranet中使用流式传输技术的连续时基媒体,如音频、视频等多媒体文件。文件格式和传输 协议是流媒体应用的主要
2、技术。从不同的角度看,流媒体数 据有三种格式:压缩格式、文件格式、发布格式。其中压缩 格式描述了流媒体文件中媒体数据的编码、解码方式;流媒 体文件格式是指服务器端待传输的流媒体组织形式,文件格 式为数据交换提供了标准化的方式;流媒体发布格式是一种 呈现给客户端的媒体安排方式。本文所讨论的格式是指第二 种:流媒体文件格式。特别地分析了一种开源流媒体文件格 式:Ogg。它是美国基金会开发的开源流媒体工程的一个子项目,它是应其开源音/视频媒体压缩编码格式Vorbis/Theora等的存储与传输需要而设计的。本文在研究和分析已有流媒体系统的基础上,结合在研 发新的流媒体系统中的经验和教训,对流媒体文件
3、格式做系 统和深入的剖析,旨在深入理解流媒体系统和找到提高流媒 体系统工作效率的方法。2流媒体文件格式分析文件格式在流媒体系统中的重要性一个简化的流媒体系统由流媒体服务器、客户端和传输 网络组成,流媒体系统的核心是流媒体服务器。随着流媒体 技术研究的深入和流媒体应用的扩展,如何提高流媒体系统 的工作效率,主要指标体现为如何提高服务器并发媒体流的 数量,这是一个被广泛关注的课题。它取决于服务器处理每 个流的效率,决定了一个服务器能够同时为多少客户服务, 其成果不但具有理论价值,更具有极大的经济价值。图1的圆圈内标出了影响流媒体系统性能的一些主要因 素。如果对其中每个因素仔细分析判断,可以发现对于
4、一个 现有的流媒体服务器而言,能有效提高其效率的手段并不 多。例如:提升客户端、服务器端的硬件配置,只能获得性 能提高,工作效率没有得到提高;实时传输、控制协议是人 们经过多年的大量应用实践总结,由IETF因特网工程任务组确认的媒体流传输共同标准,是必须遵守的标准,是无法 轻易改变的;节目源的质量、压缩方式等因素对于服务器而 言是不可预知或者是不可控制的。那么在这些客观因素无法 改变的情况下,优化流媒体文件格式为提高流媒体服务器的 工作效率提供了可能。流媒体文件格式能够对服务器的工作效率产生影响是由流服务器工作方式的特点决定的。流服务器的主要工作任 务是通过直播或点播的方式向用户提供流媒体内容
5、,它输入 磁盘上存储的流媒体文件,然后进行实时传输协议圭寸装后再 通过IP网络输出给客户端。 简言之,其工作流程为3步:读 取、封装、发送。由于每发送一个媒体流都需要启动一个流 程,并且所有流程都需要实时进行,可见当一个流服务器并 发几千个流时,每个流程工作效率的细小区别都会对服务器 工作效率造成很大的影响。图1简化的流媒体系统结构及其影响因素每个工作流程的输入是流媒体文件,输出是媒体数据 包。输入、输出数据的内容是没有改变的,都是多媒体压缩 码流,两者之间只有格式的不同,所以从数据流角度来看, 服务器的主要工作其实是一个格式转换的过程。由于媒体数 据包的格式是由传输协议事先确定的,那么流媒体
6、文件格式 是否能够方便服务器读取、封装就决定了服务器的工作量。流媒体文件格式的分析与比较流媒体文件在流媒体系统中具有重要地位,文献2分析 了具有代表性的 QuickTime 电影文件(mov)和 MicrosoftMediaServer的电影文件,对其文件格式和相关环节 做了深入剖析。发现这些文件格式对服务器工作效率存在如 下负面影响:(1) 磁盘控制器访问吞吐量低。每次封装一个媒体数据包需要读取一帧数据,一般每帧大小为1K左右,每秒需要25帧, 这造成对磁盘频繁访问,吞吐量低。(2) 对于QuickTimeMov文件格式,媒体数据没有经过预处理,服务器每发一个包都需要从hint轨中获得打包时
7、需要的相关参数,实时读取媒体数据、封装、发送,对CPU占用率很大。(3) 对于 MicrosoftAsf文件格式,媒体数据在 Packet中时 已经是mms包的半成品,服务器节省了截取媒体流的时间 ,但 仍然需要服务器选择媒体流来组织 mms包。并且,Packet中 的数据不全是需要发送的数据 ,浪费了内存空间和磁盘 10时 间。文献3提出了一种新的流媒体文件格式NMF,该格式具有如下基本结构(如图2所示)和特点:图2NMF文件结构NMF流媒体文件由头文件和体文件构成。头文件主要包含文件描述、媒体描述、流描述等必要的信息;体文件包含 全部的媒体数据。一个 NMF由一个头文件和若干个体文件构成,
8、同一媒体源不同的流(不同的传输协议或不同的码速率)存放在不同的体文件中,此结构用来实现多码速率切换/智能流技术和兼容现有的流媒体播放器。头文件和体文件的功能 划分原则是:当服务器和客户建立连接时(在发送媒体数据之 前),只需要从头文件中读数据;当服务器和客户建立连接后,只需要从文件体中读取媒体数据。这样,服务器中各个模块间耦合减少,效率提高。由于头文件和体文件的相对独立,使文件具有很强的可扩展性,并且使得利用硬件进行封装、发送也 成为可能。NMF的核心思想就是充分利用预处理过程,将原始媒体文件组织成方便服务器处理的格式,减少实时封装和发送时的工作量,同时增加文件结构的兼容性和可扩展性,以提高流
9、服务器的工作效率,增加并发流数量。30gg文件格式结构文件格式在流媒体系统中的重要性逻辑流以页为单位组织链接成物理流,如图3所示:图3Ogg文件的组织形式图3中的文件链接了两个物理流, A、B和C三个逻辑 流组成一个物理流,逻辑流D单独是一个物理流。一个物理 流中的所有逻辑流的 bos_page都必须在物理位置上相邻, 如 图3所示*A*、*B*、*C*三个bos_page的位置。bos: beginningofstream;eos: endofstream 映射到Ogg格式的媒体(如vorbis音频,Theora视频)有相关详细定义,这些定义使得这些媒体之间有更具体的约束关 系。Ogg本身并
10、没详细说明多个并发媒体流之间的时间关系, 这需要并发媒体流在映射到Ogg格式的时刻来指定,通常他们之间的交错关系是按他们产生的时间先后顺序来排列。页结构每个页之间相互独立,都包含了各自应有的信息,页的 大小是可变的,通常为4K - 8KB ,最大值不能超过 65307bytes。页头部格式如图 4。页头部各字段域详细说明参见文献4:。capture_pattern:模式捕获域,4个字节,表示页的开始, 其作用是分离 Ogg封装格式还原媒体编码时识别新页的作 用,它包含了四个幻数:0x4f O 0x67 g 0x67 g stream_structure_version:1个字节,表示当前 Og
11、g文件格式的版本,目前为0。图4Ogg页头部结构h eader_type_flag:头部类型标识,1个字节。标识当前页具体类型。其设置分三种情况:*bit0x01若已设置,页包含的媒体编码数据于前一页同 属于一个逻辑流的同一packeto若未设置,本页是一个新的packeto*bit0x02设置,表示逻辑流的第一个页 bos。未设,不是 第一个页。*bit0x04设置,表示逻辑流的最后一页 eos。未设,不是 最后一页。granule_position:8个字节,包含了媒体编码相关参数 信息。对于音频流,包含了到本页为止逻辑流在PCM中采样编码的总次数。对于视频流,包含了逻辑流到本页为止视 频
12、帧编码的总次数。其值若为-1,则说明到此页为止,逻辑流的packet还未结束。bitstream_serial_number:流序列号, 4字节,表示本页 所属逻辑流与其他逻辑流相区别的序号。(6)page_sequence_number表明了本页在逻辑流中的序列 号,Ogg解码器能据此识别有无页丢失。CRC_checksum:循环冗余校验码校验和,4字节域,包含页的32bitCRC校验和,它的产生多项式为:0x04c11db7。 number_page_segments:1 字节,给定了在本页的 segment_tabale域中所出现的segement个数,其最大值为255segments(
13、每片255个字节),即页头部第26个字节的取值 范围为:0x00-0xff(O-255)。页最大物理尺寸为 65307bytes,小于 64KB。segment_table:逻辑流中的每个 packet每个 segment长 度的取值,这些值以 segment出现的先后顺序依次排列。此域的字节数为 number_page_segments域所表示的数字。bytevalue270xff(255)n- 10xff(255)n0x00-0xfe(0-254,n=num_segments+26)页头部长度的字节数:header_size=27+number_page_segmentsByte即页头部长
14、度为上述9个域名所表述占据的字节数之和。页的总长度:page_size=header_size+sum(lacing_values:1number_page_segments)Byte即页的总长度为页头部长度加上紧随其后的若干segments长度之和。封装处理过程(1)音视频编码在提供给Ogg封装之前是以具有包边界的“Packets形式呈现的,包边界依赖于具体的编码格式。如图5所示。将逻辑流的各个包进行分片segmentation,每片大小固定为255Byte,但包的最后一个segment通常小于255字节因为packet的大小可以是任意长度,由具体的媒体编码器来决定。(3) 进行页封装,每页
15、都被加上页头,每页的长度可不等, 由具体情况而确定。页头部segment_table域告知了“ lacing_value值的大小,即页中最后一个segment的长度。一次处理一个 packet,此packet被圭寸装成一个或多个page页;下一个packet必须用新的page开始封装,由首部字段 域header_type_flag的设置规定来表示。(4) 多个已被页格式封装好的逻辑流按应用要求的时序 关系合成物理流。文件的映射与逆映射用Ogg文件格式封装好压缩编码媒体流可用于存储或 直接传输,这是因为Ogg比特流格式提供了封装/同步、差错同步捕获、寻找标记以及其它足够的信息使得这种分散开 的数
16、据能够完全地还原为封装之前的具有包边界“ packet形式的压缩编码媒体流,恢复到这种原来媒体流就具有的包边 界形式不需要依赖于针对压缩编码的解码器。也就是说Ogg映射与逆映射和媒体流的压缩编码、解码具有相对独立性。图5Ogg封装流程示意图Ogg文件需要解封装的情况有两种:播放器要对媒体流 解码之前;对媒体流进行RTP/UDP传输之前。解封装的过程就是ogg逆映射过程,即还原为具有包边界“packet形式的媒体流,同时以预先填充好了的RTP首部字段与相应一段媒体数据捆绑,形成 RTP封包。此过程便是媒体流从Ogg格式到RTP格式的转换过程。将以packet为单元的媒体流映射为以page为单元的
17、Ogg格式比特流,其中间经过了 segment的划分和重组环节,但 方便了对媒体流的存储与传输。对源缓冲区媒体数据(packet)的操作,需建立几个中间环节的数据结构,只需将切割的媒 体数据在内存移动一次,操作指向媒体数据的指针便能达到 媒体数据迁移到目的缓冲区的意图,其过程可用两个函数转换来表述:ogg_stream_packetin() og_stream_pageout()。将 Ogg 格 式比特流逆映射还原为packets媒体流,以备播放解码或以RTP圭寸装进行 UDP传输。其中间环节是把 page中的segment 单元数据按顺序重组为packet,同样媒体数据在内存中的复制只有一次
18、,其过程可用三个函数转换来表述:ogg_sync_pageout og_stream_pagein ogg_stream_packetout,媒体数据复制发生在第一个函数ogg_sync_pageoutOgg映射与逆映射的功能都体现在ogg函数库中,当前最新版本为4结束语Ogg格式是在吸收其它流媒体文件格式优点的基础上针对具有“packet包边界形式的媒体流而制定的利于其存储和传输的开源流媒体文件格式,在icecast流服务器的传输中得到了很好的应用;根据icecast官方网站公布其测试结果,在GB主干网的条件下对Oggvorbis音频传输的客户端并发流可达14000个。更为重要的是,作为流媒体技术的核心环节, 大多数流媒体文件格式至今仍没有完全公开,且受专利保 护。要在流媒体技术和应用飞速发展的今天占得一席之地,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于分红合同范例
- 买房按揭买卖合同范例
- 个人项目包干合同范例
- 光伏路灯安装劳务合同范例
- 2024年01月江苏2024年南京银行无锡分行长期社会招考笔试历年参考题库附带答案详解
- 公司小股东合同范例
- 2024年01月新疆2024中国民生银行乌鲁木齐分行诚聘英才笔试历年参考题库附带答案详解
- 人造草坪回收合同范例
- 交易合作合同范例
- 专利咨询辅助合同范例
- 重大版小学英语四年级下册期末测试卷
- 2024年1月高考适应性测试“九省联考”英语 试题(学生版+解析版)
- 一人出资一人出力合伙协议范本完整版
- 2022年北京海淀区高三一模物理试题和答案
- 施工工法的编写与申报(完整版)
- 歇后语大全500条
- 2024年北京法院聘用制审判辅助人员招聘笔试参考题库附带答案详解
- 2024浙江省农发集团社会招聘笔试参考题库附带答案详解
- 慢性压力对身体健康的影响与调理方法
- 杏花乡卫生院岗位说明样本
- 《白蛇缘起》赏析
评论
0/150
提交评论