一种多媒体数据的处理方法技术

技术编号:3063735 阅读:143 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多媒体数据的处理方法,该方法将原始媒体数据封装为媒体头文件和媒体体文件,在媒体文件头中存储有文件信息、媒体信息、流信息、流索引信息;在媒体文件体中,存储依次排列的不同的流数据块,每个流数据块含有媒体数据包及媒体数据包处理指令,这样,在流媒体播放时,首先通过媒体头文件解析得到流数据块,然后分批、顺序读取该码流数据块中的媒体数据包及其处理指令,根据媒体数据包的处理指令将媒体数据包发送到用户主机播放,直到结束;上述方案能够提高媒体数据的处理效率,提高媒体服务器的处理性能,适合大容量多媒体数据播放时的速度需求。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及多媒体数据的处理方法
技术介绍
目前,在网络上处理音视频等多媒体信息主要有下载后处理和流式处理两种方式。为适合上述多媒体信息的流式处理,多媒体数据需要经过压缩和编码,使之变成流式文件格式,在播放时,多媒体文件中的数据以流式方式传输到用户计算机再进行播放,即多媒体文件的数据由音视频服务器向用户计算机连续、实时传送,用户不必等到整个多媒体文件全部下载完毕即可进行播放。播放的同时,文件的剩余部分数据将在后台从服务器内继续下载。为使多媒体文件的数据在网络上边下载边播放,需要将多媒体数据压缩成媒体文件,再编码成流式文件,且在编码时加入一些附加信息,如计时、压缩和版权信息。由于多媒体文件的流式处理方式使多媒体数据播放时的启动延时大大缩短,而且不需要太大的缓存容量,因此是一种较好的多媒体数据的处理方式。目前处理多媒体数据的流媒体文件格式主要有ASF(微软公司的媒体文件格式)、MP4(MPEG4标准的媒体文件格式)等多种,对于MP4文件格式,参考图1,其中文件的moov域存放mp4文件的头信息,包括媒体数据的编码、解码描述信息,媒体数据的索引信息,媒体数据的封装信息等;mdat存放媒体数据,即通过编码算法压缩的媒体数据。在流媒体播放时,流媒体服务器必须先从磁盘打开媒体文件,然后解析媒体文件的头部分,由于媒体文件的头包含媒体数据索引信息,媒体服务器根据媒体数据索引信息读取媒体数据,然后把媒体数据打包成特定协议数据包,再通过流传输协议在特定的时间发送出去,客户端播放器收到媒体数据进行解码播放。由于媒体服务器对于每个用户的点播请求,都要重复以上的过程,即解析文件头,从文件头获取封装信息和索引信息,根据索引信息,读取媒体数据,根据封装信息封装媒体数据,通过流传输协议发送出去。按照上述MP4的多媒体数据的处理方式,在播放多媒体文件时,需要频繁地从磁盘系统读取数据,然后根据不同的媒体类型封装成协议数据包,导致媒体服务器处理多媒体数据的效率不理想。如果采用ASF文件格式处理多媒体数据,参考图2,由于ASF把不同码流的数据都交织放在数据对象(Data Object)中,这样当用户点播一个码流时,媒体服务器需要读取所有码流的数据,而实际只有一个码流的数据是系统需要的,这样由于不同码流的数据包交织在一起,在每次输入输出数据操作时,都会多次读取很多冗余的数据,这必然导致媒体服务器处理多媒体数据的效率的低下。因此,现有的多媒体数据的处理方法尤其不适合大容量多媒体数据的播放。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种高效的多媒体数据的处理方法,该方法能适合大容量多媒体数据播放时的速度需求。为达到上述目的,本专利技术提供的多媒体数据的处理方法,包括将原始媒体数据封装为媒体头文件和媒体体文件,在媒体文件头中存储有流媒体文件信息;在媒体文件体中,存储有流数据块,每个流数据块含有媒体数据包及媒体数据包处理指令;流媒体播放时,首先通过媒体头文件解析得到流描述信息,然后读取媒体文件体的流数据块中的媒体数据包及其处理指令,根据媒体数据包的处理指令将媒体数据包发送到用户主机播放,直到结束。在媒体文件体中存储有流数据块具体是指将不同特性的流数据块存储于所述文件体的不同部分。同一特性的流数据块在媒体文件体中依次排列存储。所述流数据块的特性具体是指码速率或同一节目源中不同的媒体格式。所述在媒体文件头中存储的流媒体文件信息包括媒体信息、流信息及流索引信息。本专利技术设置下述结构的媒体文件头(HMF Header)用于媒体头文件的封装所述媒体文件头,包括至少一个对象(Object),分别用于存储文件信息、媒体信息、流信息、流索引信息;所述对象包括对象数据域,用于存储对象的具体内容。所述对象数据域存储的数据类型包括HMF文件头对象(HMHD)、HMF文件描述对象(HMFD)、HMF文件媒体描述对象(HMMD)、HMF文件流描述对象(HMSD)、流索引表对象(STTB)和扩展信息对象(INFO)。所述对象还包括对象标识和对象尺寸域,其中对象标识,用于说明对象数据域存储的数据类型;对象尺寸,用于说明整个对象的大小。本专利技术设置下述结构的媒体文件体(HMF Body)用于媒体体文件的封装所述媒体文件体包括至少一个流数据块,用于存储流数据;所述流数据块包括至少一个媒体数据块(Mage),用于分块存储流数据; 所述媒体数据块,包括媒体块头(Mage Header)和媒体块体(MageBody),分别用于存储媒体的管理信息和媒体数据;所述媒体块头,包括媒体类型、协议类型、播放时间、媒体包数量和指令表域,其中媒体类型,用于标识媒体体中存储的数据类型;协议类型,用于标识传输媒体数据使用的传输协议;播放时间,用于说明本媒体体数据的播放时间;媒体包数量,用于说明本媒体体中的媒体数据包的数量;指令表,用于存储与媒体数据包相对应的媒体数据包的处理指令;所述媒体块体,包括名称、长度和数据域,用于存储媒体数据包(Packet),其中名称,用于存储媒体包的名称;长度,用于存储媒体报的长度;数据域,用于存储媒体数据。上述指令表包括偏移量、时间戳、指令和标志域,其中偏移量,用于指明媒体块体(Mage Body)中数据包(Packet)的位置;时间戳,用于指明Mage Body中数据包的播放时刻;指令,用于指明Mage Body中每个数据包的处理方式;标志,用于标识Mage Body中每个数据包的关键帧等信息。上述媒体块头还包括版本、媒体体尺寸和媒体头尺寸域,其中版本,用于标识媒体体的版本信息;媒体体尺寸,用于说明媒体体的大小;媒体头尺寸,用于说明媒体头的大小。本专利技术通过下述方法解析媒体头文件得到码流数据块首先根据流索引表对象(STTB)和用户点播请求的流标识(ID)获取流对应的流描述对象(HMSD),再根据HMSD信息,获取流描述信息,通过流描述信息获取该流对应的媒体数据在文件的偏移量和流关键帧的索引,从而得到码流数据块。按照下述方法分批、顺序读取该码流数据块中的媒体数据包及其处理指令将媒体数据包发送到用户主机播放获得播放起始帧的媒体块(Mage)在媒体体文件的偏移量,然后根据上述偏移量读取媒体体文件中对应的多个媒体块(Mage),再根据读取的媒体块的媒体块头(MageHeader),获取媒体块头中的指令表,根据指令表获取媒体数据包(Packet)在Mage中的偏移量(offset),以及该媒体数据包的处理指令(instruction),最后根据上述指令发送预封装的数据包;当发送完多个Mage后,再顺序读取后面的多个Mage,做同样的处理,直到收到用户的停止播放请求或者文件播放结束。本专利技术将原始媒体数据封装为媒体头文件和媒体体文件,在媒体文件头中存储有文件信息、媒体信息、流信息、流索引信息;在媒体文件体中,存储依次排列的不同的流数据块,并且每个流数据块含有媒体数据包及媒体数据包处理指令。由于对媒体数据进行预封装时,也同时预封装了媒体数据包的处理指令,即流式传输指令,这样,媒体服务器在进行流式服务时,可以从磁盘直接读取到媒体数据和处理指令,进而可以通过处理指令发送媒体数据包,提高媒体服务器性能。另外,采用本专利技术提供的数据结构对流媒体数据进行预封装,而且,本专利技术通过将不同特性本文档来自技高网
...

【技术保护点】
一种多媒体数据的处理方法,包括:将原始媒体数据封装为媒体头文件和媒体体文件,在媒体文件头中存储有流媒体文件信息;在媒体文件体中,存储有流数据块,每个流数据块含有媒体数据包及媒体数据包处理指令;流媒体播放时,首先通过媒体头文件 解析得到流描述信息,然后读取媒体文件体的流数据块中的媒体数据包及其处理指令,根据媒体数据包的处理指令将媒体数据包发送到用户主机播放,直到结束。

【技术特征摘要】

【专利技术属性】
技术研发人员:余祥鑫
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利