CN101222480B - 根据rtp包生成iso媒体文件的方法及其读取方法 - Google Patents
根据rtp包生成iso媒体文件的方法及其读取方法 Download PDFInfo
- Publication number
- CN101222480B CN101222480B CN2007100012418A CN200710001241A CN101222480B CN 101222480 B CN101222480 B CN 101222480B CN 2007100012418 A CN2007100012418 A CN 2007100012418A CN 200710001241 A CN200710001241 A CN 200710001241A CN 101222480 B CN101222480 B CN 101222480B
- Authority
- CN
- China
- Prior art keywords
- sample
- fluidisation
- media
- rtp
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种根据RTP包生成ISO媒体文件的方法,步骤如下:确定流化样本的边界;生成虚拟媒体样本的采样数据;确定虚拟媒体样本的序号;生成流化样本的数据。进一步包括按照ISO媒体文件格式的规定生成媒体文件;流媒体服务器读取生成的媒体文件。本发明还公开了一种流媒体服务器读取生成的媒体文件的方法。与现有技术相比,本发明简化了处理流程,可以不关心具体的编码格式,基本上保存了原有RTP的负载数据,可以真实地再现原有的RTP数据,而且这种方法具有良好的扩展性,可以比较容易地兼容以后扩充的编码格式。
Description
技术领域
本发明涉及一种流媒体技术,具体说,涉及一种根据RTP包生成ISO媒体文件的方法。
背景技术
在固网流媒体和移动流媒体中,需要流媒体服务器把直播编码器传下来的RTP数据包按照一定的策略转存为符合标准的ISO媒体文件格式发布,供以后点播。转存媒体文件非常关键的一个步骤就是要把RTP的负载数据,复原成原始的媒体数据和流化数据。
一般的做法是:对于具体的编码格式,按照其流化标准定义,解析RTP负载数据中的流化信息,复原出真实的媒体样本,然后生成对应的流化样本数据。RTP负载数据由流化信息和采样数据两部分组成。其中流化信息不属于媒体样本数据,所以以直接存储在媒体文件的流化样本数据中,RTP负载中的采样数据可以包括一个或多个媒体样本,或者一个媒体样本的一部分,这些数据应该保存在媒体样本的数据中,流化样本中不再保存这些数据,而是按照文件定义的结构保存指向对应媒体样本的索引。
由于现有技术中的支持的编码格式比较多,每种编码的流化标准不同,而且流化的方式比较灵活,所以根据RTP数据包负载数据复原原始的媒体样本比较繁琐,而且很难做到正确复原所有的媒体样本的问题,此外这种作法也存在扩展性问题。
发明内容
本发明所解决的技术问题是提供一种根据RTP包生成ISO媒体文件的方法,不依赖于具体的编码格式及其流化标准,不解析RTP负载数据,直接生成虚拟的媒体样本,并生成其对应的流化样本,而且具有良好的扩展性,可以比较容易地兼容以后扩充的编码格式。
技术方案如下:
根据RTP包生成ISO媒体文件的方法,步骤如下:
(1)确定流化样本的边界;
(2)生成虚拟媒体样本的采样数据;
(3)确定虚拟媒体样本的序号;
(4)生成流化样本的数据。
进一步,步骤(1)具体为:根据RTP包头的mark位确定当前的流化样本的边界。
进一步,步骤(1)中,所述流化样本包括至少一个RTP数据包。
进一步,步骤(1)中,根据RTP时戳发生的变化确定当前流化样本的边界。
进一步,步骤(2)具体为:将所述流化样本中包括的所有RTP负载数据作为虚拟媒体样本的采样数据。
进一步,步骤(2)中,所述RTP负载数据包括流化信息和采样数据。
进一步,步骤(3)具体为:对媒体样本统一编号,得到所述虚拟媒体样本的序号。
进一步,步骤(4)中,所述流化样本的数据包括RTP负载数据的入口。
进一步包括步骤(5):按照ISO媒体文件格式的规定生成媒体文件。
进一步包括步骤(6):流媒体服务器读取生成的媒体文件。
本发明所解决的另一个技术问题是提供一种流媒体服务器读取生成的媒体文件的方法,可以很好地保留原有的RTP数据格式。
技术方案如下:
(1)读取流化轨索引;
(2)根据流化轨索引到流化轨对应的数据区读取流化样本的数据,读出每个RTP包头和RTP负载数据的索引;
(3)根据RTP负载数据的索引读取对应媒体轨索引,得出对应媒体样本的数据位置和长度;
(4)根据媒体轨索引读取媒体样本的数据,生成RTP数据包。
利用本发明方法,可以不依赖于具体的编码格式及其流化标准,不解析RTP负载数据,直接生成虚拟的媒体样本,并生成其对应的流化样本,按照ISO媒体文件格式规定生成媒体文件。转存后的媒体文件可以提供给通用的流媒体服务器提供服务,流媒体服务器读取转存后的媒体文件发出的RTP负载数据与转存之前的RTP负载数据完全相同。与现有技术相比,简化了处理流程,可以不关心具体的编码格式,基本上保存了原有RTP的负载数据,可以真实地再现原有的RTP数据。而且这种方法具有良好的扩展性,可以比较容易地兼容以后扩充的编码格式。
附图说明
图1是《RFC3016》中的流化格式定义;
图2是本发明方法的流程图;
图3是媒体文件流化轨和媒体轨的恢复流程图;
图4是《RFC3640》中对RTP负载数据的定义;
图5是媒体文件流化轨和媒体轨的恢复流程图。
具体实施方式
本发明能够方便准确地把RTP数据包恢复成ISO媒体文件中媒体轨(media track)和流化轨(hint track)数据,支持通过流服务器播放。ISO媒体文件包括但不限于:ISO 14496-12中定义的基础媒体文件格式、ISO14496-14定义的MP4文件格式、ISO14496-15定义的AVC文件格式、3GPP TS26.244定义的3GPP文件格式,以及3GPP2C.S0050-0定义的3GPP2文件格式。
本发明技术方案的核心是将一个流化样本所包括的所有RTP负载数据(包括流化信息和采样数据)虚拟成一个媒体样本,流化样本的所有入口数据指向同一个虚拟媒体样本数据。这种方法生成的虚拟媒体样本和流化样本一一对应,具有相同的样本序号和间隔。
下面参照附图,对本发明的优选实施例作详细描述。
以《RFC3016》流化标准来描述虚拟媒体样本生成的过程。在《RFC3016》中对MPEG4视频编码格式的流化做了规定。
如图1所示,是比较典型的MPEG4视频的RTP结构定义。
RTP数据包由RTP头(RTP Header)和RTP负载构成,RTP头为标准RTP Header结构;RTP负载由MPEG4 VOP Header和VOP Data Fragment组成。
结合图2和图3所示,按照定义的流化格式生成一组RTP数据包。
流化过程为:
1、确定流化样本的边界。
一个流化样本包括在几个RTP数据包中,以mark位置1作为流化样本的边界。考虑到网络丢包的情况,把时戳发生跳转也作为流化样本的边界。一个流化样本包括n个(n>=1)RTP数据包。
根据RTP包头的mark位置1确定当前处理的流化样本,该流化样本包括3个RTP数据包,RTP数据包序号分别为11、12和13。
2、生成虚拟媒体样本的采样数据。
将一个流化样本中所包括的所有RTP负载数据看作一个虚拟媒体样本的采样数据。
生成的虚拟媒体样本数据为:
负载11+负载12+负载13,长度为:L1+L2+L3
等同于真实的媒体样本:VOP Header+VOP fragment(1)+VOPfragment(2)+VOP fragment(3)。
3、确定虚拟媒体样本的序号。
对媒体样本统一编号,得出此虚拟媒体样本的序号,依次累加即可。假设当前的虚拟媒体样本的序号为m。
4、生成流化样本的数据。
流化样本有n个入口,每个入口都以ISO 14496-12中定义的数据结构2形式存在,即都是指向对应媒体轨的样本数据。每个入口对应同一个虚拟媒体样本的不同数据段。
生成的流化样本有3个RTP包,每个RTP包的RTP负载数据有一个入口,为RTP负载数据入口。
第1个RTP负载数据入口:从虚拟媒体样本(序号为m)的数据0开始,长度为L1。
第2个RTP负载数据入口:从虚拟媒体样本(序号为m)的数据L1开始,长度为L2。
第3个RTP负载数据入口:从虚拟媒体样本(序号为m)的数据(L1+L2)开始,长度为L3。
对于此类RTP负载完全由媒体数据组成的情况,生成的虚拟媒体样本完全等同于真实的媒体样本,此时生成的媒体文件不但支持流化播放,还支持一般的本地播放。
5、按照ISO媒体文件格式的规定生成媒体文件。
将生成的虚拟媒体样本和流化样本分别组成媒体轨、流化轨及其索引,按照ISO媒体文件格式生成正确的媒体文件。
《RFC3640》中对AAC音频编码格式的流化做了规定。
如图4所示,对AAC音频的RTP结构作了定义。
RTP数据包由RTP头(RTP Header)和RTP负载构成,RTP头为标准RTP Header结构;RTP负载由多个AUHeader和AU数据组成。
如图5所示,按照图示中定义的流化格式生成一组RTP数据包。
流化过程为:
1、确定流化样本的边界。
一个流化样本包括在几个RTP数据包中,以mark位置1作为流化样本的边界。考虑到网络丢包的情况,把时戳发生跳转也作为流化样本的边界。一个流化样本包括n个(n>=1)RTP数据包。
根据RTP包头的mark位确定当前处理的流化样本,该流化样本包括3个RTP数据包,RTP数据包序号为21。
2、生成虚拟媒体样本的采样数据。
将一个流化轨样本中所包括的所有RTP负载数据看作一个虚拟媒体样本的采样数据。生成的虚拟媒体样本数据为:负载21,长度为:L1。其中包括了流化信息和两个真实媒体样本AU1和AU2的数据。
3、确定虚拟媒体样本的序号。
虚拟媒体样本统一编号,得出此虚拟媒体样本的序号,依次累加即可,假设当前的虚拟媒体样本的序号为m。
4、生成流化样本的数据。
流化样本有n个入口,每个入口都以ISO 14496-12中定义的数据结构2形式存在,即都是指向对应媒体轨的样本数据。每个入口对应同一个虚拟媒体样本的不同数据段。
生成的流化样本有1个RTP包,RTP包的负载数据只有一个入口,为RTP负载数据入口。
RTP负载数据入口:从序号为m的虚拟媒体样本的数据0开始,长度为L1。
对于此类RTP负载不完全由媒体数据组成,还包括某些流化信息的情况,生成的虚拟媒体样本不等同于真实的媒体样本,此时生成的媒体文件支持流化播放。
5、按照ISO媒体文件格式的规定生成媒体文件。
将生成的虚拟媒体样本和流化样本分别组成媒体轨和流化轨,及其索引,按照ISO媒体文件格式生成正确的媒体文件。
现有技术中通常的做法是:解析负载中的AUHeaderLen和每个AUHeader,分离出此RTP包中所包括的媒体样本个数和采样数据,复原媒体样本。生成的流化样本有1个RTP数据包,RTP包的RTP负载数据至少有3个入口。
其中,入口1用于保存流化信息,包括AUHeaderLen和每个AUHeader。这个入口可能有多个,根据流化信息的长度而定,每个入口最多只能保存14个字节。入口2从媒体样本(AU1的序号)的数据0开始,长度为AU1的采样数据长度。入口3从媒体样本(AU2的序号)的数据0开始,长度为AU2的采样数据长度。
如果采用的是带交织的流化方式,还需要缓冲n个RTP数据包,根据RTP的时戳和负载中的流化信息,对媒体样本进行排序,排序后才能最终确定媒体样本的序号,也才能开始生成对应的流化样本数据。由此可见,对于这种编码格式来说,采用本发明中所介绍的方法可以大大的降低实现的复杂度。
流媒体服务器读取生成的媒体文件的顺序为:
(1)读取流化轨的索引。
(2)根据索引到流化轨对应的数据区读取流化样本数据,读出每个RTP包头和RTP负载数据的索引。
(3)根据RTP负载数据的索引读取对应媒体轨索引,得出对应媒体样本的数据位置和长度。
(4)根据索引读取媒体样本数据,生成完整的RTP数据包。
由此流程可以看出,服务器不关心媒体轨数据和真实的采样数据有何直接关系,所以本发明方法可以很好地保留原有的RTP数据格式。
Claims (7)
1.一种根据RTP包生成ISO媒体文件的方法,步骤如下:
(1)确定流化样本的边界;
(2)生成虚拟媒体样本的采样数据,具体为:将所述流化样本中包括的所有RTP负载数据作为虚拟媒体样本的采样数据;
(3)确定虚拟媒体样本的序号;
(4)生成流化样本的数据,其中,流化样本有n个入口,每个入口对应同一个虚拟媒体样本的不同数据段,生成的流化样本的数据包括RTP负载数据的入口;
(5)按照ISO媒体文件格式的规定生成媒体文件,具体为:将生成的虚拟媒体样本和流化样本分别组成媒体轨、流化轨及其索引,按照ISO媒体文件格式生成正确的媒体文件。
2.根据权利要求1所述的根据RTP包生成ISO媒体文件的方法,其特征在于,步骤(1)具体为:根据RTP包头的mark位确定当前的流化样本的边界。
3.根据权利要求2所述的根据RTP包生成ISO媒体文件的方法,其特征在于,步骤(1)中,所述流化样本包括至少一个RTP数据包。
4.根据权利要求1所述的根据RTP包生成ISO媒体文件的方法,其特征在于,步骤(1)进一步包括,根据RTP时戳发生的变化确定当前流化样本的边界。
5.根据权利要求1所述的根据RTP包生成ISO媒体文件的方法,其特征在于,步骤(3)具体为:媒体样本统一编号,得到所述虚拟媒体样本的序号。
6.根据权利要求1所述的根据RTP包生成ISO媒体文件的方法,其特征在于,进一步包括步骤(6):流媒体服务器读取生成的媒体文件。
7.一种流媒体服务器读取权利要求1中方法所生成的ISO媒体文件的方法,步骤如下:
(1)读取流化轨索引;
(2)根据流化轨索引到流化轨对应的数据区读取流化样本的数据,读出每个RTP包头和RTP负载数据的索引;
(3)根据RTP负载数据的索引读取对应媒体轨索引,得出对应媒体样本的数据位置和长度;
(4)根据媒体轨索引读取媒体样本的数据,生成RTP数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100012418A CN101222480B (zh) | 2007-01-09 | 2007-01-09 | 根据rtp包生成iso媒体文件的方法及其读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100012418A CN101222480B (zh) | 2007-01-09 | 2007-01-09 | 根据rtp包生成iso媒体文件的方法及其读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101222480A CN101222480A (zh) | 2008-07-16 |
CN101222480B true CN101222480B (zh) | 2012-05-09 |
Family
ID=39632055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100012418A Expired - Fee Related CN101222480B (zh) | 2007-01-09 | 2007-01-09 | 根据rtp包生成iso媒体文件的方法及其读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101222480B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9357275B2 (en) * | 2011-09-06 | 2016-05-31 | Qualcomm Incorporated | Network streaming of coded video data |
-
2007
- 2007-01-09 CN CN2007100012418A patent/CN101222480B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101222480A (zh) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1764974B (zh) | 存储多媒体数据的存储介质和再现多媒体数据的方法和设备 | |
CN1985321B (zh) | 再现多媒体数据的方法和设备 | |
CN101977218B (zh) | 一种互联网播放文件转码方法和系统 | |
CN101802814B (zh) | 用于多媒体消息服务(mms)到视频适配的方法和系统 | |
US10469914B2 (en) | Apparatus and method for delivering and receiving multimedia data in hybrid network | |
CN104135428A (zh) | 多媒体内容调适通知的生成和传递 | |
CN1516184A (zh) | 一种多媒体数据的处理方法 | |
JP2007012112A (ja) | データ記録装置及びその方法、プログラム、記録媒体 | |
CN102163201A (zh) | 一种多媒体文件切割方法、装置及转码器 | |
US7555009B2 (en) | Data processing method and apparatus, and data distribution method and information processing apparatus | |
CN101202899A (zh) | 视音频流数据恢复iso媒体文件的方法 | |
CN107370726A (zh) | 一种用于分布式媒体文件转码系统的虚拟切片方法及系统 | |
CN101222480B (zh) | 根据rtp包生成iso媒体文件的方法及其读取方法 | |
CN101212476A (zh) | 流媒体技术中根据rtp包生成iso媒体文件的方法 | |
US8787613B2 (en) | Forensic mark insertion apparatus and method | |
CN101212475A (zh) | 处理iso媒体文件的方法 | |
CN1642261A (zh) | 一种图文和服务信息混合播放的方法 | |
CN103647970A (zh) | 一种分布式转码的音视频同步方法及系统 | |
CN104538048B (zh) | 一种音频文件的处理方法及装置 | |
CN101247519A (zh) | 一种数据存储的方法和装置 | |
CN106060656B (zh) | 基于DirectShow生成BHD文件的方法及系统 | |
JP4756848B2 (ja) | データ配信方法および情報処理装置 | |
JP2006129078A (ja) | データファイル編集方法及び装置及び制御プログラム及び記憶媒体 | |
JP2007516514A (ja) | 構造化文書の圧縮および解凍方法 | |
CN103179430A (zh) | 基于云计算的音视频内容转码方法、装置和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120509 Termination date: 20180109 |