一种分段节目快速分发的方法、服务器及客户端的制作方法

文档序号:7796292阅读:97来源:国知局
一种分段节目快速分发的方法、服务器及客户端的制作方法
【专利摘要】本发明公开了一种分段节目快速分发的方法、服务器和客户端,其中,该方法包括:将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;接收到客户端对某一分段索引的分发请求;向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。本发明的方法、服务器和客户端能够减少整个节目分发的时间,减少对网络带宽的浪费,提高用户体验质量。
【专利说明】一种分段节目快速分发的方法、服务器及客户端
【技术领域】
[0001]本发明涉及流媒体领域,具体涉及一种分段节目快速分发的方法、服务器及客户端。
【背景技术】
[0002]随着通信技术的发展,多媒体技术的应用越来越广。传统的流媒体服务是基于 RTSP (Real Time Streaming Protocol,实时流协议)/RTP (Real-time TransportProtocol,实时传输协议)的。但是由于这两种协议在穿越防火墙存在问题等缺点,近几年发展出基于超文本传输协议来提供流媒体服务,即DASH (Dynamic adaptive streamingover HTTP,基于超文本传输协议的动态调整流媒体服务)。与其他流媒体服务一样,DASH同样支持点播和直播服务。
[0003]为了便于实现直播回放和边下载边看的功能,通常将节目内容在物理或逻辑上分成很多小分段,每个分段对应分段索引,所有的索引串起来形式节目索引表(MediaPresentation Description, MPD,包含媒体分段的索引等信息),内容发布时首先获取分段索引,然后根据分段索引获取相应分段节目。这种方式能够方便地对节目内容进行修改和替换,而且能够兼容现有的内容分发网络(Content Delivery Network,简称⑶N)系统。
[0004]补充一个现有响应的字段,内容,只有响应头和响应体中包含分段索引,
[0005]本发明有响应头、响应体中包含分段索引和分段节目
[0006]现有的分段节目的分发流程如图1所示,客户端获取一个分段节目时,首先获取分段索引,服务器会向客户端返回分发响应,该分发响应的结构如图2所示,包括:响应行、响应头和响应体,响应体中携带的是分段索引信息,该分段索引信息内包含有分段索引对应的分段节目,然后客户端解析分段索引信息,根据索引信息获取相应的分段节目。但是随着节目源内容的增加会导致分段节目和分段索引的内容增大,在网络上,特别是带宽受限的移动网络上不断地传送分段索引和节目,整个节目完全分发的时间越来越大,不断的传送分段索引和解析索引浪费了网络带宽也增加了整体时延,最终降低节目分发的速度,时效性也不高。

【发明内容】

