CN103813185B - 一种分段节目快速分发的方法、服务器及客户端 - Google Patents
一种分段节目快速分发的方法、服务器及客户端 Download PDFInfo
- Publication number
- CN103813185B CN103813185B CN201410037902.2A CN201410037902A CN103813185B CN 103813185 B CN103813185 B CN 103813185B CN 201410037902 A CN201410037902 A CN 201410037902A CN 103813185 B CN103813185 B CN 103813185B
- Authority
- CN
- China
- Prior art keywords
- index
- segment
- segment index
- distribution
- response
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000004044 response Effects 0.000 claims abstract description 174
- 230000003993 interaction Effects 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 5
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6581—Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种分段节目快速分发的方法、服务器和客户端,其中,该方法包括:将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;接收到客户端对某一分段索引的分发请求;向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。本发明的方法、服务器和客户端能够减少整个节目分发的时间,减少对网络带宽的浪费,提高用户体验质量。
Description
技术领域
本发明涉及流媒体领域,具体涉及一种分段节目快速分发的方法、服务器及客户端。
背景技术
随着通信技术的发展,多媒体技术的应用越来越广。传统的流媒体服务是基于RTSP(Real Time Streaming Protocol,实时流协议)/RTP(Real-timeTransportProtocol,实时传输协议)的。但是由于这两种协议在穿越防火墙存在问题等缺点,近几年发展出基于超文本传输协议来提供流媒体服务,即DASH(Dynamic adaptive streamingover HTTP,基于超文本传输协议的动态调整流媒体服务)。与其他流媒体服务一样,DASH同样支持点播和直播服务。
为了便于实现直播回放和边下载边看的功能,通常将节目内容在物理或逻辑上分成很多小分段,每个分段对应分段索引,所有的索引串起来形式节目索引表(MediaPresentation Description,MPD,包含媒体分段的索引等信息),内容发布时首先获取分段索引,然后根据分段索引获取相应分段节目。这种方式能够方便地对节目内容进行修改和替换,而且能够兼容现有的内容分发网络(Content Delivery Network,简称CDN)系统。
本发明有响应头、响应体中包含分段索引和分段节目。
现有的分段节目的分发流程如图1所示,客户端获取一个分段节目时,首先获取分段索引,服务器会向客户端返回分发响应,该分发响应的结构如图2所示,包括:响应行、响应头和响应体,响应体中携带的是分段索引信息,该分段索引信息内包含有分段索引对应的分段节目,然后客户端解析分段索引信息,根据索引信息获取相应的分段节目。但是随着节目源内容的增加会导致分段节目和分段索引的内容增大,在网络上,特别是带宽受限的移动网络上不断地传送分段索引和节目,整个节目完全分发的时间越来越大,不断的传送分段索引和解析索引浪费了网络带宽也增加了整体时延,最终降低节目分发的速度,时效性也不高。
发明内容
本发明需要解决的技术问题是提供一种分段节目快速分发的方法、服务器和客户端,能够减少整个节目分发的时间,减少对网络带宽的浪费,提高用户体验质量。
为了解决上述技术问题,本发明提供了一种分段节目快速分发的方法,应用于服务器端,包括:
将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
接收到客户端对某一分段索引的分发请求;
向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
进一步地,在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系之后,还包括:
生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端;
接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL;
根据所述URL向所述客户端返回所述分发响应。
进一步地,所述生成一个统一资源定位符URL标识分段索引,包括:
生成一个URL标识第一个分段索引;或者,
通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
进一步地,所述方法还包括:
接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
为了解决上述技术问题,本发明提供了一种分段节目快速分发的方法,应用于客户端,包括:
向服务器端发送获取某一分段索引的分发请求;
接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
将所述分段节目按照所述分段索引在索引文件中的序列号依次进行存储。
进一步地,所述向服务器端发送获取某一分段索引的分发请求之前,包括:
接收所述服务器发送的标识第一个分段索引的统一资源定位符URL;或者
通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
进一步地,所述向服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述某一分段索引的URL;
所述标识所述某一分段索引的URL,包括:
标识第一个分段索引的URL;或者,
标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
进一步地,所述方法还包括:
接收到所述服务器端返回的分发响应,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
进一步地,所述方法还包括:
接收到所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
所述客户端依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;
接收所述服务器端依次返回的分发响应,并将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
进一步地,所述方法还包括:
接收到所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表;
将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
为了解决上述技术问题,本发明还提供了一种服务器,用于分段节目快速分发,包括:
分段模块,用于将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
接收模块,用于接收到客户端对某一分段索引的分发请求;
分发响应模块,用于向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
进一步地,所述分段模块,还用于在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系之后,生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端;
所述接收模块,还用于接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL;
所述分发响应模块,还用于根据所述URL向所述客户端返回所述分发响应。
进一步地,所述分段模块,还用于生成一个统一资源定位符URL标识分段索引,包括:
生成一个URL标识第一个分段索引;或者,
通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
进一步地,所述接收模块,还用于接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
所述分发响应模块,还用于向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
为了解决上述技术问题,本发明还提供了一种客户端,用于分段节目快速分发,包括:
分发请求模块,用于向服务器端发送获取某一分段索引的分发请求;
接收模块,用于接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
存储模块,用于将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
进一步地,所述客户端还包括与所述分发请求模块相连的交互模块,其中:
所述交互模块,用于接收所述服务器发送的标识第一个分段索引的统一资源定位符URL;或者,通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
进一步地,所述分发请求模块,用于向服务器端发送获取某一分段索引的分发请时,在所述分发请求中携带标识所述分段索引的URL;
所述标识所述某一分段索引的URL,包括:
标识第一个分段索引的URL;或者,
标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
进一步地,所述接收模块,还用于接收所述服务器端返回的分发响应,其中,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
所述分发请求模块,还用于如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
所述存储模块,还用于将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
进一步地,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
所述分发请求模块,还用于依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;
所述存储模块,用于将所述服务器端依次返回的分发响应中携带的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
进一步地,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表;
所述存储模块,还用于将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
进一步地,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
与现有技术相比,本发明提供的分段节目快速分发的方法、服务器和客户端,当客户端请求某一个分段索引时,服务器端会将分段索引跟索引中对应的分段节目同时推送给客户端,减少了传统的不断解析分段索引获取分段节目中的网络时延和解析分段索引的时延,也增加了网络带宽的利用率,提高了用户体验,最终达到一种快速分发的效果。
附图说明
图1是现有技术中分段节目分发的示意图;
图2是现有技术中服务器向客户端返回的分发响应结构示意图;
图3是本实施例中分段节目分发的示意图
图4是实施例中服务器的结构图;
图5是实施例中客户端的结构图;
图6是实施例中组网示意图;
图7是实施例中架构示意图;
图8是实施例中应用于服务器端的分段节目快速分发的方法流程图。
图9是实施例中应用于客户端的分段节目快速分发的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例:
本实施的核心思想就是:在服务器端建立每个分段索引与一个或多个分段节目的对应关系,当客户端请求某一个分段索引时,服务器端通过在响应体中的不同字段中分别携带分段索引和索引中对应的分段节目,从而将分段索引跟索引中对应的分段节目同时推送给客户端,客户端通过持续请求所有分段索引来实现对全部分段节目的分发,如图3所示,提供了本实施例中分段节目分发的示意图。本实施例中分发响应的字段结构与现有技术中的相同,如图2所示,包括:响应行、响应头和响应体,但是,对响应头和响应体携带的信息做了改变,在本实施例中,响应头可以携带了指示信息,包括:标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;或者,指示所述索引文件中最后一个分段索引的序列号;响应头中还可以携带分段索引对应的分段节目的名称列表;所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
如图4所示,本实施例提供了一种服务器,用于分段节目快速分发,包括:
分段模块,用于将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
接收模块,用于接收到客户端对某一分段索引的分发请求;
分发响应模块,用于向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
其中,所述分段模块,还用于在将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系之后,生成一个统一资源定位符URL标识所述分段索引,并通知所述客户端;
其中,生成一个统一资源定位符URL标识分段索引,包括:
生成一个URL标识第一个分段索引;或者,
通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
所述接收模块,还用于接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL;
所述分发响应模块,还用于根据所述URL向所述客户端返回所述分发响应。
作为一种优选的方式,所述接收模块,还用于接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
所述分发响应模块,还用于向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
如图5所示,本实施例提供了客户端,用于分段节目快速分发,包括:
分发请求模块,用于向服务器端发送获取某一分段索引的分发请求;
接收模块,用于接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
存储模块,用于将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
作为一种优选的方式,所述客户端还包括与所述分发请求模块相连的交互模块,其中:
所述交互模块,用于接收所述服务器发送的标识第一个分段索引的统一资源定位符URL;或者,通过与所述服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
其中,所述分发请求模块,用于向服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述某一分段索引的URL;
作为一种优选的方式,所述标识所述某一分段索引的URL,包括:
标识第一个分段索引的URL;或者,
标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
此外,作为一种优选的方式,所述接收模块,还用于接收所述服务器端返回的分发响应,其中,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
所述分发请求模块,还用于如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
所述存储模块,还用于将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
作为另一种优选的方式,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
所述分发请求模块,还用于依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;
所述存储模块,用于将所述服务器端依次返回的分发响应中携带的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
此外,所述接收模块,还用于接收所述服务器端返回的分发响应,所述分发响应的响应头中携带有分段索引对应的分段节目的名称列表;
所述存储模块,还用于将所述分段节目按照所述分段索引中对应的分段节目的名称列表依次进行存储。
其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
其中,在实际实施时,如图6所示,中心网络即为本实施例中的服务器端,边缘网络即为本实施例中的客户端;又如图7所示,中心节点即为本实施例中的服务器端,边缘节点即为本实施例中的客户端,在边缘节点将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次存储在磁盘上,为用户终端提供完整的节目。所述用户终端可以是机顶盒、VLC播放器或手机等等。
如图8所示,本实施例提供了一种分段节目快速分发的方法,应用于服务器端,包括以下步骤:
S101:将节目源分成多个连续的分段节目和分段索引,建立每个分段索引与一个或多个分段节目的对应关系;
其中,每个分段节目都包含节目解码信息和随机访问单元信息,保证每一个分段节目可以独立解码播放,这样方便分发后的分段节目可以单独提供其他媒体服务,比如点播。被划分的分段节目是连续依次排列的。
S102:接收到客户端对某一分段索引的分发请求;
其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
通过接收客户端段持续的分发请求,实现对全部分段节目的分发。
S103:向所述客户端返回分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目。
其中,在步骤S101中,在建立每个分段索引与一个或多个分段节目的对应关系后,还包括:
生成一个统一资源定位符URL标识相应的分段索引,并通知所述客户端;
在步骤S102和步骤S103中,服务器接收到所述客户端对某一分段索引的分发请求,所述分发请求中携带有对应该分段索引的URL;根据所述URL向所述客户端返回所述分发响应。
其中,优选地,所述生成一个统一资源定位符URL标识相应的分段索引,包括:
生成一个URL标识分段索引列表,所述分段索引列表包含索引文件中所有的分段索引;或者,
生成一个URL标识第一个分段索引;或者,
通过与所述客户端交互,生成一个URL标识所述客户端请求下发的某一分段节目对应的分段索引。
比如,为客户端定制URL,客户端向服务器发送POST消息,请求某一分段节目,服务器端解析得到该分段节目对应的分段索引,给客户端构造一个URL标识该分段索引;然后,客户端就可以根据该URL向服务器请求分段索引了。
作为一种优选的方式,在步骤S102中,如果接收到所述客户端的携带有标识第一个分段索引或某一分段节目对应的分段索引的URL的分发请求;
在步骤S103中,所述服务器向所述客户端返回分发响应,在所述分发响应的响应头中标识该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
或者,在所述分发响应的响应头中指示所述索引文件中最后一个分段索引的序列号。
这样客户端就可以根据服务器下发的分发响应获得是否要继续请求分段索引,以及得到下一个分段索引的URL来请求该分段索引及对应的分段节目。
如图9所示,本实施例提供了一种分段节目快速分发的方法,应用于客户端,包括以下步骤:
S201:向服务器端发送获取某一分段索引的分发请求;
其中,所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
其中,所述客户端向所述服务器端发送获取某一分段索引的分发请求时,在所述分发请求中携带标识所述分段索引的URL。
所述标识所述分段索引的URL是通过与服务器交互从服务器接收到的,有多种方式,例如,包括:
标识分段索引列表的URL,所述分段索引列表包含索引文件中所有的分段索引;或者,
标识第一个分段索引的URL;或者,
通过与服务器交互,接收所述服务器发送的标识所述客户端请求下发的某一分段节目对应的分段索引的URL。
S202:接收所述服务器端返回的分发响应,所述分发响应的响应体中携带有所述分段索引以及该分段索引对应的一个或多个分段节目;
S203:将所述分段节目按照所述分段索引在索引文件中的序列号进行存储。
其中,一种优选的方式是,接收到所述服务器端返回的分发响应,所述分发响应的响应头中标识有该分段索引是否为索引文件中最后一个分段索引,如果是,则指示本分段索引为索引文件中最后一个分段索引;如果不是,则指示下一个分段索引;
如果所述响应头指示有下一个分段索引,则向所述服务器发送获取下一个分段索引的分发请求,所述分发请求中携带有标识所述下一个分段索引的URL;如果所述响应头指示本分段索引为所述索引文件中最后一个分段索引,则不向所述服务器发送分发请求;
将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
其中,另一种优选的方式是,接收到所述服务器端返回的分发响应,所述分发响应的响应头中指示有索引文件的最后一个分段索引的序列号;
所述客户端依次向所述服务器发送获取第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的分发请求,所述分发请求中携带有标识所述第二个分段索引或某一分段节目对应的分段索引的下一个分段索引直到最后一个分段索引的URL;
接收所述服务器端依次返回的分发响应,并将所有获取的分段节目按照分段索引在所述索引文件中的序列号依次进行存储。
在一个应用示例中,以在DASH(Dynamic adaptive streaming over HTTP,基于超文本传输协议的动态调整流媒体服务)系统中传送分段节目为例,基于HTTP协议,采用MPEG-2TS流文件作为数据源,文件名为file.ts。
根据本实施例中的方法在服务器端按以下步骤将节目源进行分段,生成多个分段索引和分段节目:
1、从视频图像关键帧的位置开始将文件file.ts按照时间切分为10秒长度的多个分段数据,每一个分段数据均为MPEG-2TS文件,每一个分段数据的解码单位均以图像关键帧开始,这样得到的多个分段TS文件,分别命名为1.ts,2.ts,…,100.ts;
2、利用XML格式生成每个小TS文件对应的索引文件,用来描述小TS文件的播放时长,文件名等信息。为了简化,在本应用示例中将分段节目和分段索引的对应关系设置为一对一,比如1.index对应1.ts;
3、构造统一资源定位URL。
将分段后的多个小TS文件1.ts,2.ts,…100.ts和分段索引文件1.index,2.index,…100.index放在HTTP WEB服务器的存储设备上,同时生成统一资源定位URL标识第一个分段索引。
http://ip:port/path/1.index。
根据本实施例中的方法在客户端对节目按以下方法进行分发:
1、根据统一资源定位URL通过HTTP GET方法获取第一个分段索引1.index和1.ts;
2、从HTTP协议响应头和响应体中分别解析出分段节目的文件名和索引文件中最后一个分段索引的序列号,在本应用示例中,得到第一个分段索引对应的分段节目为1.ts,索引文件最后一个分段索引的序列号为100;
客户端在得到最后一个索引文件的序列号后,就可以从第二个分段索引开始依次获取索引文件所有的分段索引及其对应的分段节目,直到最后一个分段索引。
3、通过以下的URL获取第二个至最后一个分段索引;http://ip:port/path/2.index
http://ip:port/path/3.index
……
http://ip:port/path/100.index
经过上述过程,客户端获取到所有分段文件,即分段索引及其对应的分段节目,并从HTTP协议响应头中解析出分段节目的文件名,对应的分段节目为2.ts,3.ts,4.ts……100.ts;
4、最后,将获取的所有分段文件按照索引文件的序列号依次进行存储,或者将获取的所有分段文件按照分段节目名称列表进行存储。
本实施提供的方法和装置同样适合其他的传输协议,比如RTSP等,这样本发明的应用可以推广到流媒体其他系统,不限于DASH系统。
从上述实施例可以看出,相对于现有技术,上述实施例中提供的分段节目快速分发的方法、服务器和客户端,当客户端请求某一个分段索引时,服务器端会将分段索引跟索引中对应的分段节目同时推送给客户端,减少了传统的不断解析分段索引获取分段节目中的网络时延和解析分段索引的时延,也增加了网络带宽的利用率,提高了用户体验,最终达到一种快速分发的效果。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
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所述的客户端,其特征在于:
所述某一分段索引为所述索引文件中的第一分段索引或者所述索引文件中的非第一分段索引,所述索引文件包括所有的索引分段。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410037902.2A CN103813185B (zh) | 2014-01-26 | 2014-01-26 | 一种分段节目快速分发的方法、服务器及客户端 |
PCT/CN2014/085193 WO2015109847A1 (zh) | 2014-01-26 | 2014-08-26 | 一种分段节目快速分发的方法、服务器及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410037902.2A CN103813185B (zh) | 2014-01-26 | 2014-01-26 | 一种分段节目快速分发的方法、服务器及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103813185A CN103813185A (zh) | 2014-05-21 |
CN103813185B true CN103813185B (zh) | 2019-01-25 |
Family
ID=50709313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410037902.2A Active CN103813185B (zh) | 2014-01-26 | 2014-01-26 | 一种分段节目快速分发的方法、服务器及客户端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103813185B (zh) |
WO (1) | WO2015109847A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103813185B (zh) * | 2014-01-26 | 2019-01-25 | 中兴通讯股份有限公司 | 一种分段节目快速分发的方法、服务器及客户端 |
CN103796035B (zh) * | 2014-01-27 | 2019-11-05 | 南京中兴软件有限责任公司 | 一种处理分段节目的方法、服务器及客户端设备 |
CN104320679B (zh) * | 2014-10-11 | 2019-02-15 | 中兴通讯股份有限公司 | 一种基于hls协议的用户信息获取方法和服务器 |
CN105812831B (zh) * | 2014-12-31 | 2020-06-09 | 中兴通讯股份有限公司 | 网络节目的录制方法、装置、系统以及播放方法、装置 |
WO2016172967A1 (zh) * | 2015-04-30 | 2016-11-03 | 华为技术有限公司 | 一种媒体流传输方法及装置 |
CN106685942B (zh) * | 2016-12-20 | 2020-07-24 | 徐亮 | 视频直播回播系统以及视频直播回播方法 |
CN106953892B (zh) * | 2017-02-14 | 2020-08-07 | 北京时间股份有限公司 | 一种获取文件的方法、装置及系统 |
CN107483546A (zh) * | 2017-07-21 | 2017-12-15 | 北京供销科技有限公司 | 一种文件存储方法及文件存储装置 |
CN108347625B (zh) * | 2018-03-09 | 2020-10-13 | 北京数码视讯软件技术发展有限公司 | 一种ts流媒体定位的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938483A (zh) * | 2010-09-03 | 2011-01-05 | 中兴通讯股份有限公司 | 一种直播内容分发方法和系统 |
CN101951412A (zh) * | 2010-10-15 | 2011-01-19 | 上海交通大学 | 基于http协议的多子流流媒体传输系统及其传输方法 |
CN102487454A (zh) * | 2010-12-03 | 2012-06-06 | 中兴通讯股份有限公司 | 一种分段节目快速启动的方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130936B (zh) * | 2010-08-17 | 2013-10-09 | 华为技术有限公司 | 一种在动态http流传输方案中支持时移回看的方法和装置 |
CN102238434B (zh) * | 2011-07-22 | 2017-12-19 | 中兴通讯股份有限公司 | 一种iptv流媒体文件虚拟分段和使用的方法及系统 |
CN102572555B (zh) * | 2012-01-16 | 2014-06-18 | 深圳市龙视传媒有限公司 | 一种实现hls客户端视频直播回看的方法及系统 |
CN103813185B (zh) * | 2014-01-26 | 2019-01-25 | 中兴通讯股份有限公司 | 一种分段节目快速分发的方法、服务器及客户端 |
-
2014
- 2014-01-26 CN CN201410037902.2A patent/CN103813185B/zh active Active
- 2014-08-26 WO PCT/CN2014/085193 patent/WO2015109847A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938483A (zh) * | 2010-09-03 | 2011-01-05 | 中兴通讯股份有限公司 | 一种直播内容分发方法和系统 |
CN101951412A (zh) * | 2010-10-15 | 2011-01-19 | 上海交通大学 | 基于http协议的多子流流媒体传输系统及其传输方法 |
CN102487454A (zh) * | 2010-12-03 | 2012-06-06 | 中兴通讯股份有限公司 | 一种分段节目快速启动的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103813185A (zh) | 2014-05-21 |
WO2015109847A1 (zh) | 2015-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103813185B (zh) | 一种分段节目快速分发的方法、服务器及客户端 | |
US9882937B2 (en) | Communication receiver | |
US10116572B2 (en) | Method, device, and system for acquiring streaming media data | |
EP2391086B1 (en) | Method and apparatus for playing live content | |
CN104581374B (zh) | 一种获取切片文件和生成子m3u8文件的方法、节点及服务器 | |
CN102215116B (zh) | 在数字广播系统中提供时间偏移服务的方法、设备及系统 | |
EP2493191B1 (en) | Method, device and system for realizing hierarchically requesting content in http streaming system | |
US10277660B1 (en) | Apparatus and method for providing streaming content | |
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
TW201021573A (en) | Proxy functionality | |
US20140074961A1 (en) | Efficiently Delivering Time-Shifted Media Content via Content Delivery Networks (CDNs) | |
KR101705898B1 (ko) | 디지털 방송 시스템에서 타임시프트 서비스 제공 방법 및 시스템 | |
WO2017080427A1 (zh) | 一种媒体播放方法、终端、系统及计算机存储介质 | |
CN105812831B (zh) | 网络节目的录制方法、装置、系统以及播放方法、装置 | |
CN109151614B (zh) | 一种降低hls直播播放延迟的方法及装置 | |
CN112243158B (zh) | 媒体文件处理方法、装置、计算机可读介质及电子设备 | |
WO2012041039A1 (zh) | 数字电视终端访问互联网视频的方法及相关设备和系统 | |
CN112243136B (zh) | 内容播放方法、视频存储方法和设备 | |
CN103796035A (zh) | 一种处理分段节目的方法、服务器及客户端设备 | |
CN109587517A (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
WO2016090912A1 (zh) | 一种直播视频的生成及播放方法、装置、终端及系统 | |
CN113301100A (zh) | 基于内容分发网络的数据容灾方法、装置、设备及介质 | |
RU2658672C2 (ru) | Устройство предоставления контента, программа, оконечное устройство и система предоставления контента | |
CN102256181A (zh) | 互联网内容访问方法及相关装置 | |
JP2009177811A (ja) | 分割後のp2pモードでの繰延回復を目的としたコンテンツのライブ送信のための方法、並びに制御装置及び関連する設備 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |