CN101984619A - 一种流媒体业务的实现方法及系统 - Google Patents
一种流媒体业务的实现方法及系统 Download PDFInfo
- Publication number
- CN101984619A CN101984619A CN2010105118590A CN201010511859A CN101984619A CN 101984619 A CN101984619 A CN 101984619A CN 2010105118590 A CN2010105118590 A CN 2010105118590A CN 201010511859 A CN201010511859 A CN 201010511859A CN 101984619 A CN101984619 A CN 101984619A
- Authority
- CN
- China
- Prior art keywords
- http streaming
- partitioning
- rail
- data
- hint
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种流媒体业务的实现方法及系统,所述方法包括:获取媒体码流,将其分段存储为ISO文件,并增加HTTP Streaming提示轨;其中,所述HTTP streaming提示轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。采用本发明技术方案,可以帮助运营商节约存储空间,降低内容管理的复杂度,节约运营成本;而且,对于用户来说,可以减少内容下载的数据量,更有效的利用带宽,带来更好的用户体验。
Description
技术领域
本发明涉及流媒体业务技术领域,更具体地,涉及一种流媒体业务的实现方法及系统。
背景技术
传统的流媒体业务一般都是通过RTSP(Real Time Streaming Protocol,实时流传输协议)/RTP(Real-time Transport Protocol,实时传输协议)的方式来实现,可以提供比较好的实时性体验。但是由于RTSP/RTP方式固有的复杂性,以及在穿越NAT(Network Address Translation,网络地址转换)/防火墙时存在的问题,近两年又发展出通过HTTP(Hyper Text TransferProtocol,超文本传输协议)方式来提供流媒体服务,即HTTP Streaming(流)业务。
由于HTTP协议从本质上来说,属于文件传输协议,并不适合实时的流媒体传输。所以HTTP Streaming业务中,将节目内容分成很多的小片段,例如10秒钟一个片段。然后通过一个播放列表描述文件,将这些片段组织在一起。播放列表文件中,描述了这些片段的URL(Uniform/Universal ResourceLocator,统一资源定位符)、时长、属性(例如不同码率)、时间关系等。客户端点播节目内容时,首先下载这个播放列表文件,然后根据列表文件中的描述,下载需要的媒体片段,然后在本地播放。
由于HTTP Streaming业务中,采用的媒体片段时长都很短,如果每个媒体片段作为一个单独的文件存在的话,那么对于1个小时的节目,其媒体片段至少就有360个文件。如果再考虑多码率的情况,那么这个文件数目就更多了。这样巨大的文件数目对于内容管理来说,会造成很大的问题。
基于上述原因,目前很多应用中都利用了ISO(ISO14496-12标准定义的文件格式)文件格式中的movie fragment(电影分段存储单元)结构(ISO14496-12标准中定义的结构,包含moofbox和相应的mdat box)来实现虚拟分段的效果。即一个movie fragment就对应一个媒体分段,客户端通过指明字节范围的方式,下载movie fragment,然后在本地播放。例如3GPP(3rd generation partnership project,第三代合作伙伴计划)R9中就是采用的这种方式。
由于ISO文件本身也可以同时用于RTSP/RTP方式的流媒体业务,一般是通过在ISO文件中,对相应的媒体轨增加RTP hint(提示)轨的方式,然后RTSP/RTP流服务器通过读取RTP hint轨的信息,将媒体轨数据转换成RTP包发送给客户端。也就是说,只要在支持movie fragment的ISO文件中,再增加RTP hint轨的相关信息,那么同一个文件,将可以既用于HTTPStreaming业务,也可以用于RTSP/RTP流媒体业务。
但是,现有技术中存在如下问题:由于RTP hint轨的信息和数据也包含在movie fragment中,所以对于HTTP Streaming的客户端来说,下载moviefragment时,必然会将这些数据也一并下载下来。而这些数据对于本地播放来说,是没有任何用处的,因而占用了带宽和本地存储空间,造成了资源的浪费。
发明内容
本发明解决的技术问题是提供一种流媒体业务的实现方法及系统,能够减少内容存储的空间占用和内容管理的复杂度。
为解决上述技术问题,本发明提供了一种流媒体业务的实现方法,所述方法包括:
获取媒体码流,将其分段存储为ISO文件,并增加超文本传输协议流(HTTP Streaming)提示(hint)轨;
其中,所述HTTP streaming hint轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。
进一步地,所述相关参数包括:所述HTTP streaming hint轨的样本(sample)数据;
所述HTTP streaming hint轨的sample数据包含从媒体分段中提取构造出符合HTTP streaming传输格式的数据的指示信息。
进一步地,所述指示信息至少包括:引用媒体轨数据的位置及长度、需要构造的数据及长度,和填充数据。
进一步地,HTTP streaming服务器在读取所述ISO文件时,通过读取所述HTTP streaming hint轨的sample数据包含的所述指示信息,提取相应的媒体轨数据,并将提取的媒体轨数据组装成符合HTTP streaming传输格式的媒体分段,返回给客户端。
进一步地,存储所述ISO文件后,所述方法还包括:
生成与所述ISO文件相匹配的播放列表描述文件;
所述播放列表描述文件包含每个媒体分段的统一资源标志符(URL),所述URL中包含:ISO文件名和媒体分段标识。
进一步地,所述HTTP streaming服务器根据收到的客户端发送的HTTPURL,返回相应的播放列表描述文件;
所述客户端根据所述播放列表描述文件,找到相应时间的媒体分段的URL,向所述HTTP streaming服务器发起服务请求;
所述HTTP streaming服务器根据收到的所述服务请求中的媒体分段的URL,找到HTTP Streaming hint轨,进行媒体数据的提取和组装后,返回给所述客户端。
本发明还提供了一种流媒体业务的实现系统,包括内容制作子系统,所述内容制作子系统进一步包括:
媒体码流获取装置,用于获取媒体码流;
文件存储装置,用于将所述媒体码流获取装置获取的媒体码流分段存储为ISO文件;
提示轨添加装置,用于对所述ISO文件增加HTTP streaming hint轨,其中所述HTTP streaming hint轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。
进一步地,所述提示轨添加装置进一步用于,在所述HTTP streaming hint轨的sample数据中,包含从媒体分段中提取构造出符合HTTP streaming传输格式的数据的指示信息。
进一步地,所述系统还包括HTTP streaming服务器和客户端,
通过读取所述HTTP streaming hint轨的sample数据包含的所述指示信息,提取相应的媒体轨数据,并将提取的媒体轨数据组装成符合HTTPstreaming传输格式的媒体分段,返回给客户端。
进一步地,所述内容制作子系统还包括描述文件生成装置,其中:
所述描述文件生成装置用于,生成与所述ISO文件相匹配的播放列表描述文件,所述播放列表描述文件包含每个媒体分段的URL,所述URL中包含:ISO文件名和媒体分段标识;
所述HTTP streaming服务器还用于,收到所述客户端发送的HTTP URL时,返回相应的播放列表描述文件;收到所述客户端发送的媒体分段的URL时,找到HTTP Streaming hint轨,提取媒体数据并组装成相应的媒体分段后,返回给所述客户端;
所述客户端用于,根据所述播放列表描述文件,找到相应时间的媒体分段的URL,向所述HTTP streaming服务器请求服务,并接收所述HTTPstreaming服务器返回的媒体分段。
根据本发明提供的上述的方法及系统,利用同一个ISO文件,同时给HTTP Streaming业务和RTSP/RTP流媒体业务提供服务,以减少内容存储的空间占用和内容管理的复杂度;同时又避免HTTP Streaming客户端下载movie fragment时,将不必要的数据信息一并下载,占用带宽和本地存储空间的问题。
采用本发明技术方案,可以帮助运营商节约存储空间,降低内容管理的复杂度,节约运营成本;而且,对于用户来说,可以减少内容下载的数据量,更有效的利用带宽,带来更好的用户体验。同时,对于服务器侧来说,也可以更为方便、高效地从媒体数据的存储文件中,提取需要的数据,转换成HTTP Streaming标准要求的传输文件格式。
附图说明
图1为现有ISO文件的结构示意图;
图2为现有ISO文件中trak box结构的示意图;
图3为现有ISO文件中moof box结构的示意图;
图4为本发明应用示例的流媒体实现方法的应用场景示意图。
具体实施方式
本发明的基本思想在于,对支持movie fragment的ISO文件的文件格式进行修改,增加一种HTTP Streaming类型的hint轨,其sample(样本)中的数据用于描述如何从movie fragment中提取出符合客户端需求格式的数据,并利用修改后的ISO文件格式,对媒体数据进行存储/转换。
这样,利用同一个ISO文件,同时给HTTP Streaming业务和RTSP/RTP流媒体业务提供服务,可以减少内容存储的空间占用和内容管理的复杂度;同时又避免HTTP Streaming客户端下载movie fragment时,将不必要的数据信息一并下载,占用带宽和本地存储空间的问题。
基于上述思想,本发明提供一种流媒体业务的实现方法,具体采用如下技术方案:
获取媒体码流,将其分段存储为ISO文件,并增加扩展的超文本传输协议流(HTTP Streaing)提示(hint)轨;
其中,所述HTTP streaming hint轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。
进一步地,所述HTTP streaming hint轨的样本(sample)参数,用于描述从媒体分段中提取构造出符合HTTP streaming传输格式的数据。
进一步地,所述媒体码流的格式可以是传送流(MPEG-2TS)码流或分离的媒体数据(例如音视频数据分别独立封装,在ISO文件中使用不同的媒体轨存储,或者通过不同的RTP通道传输等)。
对应不同的码流格式,存储后的ISO文件媒体轨中的sample遵循相应的标准。
对于MPEG-2TS码流,HTTP Streaming hint轨的sample中描述的信息,可以是将相应媒体轨中的TS包提取出来,构成一个小的TS片段;
对于媒体数据分离的情况,HTTP Streaming hint轨的sample中描述的信息,主要是过滤掉其他不必要的信息(例如RTP hint轨的信息),提供一个轻量级的movie fragment。
进一步地,存储所述ISO文件后,所述方法还包括:生成与所述ISO文件相匹配的播放列表描述文件;
所述播放列表描述文件包含每个媒体分段的URL,所述URL的格式为:ISO文件名+媒体分段ID。
进一步地,所述HTTP streaming服务器根据收到的客户端发送的HTTPURL,返回相应的播放列表描述文件;
所述客户端根据所述播放列表描述文件,找到相应时间的媒体分段URL,向HTTP streaming服务器请求服务;
所述HTTP streaming服务器根据收到的所述媒体分段URL,找到对应的媒体分段,根据HTTP Streaming hint轨的信息,提取媒体轨数据,构造成符合要求的传输格式,返回给所述客户端。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以媒体本发明实施例提供的流媒体业务的实现方法,具体包括如下步骤:
步骤1.定义HTTP Streaming类型的hint轨;
HTTP Streaming类型的hint轨,其sample中的数据用于描述如何从movie fragment中提取出符合客户端需求格式的数据,例如:对于视频和音频独立的媒体码流,则去除RTP hint轨数据后的movie fragment;或者如果媒体轨中存储的是TS(MPEG-2 Transport Stream,传输流)码流,也可以是提取出来的连续的TS包;
步骤2.对媒体码流进行存储
其中对于媒体数据,按ISO规范的定义,将sample的数据和描述信息,存于movie fragment中,并添加RTP hint轨,以及扩展的HTTP Streaming hint轨。相关轨的基本信息,例如轨的类型等,按ISO规范记录在moovbox中。movie fragment的moof box中包含轨的sample信息,描述sample的位置、大小等;mdat box中包含轨的实际的sample数据。
步骤3.生成播放列表描述文件
根据步骤2中生成的ISO文件,生成与之相匹配的播放列表描述文件,其中对于每个movie fragment的描述信息中,需要包含ISO文件的URI和fragment的标识;
对于HTTP Streaming业务来说,也需要有一个播放列表描述文件,其内容是组成该节目的所有媒体片段的URL。所有的URL是节目在系统中发布的时候确定的。
按照现有技术,播放列表描述文件的URL通过EPG/门户等展现给用户,用户如果需要看该节目,则通过这个URL,先下载播放列表描述文件。然后解析其中的内容,获取各个片段的URL。对于服务器来说,则根据用户请求时,所发的HTTP消息中的URL,来确定节目的文件名(含路径),以及用户需要观看的片段ID。服务器确定文件后,通过解析文件的内容,可以定位到与片段ID匹配的movie fragment结构。此流程完全遵守ISO14496-12的定义。
步骤4.HTTP Streaming服务器向客户端提供媒体分段
HTTP Streaming服务器在给客户端提供媒体分段时,根据步骤1中的扩展,从相应的movie fragment中提取有效数据,构造成符合要求的媒体分段,提供给客户端。
图1描述了标准的带有movie fragment结构的ISO文件格式。moov box结构100中有所有轨的基本描述信息,例如视轨101、音轨102、视音轨各自的RTP hint轨103和104等。
如图2所示,上述每个轨都通过一个trak box结构来描述,其中包含了轨ID、轨类型、sample描述信息等。参考图2,轨ID在tkhd box中描述;轨类型包括视频、音频、hint等,在hdlr中的type中描述;sample描述信息在stbl box的子box中描述,例如stts box等,此外还有一些其他标准中定义的用于描述sample信息的box,在图2中没有画出。至于相应轨数据的编码格式等信息,是在stsd box中描述。但对于支持movie fragment扩展的ISO文件,根据ISO标准规范,其trak box中不包含sample数据的信息(即stts box等结构中的entry count为零)。moov box后面是多个movie fragment,每个movie fragment包括一个moof box结构105和一个mdat box结构106。mdatbox中包含各个轨的sample数据。
其中moof box的结构如图3所示,包含各个轨的sample信息和随机访问点信息,每个轨通过一个trafbox结构描述。其中,sample信息在trun box中,随机访问点信息在sdtp box中。
定义一种类型的hint轨,需要定义ISO14496-12标准中,trak box及相应的子box(参见图2)中相应的数据结构及相关取值。其中大部分box中的结构和取值,ISO14496-12标准中已经定义好了,一般没有特殊需求的话,是不需要修改的。
本发明实施例中,定义一种新的类型的hint轨,具体来说,主要涉及如下内容:
1.hdlr box中handler type字段的取值,该字段是ISO14496-12标准中已经定义了的,用于说明这个轨的数据类型,即应该由什么样的处理模块来处理这个轨的数据。本发明中,这个字段的值是使用ISO14496-12标准中定义的hint轨的类型值。
2.stsd box,也是ISO14496-12标准中定义的,用于描述编码类型的详细信息。根据hdlr box中的handler type值的不同,其内部包含的是不同类型的Sample Entry结构。本发明的具体实现中,为http轨定义了新的SampleEntry结构,即hsfr box。
3.ISO14496-12标准中,定义了几种类型的Media Information HeaderBox,其中当hdlr box中的handler type值为’hint’时,应该使用hmhd box。在ISO14496-12标准中,hmhd box的结构中定义了协议数据单元(PDU)的最大值和平均值等参数。本发明的具体实现中,定义对于http轨,这个PDU的值对应于媒体分段的大小。
4.对于一种新的编码类型(即本文定义的新的http轨对应的数据),还需要定义相应的数据的sample结构。在本发明的具体实现中,为http轨定义的sample结构,就是HTTPStreamingSample,其中包含了一系列不同类型的constructor(构造器)。通过依次读取这些constructor的信息,按其指示操作,就可以得到构造后的,符合相应HTTP Streaming规范的媒体分段。
以下将针对本发明实施例形成的HTTP Streaming hint轨进行详细介绍。本发明实施例中,定义的HTTP Streaming hint轨具体描述如下:
1.对SampleEntry进行扩展,在ISO已经定义的SampleEntry类型上,再增加一个类型HttpStreamingHintSampleEntry,其中可以包含movie fragment的缺省时长等信息,例如
class HttpStreamingHintSampleEntry()extends SampleEntry(‘hsfr‘){
uint(32)avg_duration;//媒体分段的平均时长
uint(32)max_duration;//媒体分段的最大时长
string mime_type;//媒体分段的MIME type
string specification;//遵循的HTTP Streaming规范,例如3GPP或iPhone或其他规范
}
2.对于HTTP Streaming hint轨,其moov box中的描述信息包括:hdlrbox中的handler_type为’hint’;hmhd box中的maxPDUsize和avgPDUsize为movie fragment的大小,缺省值为无效值0;stsd box中的SampleEntry为hsfr box;
3.对于HTTP Streaming hint轨,其mdat box中的sample一般来说只有一个(多个也是允许的,但可能构造上会更复杂一些),用于描述如何从当前的movie fragment中提取构造出符合HTTP Streaming客户端格式需求的数据,其格式如下:
aligned(8)class HTTPStreamingSample{
unsigned int(32)data_length;//构造后的片段长度
unsigned int(32)data_duration;//构造后的片段时长
unsigned int(16)entrycount;//constructor的个数
unsigned int(16)reserved;//保留字段
dataentry constructors[entrycount];
byte extradata[];
}
其中constructor包含多种类型,为了方便解析,定义每个constructor的大小为16字节,格式如下:
aligned(8)class HTTPStreamingConstructor(type){
unsigned int(8)constructor_type=type;//constructor的类型
}
//类型type值为1的constructor,主要用于构造一些数据
aligned(8)class HTTPStreamingImmediateConstructor
extends HTTPStreamingConstructor(1)
{
unsigned int(8)count;//需要构造的数据长度,不超过14字节;
unsigned int(8)data[count];//需要构造的数据
unsigned int(8)pad[14-count];//多余的填充数据
}
//类型type值为2的constructor,主要用于引用一些movie fragment中已有的数据,例如媒体轨中的sample数据等
aligned(8)class HTTPStreamingSampleConstructor
extends HTTPStreamingConstructor(2)
{
unsigned int(8)[3]reserved;//保留字段
unsigned int(32)length;//需要引用的数据长度
unsigned int(32)offset;//需要引用的数据在movie fragment中的位置
}
4.对于HTTP Streaming hint轨,其moof box中的trun box描述sample信息,其sample_duration字段的值即为该fragment对应的分段时长。
以下将描述采用本发明中所述的修改后的ISO文件格式,对媒体数据进行存储/转换的处理流程。其中movie fragment对应的数据时长可以根据应用需要设置。该功能一般是由流媒体系统中的内容制作子系统来完成,即图4中的401组件。该处理流程包括以下步骤:
步骤101.获取媒体码流(音视频数据);
其中,获取的媒体码流可以是直播频道的码流,也可以是从其他格式的媒体文件中读取的码流;
步骤102.按照ISO规范生成ISO文件,其中每个movie fragment包含相应时长的数据,包含媒体轨和相应的RTP hint轨;
其中,为便于后续HTTP Streaming流化的处理,这里最好是媒体轨和RTP hint轨的数据分别集中存储;
步骤103.添加HTTP Streaming hint轨,其格式可按照本发明前述实施例中描述的格式;
步骤104.生成播放列表描述文件,其中包含每个媒体分段的URL,可以使用文件名+fragmentID(即mfhd box中的sequence_number)的方式来标明,例如:http://<ip:port>/path/filename/fragmentID=1。
以提供给客户端的是只包含媒体轨数据的movie fragment为例,那么HTTP Streaming hint轨的sample需要包含如下的constructor:
1.构造新的moofbox:
a)因为新的movie fragment的moof长度与文件中的不同,所以需要一个HTTPStreamingImmediateConstructor,用于构造新的moof box头。新的moofbox的长度应该为moofbox头(8B)+mfhd box长度+媒体轨个数×trafbox长度;
b)mfhd box可以直接使用文件中的,所以需要一个HTTPStreamingSampleConstructor,用于引用原mfhd box;
c)媒体轨对应的traf box,基本上可以使用HTTPStreamingSampleConstructor直接引用,其中,媒体轨的sample数据,如音视频数据可以直接引用,而另外一些box结构中的数据也可以被引用。但是tfhd box的base_data_offset字段的值如果有效,则可能需要通过HTTPStreamingImmediateConstructor修改;
2.构造新的mdat box:
a)因为新的mdat box的长度与文件中的不同,所以需要一个HTTPStreamingImmediateConstructor,用于构造新的mdat box头;
b)通过HTTPStreamingSampleConstructor引用原mdat box中媒体轨对应的sample部分。
此外,本发明实施例还提供了一种流媒体业务的实现系统,包括内容制作子系统,所述内容制作子系统进一步包括:
媒体码流获取装置,用于获取媒体码流;
文件存储装置,用于将所述媒体码流获取装置获取的媒体码流分段存储为ISO文件;
提示轨添加装置,用于对所述ISO文件增加HTTP streaming hint轨,其中所述HTTP streaming hint轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。
进一步地,所述提示轨添加装置进一步用于,在所述HTTP streaming hint轨的sample数据中,包含从媒体分段中提取构造出符合HTTP streaming传输格式的数据的指示信息。
进一步地,所述系统还包括HTTP streaming服务器和客户端,
通过读取所述HTTP streaming hint轨的sample数据包含的所述指示信息,提取相应的媒体轨数据,并将提取的媒体轨数据组装成符合HTTPstreaming传输格式的媒体分段,返回给客户端。
进一步地,所述内容制作子系统还包括描述文件生成装置,其中:
所述描述文件生成装置用于,生成与所述ISO文件相匹配的播放列表描述文件,所述播放列表描述文件包含每个媒体分段的URL,所述URL中包含:ISO文件名和媒体分段标识;
所述HTTP streaming服务器还用于,收到所述客户端发送的HTTP URL时,返回相应的播放列表描述文件;收到所述客户端发送的媒体分段的URL时,找到HTTP Streaming hint轨,提取媒体数据并组装成相应的媒体分段后,返回给所述客户端;
所述客户端用于,根据所述播放列表描述文件,找到相应时间的媒体分段的URL,向所述HTTP streaming服务器请求服务,并接收所述HTTPstreaming服务器返回的媒体分段。
以下将结合本发明的具体应用示例对采用本发明中所述的修改后的ISO文件格式,为不同类型的客户端提供流媒体服务的处理流程进行描述。参见图4,本应用示例的流媒体业务的实现主要涉及如下组件:内容制作子系统401,存储设备402,RTSP服务器403,HTTP服务器404,EPG(ElectronicProgram Guide,电子节目指南)/门户405和客户端406。
如图4所示,本应用示例的流程具体描述如下:
步骤201.对于同一个节目内容,EPG/门户系统405需要给不同类型的客户端406返回不同的URL,例如对RTSP客户端返回对应文件的RTSPURL,对于HTTP Streaming客户端,返回对应的HTTP URL(一般是对应一个播放列表描述文件);
步骤202.客户端406得到相应的URL后,即向相应类型的服务器发起请求;
步骤203.RTSP服务器403收到客户端406的RTSP请求后,根据RTPhint轨的指示,构造RTP数据包发送给客户端;
步骤204.HTTP Streaming服务器404收到HTTP Streaming客户端406的请求后,首先根据URL返回相应的播放列表描述文件;
步骤205.客户端406解析描述文件,找到初始化信息(例如可以是ISO文件的moov box部分)的URL,向服务器请求服务;
步骤206.服务器404将相关初始化信息的数据提供给客户端406;
步骤207.客户端406根据描述文件,找到相应时间的媒体分段URL,向服务器404请求服务;
步骤208.服务器404收到媒体分段的URL后,根据文件名和fragmentID,找到对应的movie fragment,根据HTTP Streaming hint轨的指示,构造媒体分段返回给客户端;
步骤209.客户端406下载媒体分段后,解析播放,同时继续请求后续的媒体分段。
进一步地,上述步骤208具体可分为如下步骤:
1.服务器收到终端的请求后,定位到具体的文件和movie fragment;
2.服务器从moov box中,找到hdlr box的handler type为“hint”,且stsd box的SampleEntry中为hsfr box的轨(trak box),从而得到http hint轨的轨号(trackID,在tkhd box中);
3.服务器从movie fragment的moof box中,通过trackID,找到http hint轨的trafbox;
4.服务器从traf box的trun box中解出http hint轨的sample数据在文件中的位置;
5.服务器读取http hint轨的sample数据,按照其中一系列constructor的信息,进行媒体数据的提取和组装,得到http streaming终端需要的媒体片段,发送给终端。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
Claims (10)
1.一种流媒体业务的实现方法,其特征在于,所述方法包括:
获取媒体码流,将其分段存储为ISO文件,并增加超文本传输协议流(HTTP Streaming)提示(hint)轨;
其中,所述HTTP streaming hint轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。
2.如权利要求1所述的方法,其特征在于,
所述相关参数包括:所述HTTP streaming hint轨的样本(sample)数据;
所述HTTP streaming hint轨的sample数据包含从媒体分段中提取构造出符合HTTP streaming传输格式的数据的指示信息。
3.如权利要求2所述的方法,其特征在于,
所述指示信息至少包括:引用媒体轨数据的位置及长度、需要构造的数据及长度,和填充数据。
4.如权利要求3所述的方法,其特征在于,
HTTP streaming服务器在读取所述ISO文件时,通过读取所述HTTPstreaming hint轨的sample数据包含的所述指示信息,提取相应的媒体轨数据,并将提取的媒体轨数据组装成符合HTTP streaming传输格式的媒体分段,返回给客户端。
5.如权利要求1、2、3或4所述的方法,其特征在于,存储所述ISO文件后,所述方法还包括:
生成与所述ISO文件相匹配的播放列表描述文件;
所述播放列表描述文件包含每个媒体分段的统一资源标志符(URL),所述URL中包含:ISO文件名和媒体分段标识。
6.如权利要求5所述的方法,其特征在于,
所述HTTP streaming服务器根据收到的客户端发送的HTTP URL,返回相应的播放列表描述文件;
所述客户端根据所述播放列表描述文件,找到相应时间的媒体分段的URL,向所述HTTP streaming服务器发起服务请求;
所述HTTP streaming服务器根据收到的所述服务请求中的媒体分段的URL,找到HTTP Streaming hint轨,进行媒体数据的提取和组装后,返回给所述客户端。
7.一种流媒体业务的实现系统,其特征在于,包括内容制作子系统,所述内容制作子系统进一步包括:
媒体码流获取装置,用于获取媒体码流;
文件存储装置,用于将所述媒体码流获取装置获取的媒体码流分段存储为ISO文件;
提示轨添加装置,用于对所述ISO文件增加HTTP streaming hint轨,其中所述HTTP streaming hint轨中包含提取HTTP streaming业务所需要的媒体分段的相关参数。
8.如权利要求7所述的系统,其特征在于,
所述提示轨添加装置进一步用于,在所述HTTP streaming hint轨的sample数据中,包含从媒体分段中提取构造出符合HTTP streaming传输格式的数据的指示信息。
9.如权利要求7或8所述的系统,其特征在于,所述系统还包括HTTPstreaming服务器和客户端,
通过读取所述HTTP streaming hint轨的sample数据包含的所述指示信息,提取相应的媒体轨数据,并将提取的媒体轨数据组装成符合HTTPstreaming传输格式的媒体分段,返回给客户端。
10.如权利要求9所述的系统,其特征在于,所述内容制作子系统还包括描述文件生成装置,其中:
所述描述文件生成装置用于,生成与所述ISO文件相匹配的播放列表描述文件,所述播放列表描述文件包含每个媒体分段的URL,所述URL中包含:ISO文件名和媒体分段标识;
所述HTTP streaming服务器还用于,收到所述客户端发送的HTTP URL时,返回相应的播放列表描述文件;收到所述客户端发送的媒体分段的URL时,找到HTTP Streaming hint轨,提取媒体数据并组装成相应的媒体分段后,返回给所述客户端;
所述客户端用于,根据所述播放列表描述文件,找到相应时间的媒体分段的URL,向所述HTTP streaming服务器请求服务,并接收所述HTTPstreaming服务器返回的媒体分段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105118590A CN101984619A (zh) | 2010-10-12 | 2010-10-12 | 一种流媒体业务的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105118590A CN101984619A (zh) | 2010-10-12 | 2010-10-12 | 一种流媒体业务的实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101984619A true CN101984619A (zh) | 2011-03-09 |
Family
ID=43641790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105118590A Pending CN101984619A (zh) | 2010-10-12 | 2010-10-12 | 一种流媒体业务的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101984619A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136948A (zh) * | 2011-03-15 | 2011-07-27 | 华为技术有限公司 | 用于统计用户体验的方法、终端设备和系统 |
CN102238434A (zh) * | 2011-07-22 | 2011-11-09 | 中兴通讯股份有限公司 | 一种iptv流媒体文件虚拟分段和使用的方法及系统 |
CN102611690A (zh) * | 2011-12-22 | 2012-07-25 | 南京邮电大学 | 一种基于超文本传输协议流化的容器格式转化方法 |
CN107257268A (zh) * | 2012-03-16 | 2017-10-17 | 英特尔公司 | 多播广播多媒体服务辅助内容分发 |
WO2018072683A1 (en) * | 2016-10-17 | 2018-04-26 | Mediatek Inc. | Deriving and signaling a region or viewport in streaming media |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1599455A (zh) * | 2003-09-17 | 2005-03-23 | Lg电子株式会社 | 提供多媒体内容的高速下载服务的装置及其方法 |
US20080133766A1 (en) * | 2006-05-05 | 2008-06-05 | Wenjun Luo | Method and apparatus for streaming media to a plurality of adaptive client devices |
CN101283351A (zh) * | 2005-07-19 | 2008-10-08 | 苹果公司 | 用于媒体数据传输的方法和设备 |
CN101300810A (zh) * | 2005-09-01 | 2008-11-05 | 诺基亚公司 | 用于将svg内容嵌入进iso基本媒体文件格式以便渐进地下载或流式传输富媒体内容的方法 |
-
2010
- 2010-10-12 CN CN2010105118590A patent/CN101984619A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1599455A (zh) * | 2003-09-17 | 2005-03-23 | Lg电子株式会社 | 提供多媒体内容的高速下载服务的装置及其方法 |
CN101283351A (zh) * | 2005-07-19 | 2008-10-08 | 苹果公司 | 用于媒体数据传输的方法和设备 |
CN101300810A (zh) * | 2005-09-01 | 2008-11-05 | 诺基亚公司 | 用于将svg内容嵌入进iso基本媒体文件格式以便渐进地下载或流式传输富媒体内容的方法 |
US20080133766A1 (en) * | 2006-05-05 | 2008-06-05 | Wenjun Luo | Method and apparatus for streaming media to a plurality of adaptive client devices |
Non-Patent Citations (1)
Title |
---|
KWANG-DEOK SEO等: "《File Format Adaptation Based on HTTP Hint Track for HTTP Streaming》", 《ISO/IEC JTC1/SC29/WG11 MPEG2010/M17772》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136948A (zh) * | 2011-03-15 | 2011-07-27 | 华为技术有限公司 | 用于统计用户体验的方法、终端设备和系统 |
CN102136948B (zh) * | 2011-03-15 | 2014-04-02 | 华为技术有限公司 | 用于统计用户体验的方法、终端设备和系统 |
CN102238434A (zh) * | 2011-07-22 | 2011-11-09 | 中兴通讯股份有限公司 | 一种iptv流媒体文件虚拟分段和使用的方法及系统 |
CN102611690A (zh) * | 2011-12-22 | 2012-07-25 | 南京邮电大学 | 一种基于超文本传输协议流化的容器格式转化方法 |
CN107257268A (zh) * | 2012-03-16 | 2017-10-17 | 英特尔公司 | 多播广播多媒体服务辅助内容分发 |
WO2018072683A1 (en) * | 2016-10-17 | 2018-04-26 | Mediatek Inc. | Deriving and signaling a region or viewport in streaming media |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4619353B2 (ja) | マルチメディアコンテンツを配信するためのシステム | |
TWI729997B (zh) | 傳輸經寫碼音訊資料 | |
US10902474B2 (en) | Targeted advertisement insertion for streaming media data | |
CN110870282B (zh) | 使用网络内容的文件轨处理媒体数据 | |
EP3092772B1 (en) | Media encapsulating and decapsulating | |
US20110246659A1 (en) | System, Method and Apparatus for Dynamic Media File Streaming | |
CN104796796B (zh) | 提高Android平台的HLS流播放器容错的方法 | |
US20120233345A1 (en) | Method and apparatus for adaptive streaming | |
CN104396263A (zh) | 用于流式媒体内容的实时复用变换的方法和系统 | |
CN110832872B (zh) | 使用用于文件格式方框的通用描述符处理媒体数据 | |
US11321516B2 (en) | Processing dynamic web content of an ISO BMFF web resource track | |
WO2008061416A1 (fr) | Procédé et système permettant d'accepter des données media de divers formats de codage | |
US10469919B2 (en) | Broadcast signal transmission apparatus, broadcast signal reception apparatus, broadcast signal transmission method, and broadcast signal reception method | |
US7555009B2 (en) | Data processing method and apparatus, and data distribution method and information processing apparatus | |
CN101984619A (zh) | 一种流媒体业务的实现方法及系统 | |
TW201409998A (zh) | 第二內容串流在第二裝置上描繪時間之控制方法及控制裝置 | |
Zhang et al. | A MMT-based content classification scheme for VoD service | |
KR20110117568A (ko) | 멀티미디어 전송 시스템에서 서비스 발견 정보를 송수신하는 방법 및 장치와 이를 위한 파일 구조 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110309 |