[0007]本发明需要解决的技术问题是提供一种分段节目快速分发的方法、服务器和客户端,能够减少整个节目分发的时间,减少对网络带宽的浪费,提高用户体验质量。
[0008]为了解决上述技术问题,本发明提供了一种分段节目快速分发的方法,应用于服务器端,包括:
[0009]将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
[0010]接收到客户端对某一分段索引的分发请求;
[0011]向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
[0012]进一步地,在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系之后,还包括:
[0013]生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端;
[0014]接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL;
[0015]根据所述URL向所述客户端返回所述分发响应。
[0016]进一步地,所述生成一个统一资源定位符URL标识分段索引,包括:
[0017]生成一个URL标识第一个分段索引;或者,
[0018]通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
[0019]进一步地,所述方法还包括:
[0020]接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
[0021]向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0022]或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
[0023]进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0024]为了解决上述技术问题,本发明提供了一种分段节目快速分发的方法,应用于客户端,包括:
[0025]向服务器端发送获取某一分段索引的分发请求;
[0026]接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
[0027]将所述分段节目按照所述分段索引在索引文件中的序列号依次进行存储。
[0028]进一步地,所述向服务器端发送获取某一分段索引的分发请求之前,包括:
[0029]接收所述服务器发送的标识第一个分段索引的统一资源定位符URL ;或者
[0030]通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0031]进一步地,所述向服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述某一分段索引的URL ;
[0032]所述标识所述某一分段索引的URL,包括:
[0033]标识第一个分段索引的URL ;或者,
[0034]标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0035]进一步地,所述方法还包括:
[0036]接收到所述服务器端返回的分发响应,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0037]如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL ;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
[0038]将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0039]进一步地,所述方法还包括:
[0040]接收到所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
[0041]所述客户端依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;
[0042]接收所述服务器端依次返回的分发响应,并将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0043]进一步地,所述方法还包括:
[0044]接收到所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表;
[0045]将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
[0046]进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0047]为了解决上述技术问题,本发明还提供了一种服务器,用于分段节目快速分发,包括:
[0048]分段模块,用于将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
[0049]接收模块,用于接收到客户端对某一分段索引的分发请求;
[0050]分发响应模块,用于向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
[0051]进一步地,所述分段模块,还用于在将节目源分成多个连续的分段节目和分段索弓丨,建立每个分段索引与一个或多个分段节目的对应关系之后,生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端;
[0052]所述接收模块,还用于接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL ;
[0053]所述分发响应模块,还用于根据所述URL向所述客户端返回所述分发响应。
[0054]进一步地,所述分段模块,还用于生成一个统一资源定位符URL标识分段索引,包括:
[0055]生成一个URL标识第一个分段索引;或者,
[0056]通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
[0057]进一步地,所述接收模块,还用于接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
[0058]所述分发响应模块,还用于向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0059]或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
[0060]进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0061]为了解决上述技术问题,本发明还提供了一种客户端,用于分段节目快速分发,包括:
[0062]分发请求模块,用于向服务器端发送获取某一分段索引的分发请求;
[0063]接收模块,用于接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
[0064]存储模块,用于将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
[0065]进一步地,所述客户端还包括与所述分发请求模块相连的交互模块,其中:
[0066]所述交互模块,用于接收所述服务器发送的标识第一个分段索引的统一资源定位符URL ;或者,通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0067]进一步地,所述分发请求模块,用于向服务器端发送获取某一分段索引的分发请时,在所述分发请求中携带标识所述分段索引的URL ;
[0068]所述标识所述某一分段索引的URL,包括:
[0069]标识第一个分段索引的URL ;或者,
[0070]标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0071]进一步地,所述接收模块,还用于接收所述服务器端返回的分发响应,其中,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0072]所述分发请求模块,还用于如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
[0073]所述存储模块,还用于将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0074]进一步地,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
[0075]所述分发请求模块,还用于依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;[0076]所述存储模块,用于将所述服务器端依次返回的分发响应中携带的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0077]进一步地,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表;
[0078]所述存储模块,还用于将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
[0079]进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0080]与现有技术相比,本发明提供的分段节目快速分发的方法、服务器和客户端,当客户端请求某一个分段索引时,服务器端会将分段索引跟索引中对应的分段节目同时推送给客户端,减少了传统的不断解析分段索引获取分段节目中的网络时延和解析分段索引的时延,也增加了网络带宽的利用率,提高了用户体验,最终达到一种快速分发的效果。
【专利附图】

