流媒体技术中根据rtp包生成iso媒体文件的方法

文档序号:7975660阅读:109来源:国知局
专利名称:流媒体技术中根据rtp包生成iso媒体文件的方法
技术领域
本发明涉及一种流媒体技术,具体说,涉及一种流媒体技术中根据RTP 包生成ISO媒体文件的方法。
背景技术
在固网流媒体和移动流媒体中,需要流媒体服务器把直播编码器传下来 的RTP数据包按照一定的策略转存为符合标准的ISO媒体文件格式发布, 供以后点播。转存媒体文件非常关键的一个步骤就是要把RTP的负栽数据, 复原成原始的媒体数据和流化数据。一般的做法是对于具体的编码格式,按照其流化标准定义,解析RTP 负栽数据中的流化信息,复原出真实的媒体样本,然后生成对应的流化样本 数据。RTP负载数据由流化信息和采样数据两部分组成。其中流化信息不属 于媒体样本数据,所以以直接存储在媒体文件的流化样本数据中,RTP负栽 中的采样数据可以包括一个或多个媒体样本,或者一个媒体样本的一部分, 这些数据应该保存在媒体样本的数据中,流化样本中不再保存这些数据,而 是按照文件定义的结构保存指向对应媒体样本的索引。由于现有技术中的支持的编码格式比较多,每种编码的流化标准不同, 而且流化的方式比较灵活,所以根据RTP数据包负载数据复原原始的媒体 样本比较繁瑣,而且很难做到正确复原所有的媒体样本的问题,此外这种作 法也存在扩展性问题。发明内容本发明所解决的技术问题是提供一种流媒体技术中根据RTP包生成 ISO媒体文件的方法,不依赖于具体的编码格式及其流化标准,不解析RTP
负栽数据,直接生成虚拟的媒体样本,并生成其对应的流化样本,而且具有 良好的扩展性,可以比较容易地兼容以后扩充的编码格式。技术方案如下流媒体技术中根据RTP包生成ISO媒体文件的方法,步骤如下(1) 确定流化样本的边界;(2) 生成虚拟媒体样本的采样数据;(3) 确定虚拟媒体样本的序号;(4) 生成流化样本的数据;(5) 按照ISO媒体文件格式的规定生成媒体文件;(6) 流媒体服务器读取生成的媒体文件。进一步,步骤(1)具体为根据RTP包头的mark位确定当前的流化 样本的边界。进一步,步骤(l)中,所述流化样本包括至少一个RTP数据包。进一步,步骤(l)中,所述流化样本的边界包括时戳。进一步,步骤(2)具体为将所述流化样本中包括的所有RTP负载数 据作为虛拟媒体样本的采样数据。进一步,步骤(2)中,所述RTP负载数据包括流化信息和采样数据。进一步,步骤(3)具体为将纟某体样本统一编号,得到所迷虚拟々某体 样本的序号。进一步,步骤(4)中,所述流化样本的数据包括RTP负载数据的入口 。 进一步,步骤(6)具体为(61) 读流化轨索引;(62) 根据流化轨索引到流化轨对应的数据区读流化样本的数据,读出 每个RTP包头和RTP负栽数据的索引;(63) 根据RTP负载数据的索引读取对应媒体轨索引,计算出对应媒 体样本的数据位置和长度;(64 )根据媒体轨索引读媒体样本的数据,生成完整的RTP数据包。利用本发明方法,可以不依赖于具体的编码格式及其流化标准,不解析 RTP负栽数据,直接生成虚拟的媒体样本,并生成其对应的流化样本,按照 ISO媒体文件格式规定生成媒体文件。转存后的媒体文件可以提供给通用的 流媒体服务器提供服务,流媒体服务器读取转存后的媒体文件发出的RTP 负载数据与转存之前的RTP负载数据完全相同。与现有技术相比,简化了 处理流程,可以不关心具体的编码格式,基本上保存了原有RTP的负栽数 据,可以真实地再现原有的RTP数据。而且这种方法具有良好的扩展性, 可以比较容易地兼容以后扩充的编码格式。附闺说明图l是《RFC3016》中的流化格式定义;图2是本发明方法的流程图;图3是媒体文件流化轨和媒体轨的恢复流程图;图4是《RFC3640》中对RTP负载数据的定义;图5是媒体文件流化轨和媒体轨的恢复流程图;具体实施方式
本发明能够方便准确把RTP数据包恢复成ISO媒体文件中媒体轨和流 化轨数据,支持通过流服务器播放。ISO媒体文件包括但不限于ISO 14496-12中定义的基础媒体文件格式,IS014496-14定义的MP4文件格式, IS014496-15定义的AVC文件格式,3GPP TS26.244定义的3GPP文件格式, 3GPP2C.S0050-0定义的3GPP2文件格式。本发明技术方案的核心是将一个流化样本所包括的所有RTP负载数据 (包括流化信息和采样数据)虚拟成一个媒体样本,流化样本的所有入口数 据指向同一个虚拟媒体样本数据。这种方法生成的虛拟媒体样本和流化样本 --对应,具有相同的样本序号和间隔。
下面参照附图,对本发明的优选实施例作详细描述。以《RFC3016》流化标准来描述虚拟样本生成的过程。参照

图1所示,《RFC3016》中对MPEG4视频编码格式的流化做了规定。RTP数据包由RTP头(RTP Header)和RTP负栽构成,RTP头为标准RTP Header结构;RTP负栽由MPEG4 VOP Header和VOP Data Fragment组成。结合图2和图3所示,按照定义的流化格式生成一组RTP数据包。流化过程为1. 确定流化样本的边界。一个流化样本包括在几个RTP数据包中,以mark位置1作为流化样 本的边界。考虑到网络丢包的情况,把时戳发生跳转也作为流化样本的边界。 一个流化样本包括n个(n>=l) RTP数据包。根据RTP包头的mark位置1确定当前处理的流化样本,该流化样本包 括3个RTP数据包,RTP数据包序号分别为11、 12和13。2. 生成虛拟媒体样本的采样数据。将一个流化样本中所包括的所有RTP负栽数据看作一个虚拟媒体样本 的采样数据。生成的虛拟媒体样本数据为负载11+负栽12+负栽13,长度为Ll+L2 + L3等同于真实的i某体样本VOP HeaderfVOP fragment(l)+VOP fragment(2)+VOP fragment(3)。3. 确定虛拟纟某体样本的序号。媒体样本统一编号,得出此虚拟媒体样本的序号,依次累加即可。假设 当前的虛拟々某体样本的序号为m 。4. 生成流化样本的数据。流化样本有n个入口 ,每个入口都以ISO 14496-12中定义的数据结构2 形式存在,即都是指向对应媒体轨的样本数据。每个入口对应同一个虛拟士某 生成的流化样本有3个RTP包,每个RTP包的RTP负栽数据有一个入 口,为RTP负栽数据八口。第1个RTP负栽数据入口 从媒体样本(m)的数据0开始,长度为LI 。第2个RTP负栽数据入口 从媒体样本(m)的数据LI开始,长度为L2。第3个RTP负栽数据入口 从媒体样本(m)的数据(Ll+L2)开始,长度为L3。对于此类RTP负栽完全由媒体数据组成的情况,生成的虛拟媒体样本 完全等同于真实的媒体样本,此时生成的媒体文件不但支持流化播放,还支 持一般的本地播放。5、按照ISO媒体文件格式的规定生成媒体文件。将生成的虚拟媒体样本和流化样本分别组成媒体轨和流化轨,及其索 引,按照IS(H某体文件格式生成正确的々某体文件。《RFC3640》中对AAC音频编码格式的流化做了规定。如图4所示,对AAC音频的RTP的结构作了定义。RTP数据包由RTP头(RTP Header)和RTP负载构成,RTP头为标准RTP Header结构;RTP负载由多个AUHeader和AU数据组成。《RFC3640》中对AAC音频编码格式的流化做了规定。如图5所示,按照图示中定义的流化格式生成一组RTP数据包。流化过程为1、 确定流化样本的边界。一个流化样本包括在几个RTP数据包中,以mark位置1作为流化样 本的边界。考虑到网络丢包的情况,把时戳发生跳转也作为流化样本的边界。 一个流化样本包括n个(nX)RTP数据包。根据RTP包头的mark位确定当前处理的流化样本,该流化样本包括3 个RTP数据包,RTP数据包序号为21。2、 生成虛拟媒体样本的采样数据。
将一个流化轨样本中所包括的所有RTP负栽数据看作一个虚拟々某体样 本的采样数据。生成的虚拟媒体样本数据为负栽21,长度为Ll。其中 包括了流化信息和两个真实媒体样本AU1和AU2的数据。3、 确定虚拟媒体样本的序号。虚拟媒体样本统一编号,得出此虚拟媒体样本的序号,依次累加即可, 假设当前的虛拟媒体样本的序号为m。4、 生成流化样本的数据。流化样本有n个入口 ,每个入口都以ISO 14496-12中定义的数据结构2形式存在,即都是指向对应媒体轨的样本数据。每个入口对应同一个虚拟媒 体样本的不同数据段。生成的流化样本有1个RTP包,RTP包的负栽数据只有一个入口 ,为 RTP负载数据入口。RTP负载数据入口 从序号为m的媒体样本的数据0开始,长度为Ll。对于此类RTP负载不完全由媒体数据组成,还包括某些流化信息的情 况,生成的虚拟媒体样本不等同于真实的媒体样本,此时生成的媒体文件支 持流化播放。5、 按照ISO媒体文件格式的规定生成媒体文件。将生成的虚拟媒体样本和流化样本分別组成媒体轨和流化轨,及其索 引,按照ISOi某体文件格式生成正确的媒体文件。现有技术中通常的做法是解析负载中的AUHeaderLen和每个 AUHeader,分离出此RTP包中所包括的媒体样本个数和釆样数据,复原媒 体样本。生成的流化样本有1个RTP数据包,RTP包的RTP负载数据至少 有3个入口。其中,入口 1用于保存流化信息,包括AUHeaderLen和每个AUHeader。 这个入口可能有多个,根据流化信息的长度而定,每个入口最多只能保存 14个字节。入口 2从士某体样本(AU1的序号)的数据0开始,长度为AU1的 采样数据长度。入口 3从媒体样本(AU2的序号)的数据0开始,长度为AU2 的采样数据长度。
如果采用的是带交织的流化方式,还需要緩冲n个RTP数据包,根据 RTP的时戳和负栽中的流化信息,对媒体样本进行排序,排序后才能最终确定媒体样本的序号,也才能开始生成对应的流化样本数据。由此可见,对亍 这种编码格式来说,采用本发明中所介绍的方法可以大大的降低实现的复杂度。6、流媒体服务器读取生成的媒体文件。 读取4某体文件的顺序具体如下(1) 读取流化轨的索引。(2) 根据索引到流化轨对应的数据区读流化样本数据,读出每个RTP 包头和RTP负载数据的索引。(3) 根据RTP负载数据的索引读取对应媒体轨索引,得出对应媒体样 本的数据位置和长度。(4) 根据索引读媒体样本数据,生成完整的RTP数据包。由此流程可以看出,服务器不关心媒体轨数据和真实的采样数据有何直 接关系,所以本发明方法可以很好地保留原有的RTP数据格式。
权利要求
1. 一种流媒体技术中根据RTP包生成ISO媒体文件的方法,步骤如下(1)确定流化样本的边界;(2)生成虚拟媒体样本的采样数据;(3)确定虚拟媒体样本的序号;(4)生成流化样本的数据;(5)按照ISO媒体文件格式的规定生成媒体文件;(6)流媒体服务器读取生成的媒体文件。
2、 根据权利要求1所述的流媒体技术中根据RTP包生成ISO媒体文件 的方法,其特征在于,步骤(1)具体为根据RTP包头的mark位确定当 前的流化样本的边界。
3、 根据权利要求2所述的流媒体技术中根据RTP包生成ISO媒体文件 的方法,其特征在于,步骤(l)中,所述流化样本包括至少一个RTP数据 包。
4.根据权利要求1所述的流媒体技术中根据RTP包生成ISO媒体文件的方法,其特征在于,步骤(1)中,所述流化样本的边界包括时戳.
5.根据权利要求1所述的流媒体技术中根据RTP包生成ISO媒体文件的方法,其特征在于,步骤(2)具体为:将所述流化样本中包括的所有RTP负载数据作为虚拟媒体样本的采样数据.
6、 根据权利要求1所述的流媒体技术中根据RTP包生成ISO媒体文件 的方法,其特征在于,步骤(3)具体为媒体样本统一编号,得到所述虚 拟媒体样本的序号。
7、 根据权利要求1所述的流媒体技术中根据RTP包生成ISO媒体文件 的方法,其特征在于,步骤(4)中,所迷流化样本的数据包括RTP负栽数 据的入口。
8、根据权利要求1所迷的流媒体技术中根据RTP包生成ISO媒体文件 的方法,其特征在于,步骤(6)具体为(61) 读流化轨索引;(62) 根据流化轨索引到流化轨对应的数据区读流化样本的数据,读出 每个RTP包头和RTP负栽数据的索引;(63) 根据RTP负载数据的索引读取对应媒体轨索引,计算出对应媒 体样本的数据位置和长度;(64) 根据媒体轨索引读媒体样本的数据,生成完整的RTP数据包。
全文摘要
本发明公开了一种流媒体技术中根据RTP包生成ISO媒体文件的方法,步骤如下确定流化样本的边界;生成虚拟媒体样本的采样数据;确定虚拟媒体样本的序号;生成流化样本的数据;按照ISO媒体文件格式的规定生成媒体文件;流媒体服务器读取生成的媒体文件。与现有技术相比,简化了处理流程,可以不关心具体的编码格式,基本上保存了原有RTP的负载数据,可以真实地再现原有的RTP数据,而且这种方法具有良好的扩展性,可以比较容易地兼容以后扩充的编码格式。
文档编号H04L29/06GK101212476SQ20061017226
公开日2008年7月2日 申请日期2006年12月30日 优先权日2006年12月30日
发明者王志英, 阮亚平 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1