【附图说明】
[0081]图1是现有技术中分段节目分发的示意图;
[0082]图2是现有技术中服务器向客户端返回的分发响应结构示意图;
[0083]图3是本实施例中分段节目分发的示意图
[0084]图4是实施例中服务器的结构图;
[0085]图5是实施例中客户端的结构图;
[0086]图6是实施例中组网示意图;
[0087]图7是实施例中架构示意图;
[0088]图8是实施例中应用于服务器端的分段节目快速分发的方法流程图。
[0089]图9是实施例中应用于客户端的分段节目快速分发的方法流程图。
【具体实施方式】
[0090]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0091]实施例:
[0092]本实施的核心思想就是:在服务器端建立每个分段索引与一个或多个分段节目的对应关系,当客户端请求某一个分段索引时,服务器端通过在响应体中的不同字段中分别携带分段索引和索引中对应的分段节目,从而将分段索引跟索引中对应的分段节目同时推送给客户端,客户端通过持续请求所有分段索引来实现对全部分段节目的分发,如图3所示,提供了本实施例中分段节目分发的示意图。本实施例中分发响应的字段结构与现有技术中的相同,如图2所示,包括:响应行、响应头和响应体,但是,对响应头和响应体携带的信息做了改变,在本实施例中,响应头可以携带了指示信息,包括:标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;或者,指示所述索引文件中最后一个分段索引的序列号;响应头中还可以携带分段索引对应的分段节目的名称列表;所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目
[0093]如图4所示,本实施例提供了一种服务器,用于分段节目快速分发,包括:
[0094]分段模块,用于将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
[0095]接收模块,用于接收到客户端对某一分段索引的分发请求;
[0096]分发响应模块,用于向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
[0097]其中,所述分段模块,还用于在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系之后,生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端;
[0098]其中,生成一个统一资源定位符URL标识分段索引,包括:
[0099]生成一个URL标识第一个分段索引;或者,
[0100]通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
[0101]所述接收模块,还用于接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL ;
[0102]所述分发响应模块,还用于根据所述URL向所述客户端返回所述分发响应。
[0103]作为一种优选的方式,所述接收模块,还用于接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
[0104]所述分发响应模块,还用于向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0105]或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
[0106]其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0107]如图5所示,本实施例提供了客户端,用于分段节目快速分发,包括:
[0108]分发请求模块,用于向服务器端发送获取某一分段索引的分发请求;
[0109]接收模块,用于接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
[0110]存储模块,用于将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
[0111]作为一种优选的方式,所述客户端还包括与所述分发请求模块相连的交互模块,其中:
[0112]所述交互模块,用于接收所述服务器发送的标识第一个分段索引的统一资源定位符URL ;或者,通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0113]其中,所述分发请求模块,用于向服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述某一分段索引的URL ;[0114]作为一种优选的方式,所述标识所述某一分段索引的URL,包括:
[0115]标识第一个分段索引的URL ;或者,
[0116]标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0117]此外,作为一种优选的方式,所述接收模块,还用于接收所述服务器端返回的分发响应,其中,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0118]所述分发请求模块,还用于如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
[0119]所述存储模块,还用于将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0120]作为另一种优选的方式,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
[0121 ] 所述分发请求模块,还用于依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL ;
[0122]所述存储模块,用于将所述服务器端依次返回的分发响应中携带的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0123]此外,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表;
[0124]所述存储模块,还用于将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
[0125]其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0126]其中,在实际实施时,如图6所示,中心网络即为本实施例中的服务器端,边缘网络即为本实施例中的客户端;又如图7所示,中心节点即为本实施例中的服务器端,边缘节点即为本实施例中的客户端,在边缘节点将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次存储在磁盘上,为用户终端提供完整的节目。所述用户终端可以是机顶盒、VLC播放器或手机等等。
[0127]如图8所示,本实施例提供了一种分段节目快速分发的方法,应用于服务器端,包括以下步骤:
[0128]SlOl:将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
[0129]其中,每个分段节目都包含节目解码信息和随机访问单元信息,保证每一个分段节目可以独立解码播放,这样方便分发后的分段节目可以单独提供其他媒体服务,比如点播。被划分的分段节目是连续依次排列的。[0130]S102:接收到客户端对某一分段索引的分发请求;
[0131]其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0132]通过接收客户端段持续的分发请求,实现对全部分段节目的分发。
[0133]S103:向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
[0134]其中,在步骤SlOl中,在建立每个分段索引与一个或多个分段节目的对应关系后,还包括:
[0135]生成一个统一资源定位符URL标识相应的分段索引,并通知所述客户端;
[0136]在步骤S102和步骤S103中,服务器接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL ;根据所述URL向所述客户端返回所述分发响应。
[0137]其中,优选地,所述生成一个统一资源定位符URL标识相应的分段索引,包括:
[0138]生成一个URL标识分段索引列表,所述分段索引列表包含索引文件中所有的分段索引;或者,
[0139]生成一个URL标识第一个分段索引;或者,
[0140]通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
[0141]比如,为客户端定制URL,客户端向服务器发送POST消息,请求某一分段节目,服务器端解析得到该分段节目对应的分段索引,给客户端构造一个URL标识该分段索引;然后,客户端就可以根据该URL向服务器请求分段索引了。
[0142]作为一种优选的方式,在步骤S102中,如果接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
[0143]在步骤S103中,所述服务器向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0144]或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
[0145]这样客户端就可以根据服务器下发的分发响应获得是否要继续请求分段索引,以及得到下一个分段索引的URL来请求该分段索引及对应的分段节目。
[0146]如图9所示,本实施例提供了一种分段节目快速分发的方法,应用于客户端,包括以下步骤:
[0147]S201:向服务器端发送获取某一分段索引的分发请求;
[0148]其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
[0149]其中,所述客户端向所述服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述分段索引的URL。
[0150]所述标识所述分段索引的URL是通过与服务器交互从服务器接收到的,有多种方式,例如,包括:[0151]标识分段索引列表的URL,所述分段索引列表包含索引文件中所有的分段索引;或者,
[0152]标识第一个分段索引的URL ;或者,
[0153]通过与服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
[0154]S202:接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
[0155]S203:将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
[0156]其中,一种优选的方式是,接收到所述服务器端返回的分发响应,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
[0157]如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL ;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
[0158]将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0159]其中,另一种优选的方式是,接收到所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
[0160]所述客户端依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;
[0161]接收所述服务器端依次返回的分发响应,并将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
[0162]在一个应用不例中,以在DASH (Dynamic adaptive streaming over HTTP,基于超文本传输协议的动态调整流媒体服务)系统中传送分段节目为例,基于HTTP协议,采用MPEG-2TS流文件作为数据源,文件名为file, ts。
[0163]根据本实施例中的方法在服务器端按以下步骤将节目源进行分段,生成多个分段索引和分段节目:
[0164]1、从视频图像关键帧的位置开始将文件file, ts按照时间切分为10秒长度的多个分段数据,每一个分段数据均为MPEG-2TS文件,每一个分段数据的解码单位均以图像关键帧开始,这样得到的多个分段TS文件,分别命名为1.ts, 2.ts, - ,100.ts ;
[0165]2、利用XML格式生成每个小TS文件对应的索引文件,用来描述小TS文件的播放时长,文件名等信息。为了简化,在本应用示例中将分段节目和分段索引的对应关系设置为一对一,比如1.1ndex对应1.ts ;
[0166]3、构造统一资源定位URL。
[0167]将分段后的多个小TS文件1.ts, 2.ts,…100.ts和分段索引文件1.1ndex, 2.1ndex,…100.1ndex 放在HTTP WEB服务器的存储设备上,同时生成统一资源定位URL标识第一个分段索引。
[0168]http://ip:port/path/1, index[0169]根据本实施例中的方法在客户端对节目按以下方法进行分发:
[0170]1、根据统一资源定位URL通过HTTP GET方法获取第一个分段索引1.1ndex和
1.ts ;
[0171]2、从HTTP协议响应头和响应体中分别解析出分段节目的文件名和索引文件中最后一个分段索引的序列号,在本应用示例中,得到第一个分段索引对应的分段节目为l.ts,索引文件最后一个分段索引的序列号为100 ;
[0172]客户端在得到最后一个索引文件的序列号后,就可以从第二个分段索引开始依次获取索引文件所有的分段索引及其对应的分段节目,直到最后一个分段索引。
[0173]3、通过以下的URL获取第二个至最后一个分段索引;
[0174]http://ip:port/path/2.1ndex
[0175]http: //ip: port/path/3.1ndex
[0176]......[0177]http://ip: port/path/100.1ndex
[0178]经过上述过程,客户端获取到所有分段文件,即分段索引及其对应的分段节目,并从HTTP协议响应头中解析出分段节目的文件名,对应的分段节目为2.ts,3.ts, 4.ts……100.ts ;
[0179]4、最后,将获取 的所有分段文件按照索引文件的序列号依次进行存储,或者将获取的所有分段文件按照分段节目名称列表进行存储。
[0180]本实施提供的方法和装置同样适合其他的传输协议,比如RTSP等,这样本发明的应用可以推广到流媒体其他系统,不限于DASH系统。
[0181]从上述实施例可以看出,相对于现有技术,上述实施例中提供的分段节目快速分发的方法、服务器和客户端,当客户端请求某一个分段索引时,服务器端会将分段索引跟索引中对应的分段节目同时推送给客户端,减少了传统的不断解析分段索引获取分段节目中的网络时延和解析分段索引的时延,也增加了网络带宽的利用率,提高了用户体验,最终达到一种快速分发的效果
[0182]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0183]以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的
【发明内容】
,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种分段节目快速分发的方法,应用于服务器端,包括: 将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系; 接收到客户端对某一分段索引的分发请求; 向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
2.如权利要求1所述的方法,其特征在于:在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系之后,还包括: 生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端; 接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL; 根据所述URL向所述客户端返回所述分发响应。
3.如权利要求2所述的方法,其特征在于: 所述生成一个统一资源定位符URL标识分段索引,包括: 生成一个URL标识第一个分段索引;或者, 通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
4.如权利要求3所述的方法,其特征在于:所述方法还包括: 接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求; 向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索 引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引; 或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
5.如权利要求1或2所述的方法,其特征在于: 所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
6.一种分段节目快速分发的方法,应用于客户端,包括: 向服务器端发送获取某一分段索引的分发请求; 接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目; 将所述分段节目按照所述分段索引在索引文件中的序列号依次进行存储。
7.如权利要求6所述的方法,其特征在于: 所述向服务器端发送获取某一分段索引的分发请求之前,包括: 接收所述服务器发送的标识第一个分段索引的统一资源定位符URL ;或者通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
8.如权利要求7所述的方法,其特征在于: 所述向服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述某一分段索引的URL ; 所述标识所述某一分段索引的URL,包括: 标识第一个分段索引的URL ;或者, 标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
9.如权利要求8所述的方法,其特征在于:所述方法还包括: 接收到所述服务器端返回的分发响应,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引; 如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL ;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求; 将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
10.如权利要求8所述的方法,其特征在于:所述方法还包括: 接收到所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号; 所述客户端依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL; 接收所述服务器端依次返回的分发响应,并将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
11.如权利要求6~10任意一项权利要求所述的方法,其特征在于:所述方法还包括: 接收到所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表; 将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
12.如权利要求6或7所述的方法,其特征在于: 所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
13.一种服务器,用于分段节目快速分发,包括: 分段模块,用于将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系; 接收模块,用于接收到客户端对某一分段索引的分发请求; 分发响应模块,用于向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
14.如权利要求13所述的服务器,其特征在于: 所述分段模块,还用于在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或 多个分段节目的对应关系之后,生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端; 所述接收模块,还用于接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL ; 所述分发响应模块,还用于根据所述URL向所述客户端返回所述分发响应。
15.如权利要求14所述的服务器,其特征在于: 所述分段模块,还用于生成一个统一资源定位符URL标识分段索引,包括: 生成一个URL标识第一个分段索引;或者, 通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
16.如权利要求15所述的服务器,其特征在于: 所述接收模块,还用于接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求; 所述分发响应模块,还用于向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引; 或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
17.如权利要求 13或14所述的服务器,其特征在于: 所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
18.一种客户端,用于分段节目快速分发,包括: 分发请求模块,用于向服务器端发送获取某一分段索引的分发请求; 接收模块,用于接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目; 存储模块,用于将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
19.如权利要求18所述的客户端,其特征在于:所述客户端还包括与所述分发请求模块相连的交互模块,其中: 所述交互模块,用于接收所述服务器发送的标识第一个分段索引的统一资源定位符URL ;或者,通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
20.如权利要求19所述的客户端,其特征在于: 所述分发请求模块,用于向服务器端发送获取某一分段索引的分发请时,在所述分发请求中携带标识所述分段索引的URL ; 所述标识所述某一分段索引的URL,包括: 标识第一个分段索引的URL ;或者, 标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
21.如权利要求20所述的客户端,其特征在于: 所述接收模块,还用于接收所述服务器端返回的分发响应,其中,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引; 所述分发请求模块,还用于如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求; 所述存储模块,还用于将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
22.如权利要求20所述的客户端,其特征在于: 所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号; 所述分发请求模块,还用于依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL ; 所述存储模块,用于将所述服务器端依次返回的分发响应中携带的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
23.如权利要求18~22任意一项权利要求所述的客户端,其特征在于: 所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表; 所述存储模块,还用于将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
24.如权利要求18或19所述的客户端,其特征在于: 所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
【文档编号】H04N21/858GK103813185SQ201410037902
【公开日】2014年5月21日 申请日期:2014年1月26日 优先权日:2014年1月26日
【发明者】周美艳, 陈光亮, 王芳 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1