CN107959667A - 一种媒体分片的推送方法、服务器及客户端 - Google Patents
一种媒体分片的推送方法、服务器及客户端 Download PDFInfo
- Publication number
- CN107959667A CN107959667A CN201610908973.4A CN201610908973A CN107959667A CN 107959667 A CN107959667 A CN 107959667A CN 201610908973 A CN201610908973 A CN 201610908973A CN 107959667 A CN107959667 A CN 107959667A
- Authority
- CN
- China
- Prior art keywords
- push
- burst
- undetermined
- client
- server
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 239000012634 fragment Substances 0.000 claims abstract description 56
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 27
- 238000013461 design Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 19
- 238000003860 storage Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- 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
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种媒体分片的推送方法、服务器及客户端,其中,该方法包括:服务器接收客户端发送的分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;所述服务器根据所述客户端请求推送的分片,确定可推送分片和待定推送分片;所述服务器向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收所述待定推送分片的推送承诺。采用本发明的方法,可以减少客户端的播放延迟。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种媒体分片的推送方法、服务器及客户端。
背景技术
客户端获取媒体资源并进行播放的方式有多种,典型的有:超文本传输协议(英文:Hypertext Transfer Protocol,简称:HTTP)文件下载或者点对点(英文:Peer toPeer,简称:P2P)文件下载到本地磁盘后播放、HTTP渐进式下载(英文:HTTP ProgressiveDownload)以及HTTP的动态自适应流(英文:Dynamic Adaptive Streaming over HTTP,简称:DASH)方案等等。其中,DASH对采用HTTP传输运动图像专家组(英文:Moving PictureExperts Group,简称:MPEG)媒体涉及到的各方面提出了一系列的技术要求。
DASH标准规范了媒体描述文件(英文:Media Presentation description,简称:MPD)和分片(Segment)的格式。任意媒体资源都由一个个分片构成,其中,分片是DASH客户端向DASH服务器请求媒体资源的基本单位。MPD主要描述了媒体资源的信息,包括不同码率的分片的下载地址。客户端获取MPD后,可以根据网络状况如下载速度、缓存多少等,选择合适码率的分片;服务器根据客户端的选择,通过HTTP协议将分片发送到客户端,以保证用户的观看体验。
为了减小客户端播放时延,DASH标准(ISO-IEC_23009-6)中正在制定的part6:DASH with Server Push and WebSockets提出了推送机制。具体如图1所示:步骤1、客户端向服务器发送MPD请求消息,该请求消息中携带推送指令(Push Directive),推送指令中包含客户端希望服务器推送的分片的标识,如初始化分片的标识。步骤2、服务器响应客户端的请求,发送推送承诺(Push Promise)和MPD给客户端。推送承诺指示服务器将会在哪个流标识(StreamID)指示的流中推送初始化分片。步骤3、服务器在发送完MPD和推送承诺后,根据流标识,在推送承诺指定的流中主动推送初始化分片至客户端。步骤4、客户端向服务器发送分片请求消息,消息中包括请求分片的标识和推送指令,推送指令中包含客户端希望服务器推送的分片标识;客户端希望服务器推送的分片标识可以是通过列表或模板的形式描述的分片的下载地址,也可以是指定了所请求的分片之后连续的几个分片。例如客户端请求分片1,在推送指令中包括分片2的标识、分片的标识3、分片4和分片5的标识。步骤5、服务器响应客户端的请求,依次发送分片2的推送承诺、分片3的推送承诺、分片4的推送承诺、分片5的推送承诺、分片1至客户端,推送承诺包含了每个即将推送的分片的流标识和分片标识,用于指示在哪个流中推送哪个分片。步骤6、根据第5步推送承诺中的流标识,服务器在指定流中向客户端推送分片。步骤7、客户端根据推送承诺中的分片标识和流标识,接收服务器推送来的分片,进行解码播放。重复步骤4至7直到播放完毕或用户停止观看等。通过服务器的主动推送,可以加快媒体播放启动速度,减少延迟,也减少了消息的交互。
图1所示方法存在的缺陷在于:如果客户端请求服务器推送的分片数量较多,服务器需要先发送后续要推送的所有分片对应的推送承诺帧,然后才会发送分片1的数据。例如,客户端的推送指令中请求推送后续的50个分片,那么服务器将会先发送50个推送承诺帧通知客户端后续50个分片将分别采用哪些流标识进行推送,然后才会发送分片1的数据,增加了客户端的播放延迟。
发明内容
本发明实施例提供了一种媒体分片的推送方法及相关设备,可以减少客户端的播放延迟。
第一方面,本发明的实施例提供一种媒体分片的推送方法,包括:
服务器接收客户端发送的分片请求消息,分片请求消息包括请求分片标识和推送指令,推送指令用于指示客户端请求推送的分片。服务器根据客户端请求推送的分片,确定可推送分片和待定推送分片。服务器向客户端发送可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息,待定推送指示信息用于指示客户端等待接收待定推送分片的推送承诺。本发明实施例中,服务器将客户端请求推送的分片进行分组,从而先发送一部分分片对应的推送承诺,在后续过程中再发送其他分片对应的推送承诺,避免因客户端请求推送的分片的数量较大,导致客户端在接收请求的分片之前因接收过多的推送承诺导致播放延迟较大的问题,从而可以减少客户端的播放延迟。
在一种可能的设计中,服务器根据客户端请求推送的分片,确定可推送分片和待定推送分片,包括:服务器根据第一待定推送参数将客户端请求推送的分片分为可推送分片和待定推送分片。其中,第一待定推送参数为服务器本地配置的或者分片请求消息中携带的。本发明实施例中,服务器根据第一待定推送参数来确定可推送分片和待定推送分片。第一待定推送参数可以由服务器本地配置,便于服务器结合自身推送分片的能力,来确定可推送分片。第一待定推送参数也可以由客户端来设置,服务器按照客户端的要求确定可推送分片,与由服务器设置第一待定推送参数的方式相比,可以满足不同用户的个性化推送需求。
在一种可能的设计中,服务器根据第一待定推送参数将客户端请求推送的分片分为可推送分片和待定推送分片,具体为:第一待定推送参数为推送阈值,服务器确定客户端请求推送的分片中第1个分片至第N个分片为可推送分片,并将客户端请求推送的分片中除可推送分片以外的其他分片确定为待定推送分片,其中N为由推送阈值确定的正整数;或者,第一待定推送参数为随机指示符,服务器根据随机指示符,将客户端请求推送的分片中已缓存的分片确定为可推送分片,并将客户端请求推送的分片中除可推送分片以外的其他分片确定为待定推送分片。本发明实施例中,服务器通过推送阈值或者服务器当前缓存的分片来确定可推送分片,可以使得服务器每次发送推送承诺的数量不至于过多,从而避免客户端的播放时延较大。
在一种可能的设计中,服务器向客户端发送可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:服务器根据第一待定推送参数,确定待定推送分片中的可推送分片。服务器根据第二待定推送参数,将待定推送分片中的可推送分片对应的推送承诺发送给客户端,待定推送分片中的可推送分片为待定推送分片中的部分或全部分片。其中,第二待定推送参数用于指示服务器向客户端发送待定推送分片中的可推送分片的推送承诺的条件,且第二待定推送参数为服务器本地配置的或者分片请求消息中携带的。
本发明实施例中,服务器根据第二待定推送参数来确定可推送分片对应的推送承诺的发送时机,从而及时地将待定推送分片中的可推送分片对应的推送承诺发送给客户端,提高推送承诺的发送效率。第二待定推送参数可以由服务器本地配置,便于服务器结合自身推送分片的能力,来确定何时发送可推送分片对应的推送承诺。第二待定推送参数也可以由客户端来设置,服务器按照客户端的要求确定何时发送可推送分片对应的推送承诺,与由服务器设置第二待定推送参数的方式相比,可以满足不同用户的个性化推送需求。
在一种可能的设计中,服务器根据第二待定推送参数,将待定推送分片中的可推送分片对应的推送承诺发送给客户端,具体为:当已发送推送承诺且未推送的分片的剩余数量小于第一预设数量时,服务器将待定推送分片中的可推送分片对应的推送承诺发送给客户端;或者,当待定推送分片中包含满足第二预设数量的已缓存分片时,服务器将待定推送分片中的可推送分片对应的推送承诺发送给客户端。本发明实施例中,服务器根据已发送推送承诺且未推送的分片剩余数量或者服务器已缓存分片的数量,确定何时将待定推送分片中的可推送分片对应的推送承诺发送给客户端,从而可以及时地将待定推送分片对应的推送承诺发送给客户端,提高推送承诺的发送效率。
在一种可能的设计中,服务器向客户端发送可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:服务器接收客户端针对已发送推送承诺且未推送的分片逐一发送的取消推送请求消息。服务器根据取消推送请求消息,取消向客户端推送已发送推送承诺且未推送的分片。当服务器取消向客户端推送已发送推送承诺且未推送的所有分片之后,服务器取消向客户端推送尚未发送推送承诺的分片。本发明实施例中,客户端如果中止播放媒体资源时,只需要针对所有已发送推送承诺且未推送的分片逐一发送取消推送请求消息,而无需针对尚未发送推送承诺的分片发送取消推送请求消息,减少了客户端发送取消推送请求消息的次数,从而降低了客户端的开销。
在一种可能的设计中,服务器向客户端发送可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:服务器接收客户端针对目标分片发送的取消推送请求消息,目标分片为任一已发送推送承诺且未推送的分片,取消推送请求消息中包括取消待定推送指示信息,取消待定推送指示信息用于指示服务器取消向客户端推送尚未发送推送承诺的分片。服务器根据取消推送请求消息,取消向客户端推送目标分片,以及取消向客户端推送尚未发送推送承诺的分片。
本发明实施例中,客户端可以在发送的某一取消推送请求消息中携带取消待定推送指示信息,指示服务器取消向客户端推送尚未发送推送承诺的分片,服务器根据取消待定推送指示信息,确定出需要取消向客户端推送尚未发送推送承诺的分片。相较于服务器根据客户端取消推送已发送推送承诺且未推送的所有分片,来间接确定取消向客户端推送尚未发送推送承诺的分片的方式,本发明实施例可以避免服务器在接收最后一个已发送推送承诺且未推送的分片的取消推送请求消息之前,服务器就已将待定推送分片对应的推送承诺发送给客户端造成的开销,从而使得取消操作更加及时。
在一种可能的设计中,服务器根据客户端请求推送的分片,确定可推送分片和待定推送分片之后,还包括:服务器生成第一分片列表,该第一分片列表中记录有已发送推送承诺且未推送的分片的标识和对应的流标识。通过维护第一分片列表,服务器可以明确哪些已发送推送承诺的分片还未推送。
在一种可能的设计中,服务器根据客户端请求推送的分片,确定可推送分片和待定推送分片之后,还包括:服务器生成第二分片列表,该第二分片列表中记录有尚未发送推送承诺的分片的标识。服务器将待定推送分片中的可推送分片对应的推送承诺发送给客户端之后,服务器将待定推送分片中的可推送分片对应的标识从第二分片列表中删除。通过维护第二分片列表,服务器可以明确哪些分片还未发送推送承诺。
在一种可能的设计中,取消推送请求消息中携带流标识,服务器根据取消推送请求消息,取消向客户端推送已发送推送承诺且未推送的分片,具体为:服务器根据推送请求消息中携带的流标识,删除第一分片列表中与所述流标识对应的记录。服务器取消向客户端推送尚未发送推送承诺的分片,具体为:服务器将第二分片列表清空或删除。
第二方面,本发明实施例提供了一种媒体分片的推送方法,包括:
客户端向服务器发送分片请求消息,分片请求消息包括请求分片标识和推送指令,推送指令用于指示客户端请求推送的分片。客户端接收服务器发送的可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息,待定推送指示信息用于指示客户端等待接收客户端请求推送的分片中除可推送分片以外的待定推送分片的推送承诺。本发明实施例中,客户端向服务器请求推送分片之后,客户端只收到可推送分片对应的推送承诺,根据服务器返回的待定推送指示信息确定后续服务器还会发送剩余分片的推送承诺,相对于现有技术而言,一方面可以避免客户端在接收请求的分片之前因接收过多的推送承诺导致播放时延较大的问题;另一方面客户端只需要等待服务器继续发送剩余分片的推送承诺即可,不需要再次向服务器发送重新发送的分片请求消息,节约了消息开销。
在一种可能的设计中,分片请求消息中还包括第一待定推送参数,第一待定推送参数用于指示服务器根据第一待定推送参数将客户端请求推送的分片分为可推送分片和待定推送分片。本发明实施例中,客户端来设置第一待定推送参数,服务器根据客户端发送的第一待定推送参数来确定可推送分片和待定推送分片,从而满足了不同用户的个性化推送需求。
在一种可能的设计中,第一待定推送参数包括用于指示可推送分片数量的推送阈值或者用于指示服务器将已缓存的分片确定为可推送分片的随机指示符。本发明实施例中,客户端设置推送阈值或随机指示符,使得服务器根据推送阈值或者服务器当前缓存的分片来确定可推送分片,以保证服务器每次发送推送承诺的数量不至于过多,从而避免客户端的播放时延较大。
在一种可能的设计中,客户端接收服务器发送的可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:客户端接收服务器发送的待定推送分片中的可推送分片对应的推送承诺,待定推送分片中的可推送分片为待定推送分片中的部分或全部分片。本发明实施例中,客户端还可以接收待定推送分片中的可推送分片对应的推送承诺,从而实现分批次地发送推送承诺,相较于现有技术,本发明实施例中,客户端不会一次性将客户端请求的所有分片对应的推送承诺接收完,避免因客户端请求推送的分片的数量较大,导致客户端在接收请求的分片之前因接收过多的推送承诺导致播放延迟较大的问题,可以减少客户端的播放延迟。
在一种可能的设计中,分片请求消息中还包括第二待定推送参数,第二待定推送参数用于指示服务器根据第二待定推送参数确定发送待定推送分片中的可推送分片对应的推送承诺的条件。本发明实施例中,客户端向服务器发送第二待定推送参数,以使服务器根据第二待定推送参数来确定可推送分片对应的推送承诺的发送时机。
在一种可能的设计中,第二待定推送参数包括:当已发送推送承诺且未推送的分片的剩余数量小于第一预设数量时,服务器将待定推送分片中的可推送分片对应的推送承诺发送给客户端;或者,当待定推送分片中包含满足第二预设数量的已缓存分片时,服务器将待定推送分片中的可推送分片对应的推送承诺发送给客户端。本发明实施例中,当已发送推送承诺且未推送的分片剩余数量或者服务器已缓存分片的数量满足预设条件时,客户端可以及时地接收待定推送分片对应的推送承诺。
在一种可能的设计中,客户端接收服务器发送的可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:客户端针对已发送推送承诺且未推送的分片,向服务器逐一发送取消推送请求消息,取消推送请求消息用于指示服务器取消向客户端推送已发送推送承诺且未推送的分片。本发明实施例中,客户端如果中止播放媒体资源时,只需要针对已发送推送承诺且未推送的所有分片逐一发送取消推送请求消息,而无需针对尚未发送推送承诺的分片发送取消推送请求消息,减少了客户端发送取消推送请求消息的次数,从而降低了客户端的开销。
在一种可能的设计中,客户端接收服务器发送的可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:客户端针对目标分片向服务器发送取消推送请求消息,目标分片为任一已发送推送承诺且未推送的分片,取消推送请求消息中包括取消待定推送指示信息,取消待定推送指示信息用于指示服务器取消向客户端推送尚未发送推送承诺的分片。
本发明实施例中,客户端可以在发送的某一取消推送请求消息中携带取消待定推送指示信息,指示服务器取消向客户端推送尚未发送推送承诺的分片,服务器根据取消待定推送指示信息,确定出需要取消向客户端推送尚未发送推送承诺的分片。相较于服务器根据客户端取消推送已发送推送承诺且未推送的所有分片,来间接确定取消向客户端推送尚未发送推送承诺的分片的方式,本发明实施例可以避免服务器在接收最后一个已发送推送承诺且未推送的分片的取消推送请求消息之前,服务器就已将待定推送分片对应的推送承诺发送给客户端造成的开销,从而使得取消操作更加及时。
在一种可能的设计中,客户端接收服务器发送的可推送分片中每一个分片对应的推送承诺、请求分片标识对应的分片以及待定推送指示信息之后,还包括:客户端根据服务器发送的推送承诺确定可推送分片,并根据可推送分片以及客户端请求推送的分片确定待定推送分片。
在一种可能的设计中,在客户端根据服务器发送的推送承诺确定可推送分片,并根据可推送分片以及客户端请求推送的分片确定待定推送分片之后,还包括:客户端生成第一分片列表,该第一分片列表中记录有已发送推送承诺且未推送的分片的标识和对应的流标识。通过维护第一分片列表,客户端可以明确哪些已发送推送承诺的分片还未推送。
在一种可能的设计中,客户端根据服务器发送的推送承诺确定可推送分片,并根据可推送分片以及客户端请求推送的分片确定待定推送分片之后,还包括:客户端生成第二分片列表,该第二分片列表中记录有尚未发送推送承诺的分片的标识。当客户端接收服务器发送的待定推送分片中的可推送分片对应的推送承诺之后,还包括:客户端将待定推送分片中的可推送分片对应的标识从第二分片列表中删除。通过维护第二分片列表,客户端可以明确哪些分片还未发送推送承诺。
在一种可能的设计中,客户端针对已发送推送承诺且未推送的分片,向服务器逐一发送取消推送请求消息之后,还包括:客户端将第一分片列表以及第二分片列表清空或删除。
第三方面,本发明实施例提供了一种服务器,该服务器具有实现上述第一方面中服务器行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该服务器的结构中包括处理器和存储器,存储器用于存储支持该服务器执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。该服务器还可以包括通信接口,用于该服务器与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种客户端,该客户端具有实现上述第二方面中客户端行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该客户端的结构中包括处理器和存储器,存储器用于存储支持该客户端执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。该客户端还可以包括通信接口,用于该客户端与其他设备或通信网络通信。
第五方面,本发明提供了一种服务器,该服务器包括用于执行上述第一方面或第一方面任意一种实现方式所描述的媒体分片的推送方法的模块或单元。
第六方面,本发明提供了一种客户端,该客户端包括用于执行上述第二方面或第二方面任意一种可能的设计所描述的媒体分片的推送方法的模块或单元。
第七方面,本发明提供了一种通信系统,包括服务器和客户端,其中,服务器为第三方面或第五方面所描述的服务器,客户端为第四方面或第六方面所描述的客户端。
第八方面,本发明实施例提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述第一方面为服务器所设计的程序。
第九方面,本发明实施例提供了一种计算机存储介质,用于储存为上述客户端所用的计算机软件指令,其包含用于执行上述第二方面为客户端所设计的程序。
通过实施本发明实施例,服务器将客户端请求推送的分片划分为可推送分片以及待定推送分片,并向客户端发送可推送分片各自对应的推送承诺以及待定推送指示信息,客户端可以根据待定推送指示信息在后续接收推送的分片时准备接收新的推送承诺,因此,当客户端请求推送的分片的数量较大时,可以避免客户端因需要接收大量的推送承诺导致接收分片延迟较大的问题。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是传统技术中媒体分片的推送方法的流程示意图;
图2是本发明实施例提供的媒体分片推送系统的架构示意图;
图3是本发明实施例提供的一种计算机设备的结构示意图;
图4是本发明实施例提供的一种媒体分片的推送方法的流程示意图;
图5是本发明实施例提供的一种取消推送媒体分片的方法的流程示意图;
图6为本发明实施例提供的服务器的结构示意图;
图7为本发明实施例提供的客户端的结构示意图。
具体实施方式
本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
图2为本发明实施例提供的一种媒体分片推送系统200的架构示意图,包括:服务器201、客户端202以及网络203。客户端202通过网络203,与服务器201通信。
其中,客户端负责向服务器发送分片请求消息,用于向服务器请求获取分片,其中分片包括初始化分片和媒体分片。初始化分片包括媒体资源播放所需要的元数据,媒体分片包括媒体资源的真实数据。分片请求消息中包含请求分片标识,用于请求获取某个分片的数据。分片请求消息中还可包含推送指令,推送指令中包含客户端希望服务器推送的分片的标识。客户端希望服务器推送的分片标识可以是通过列表或模板的形式描述分片的下载地址,也可以是指定了所请求的分片之后连续的几个分片。分片请求消息中还可以包括待定推送参数。待定推送参数用于指示服务器每次发送的推送承诺的数量或者何时发送待定推送的分片的推送承诺。待定推送参数具体可以是每次最多发送几个推送承诺,或者每次最少发送几个推送承诺,或者在第一批推送承诺的发送时间以后后续每一批推送承诺的发送间隔,或者是其他任何可以用于决策推送承诺的发送个数或者何时进行推送承诺的发送的信息,如客户端缓存中的分片的数量等。客户端还用于接收服务器发送或推送的分片,且负责分片的解码、解密、渲染和呈现等。服务器负责分片的存储和分发,接收客户端的分片请求消息,解析分片请求消息中的推送指令,根据推送指令将客户端请求推送的分片划分成两组,一组是可推送分片,另一组是待定推送分片。服务器首先向客户端发送可推送分片中每个分片对应的推送承诺,在后续推送分片的过程中,再将待定推送分片的推送承诺分批次地发送给客户端,以保证每次发送的推送承诺的数量不至于过多,从而客户端在接收推送的分片时,避免出现因接收过多的推送承诺导致延迟较大的问题。并且,服务器还可以根据客户端发送的待定推送参数,确定推送承诺的发送数量及发送时机,进而按照发送数量及发送时机发送推送承诺至客户端。
需要说明的是,本发明实施例中的方法不仅支持基于HTTP的动态自适应流(DASH)技术,也同样适用于其它HTTP流技术,包括HTTP直播流(英文:HTTP Live Streaming,简称:HLS),HTTP动态流(HTTP Dynamic Streaming,HDS)和HTTP平滑流(英文:HTTP SmoothStreaming,简称:HSS)。系统中,客户端202的数量也可以是多个,本发明实施例对此不作限定。具体的,客户端202可以为诸如手机、平板电脑、台式电脑或者笔记本电脑之类的任意终端。
如图3所示,图2中的服务器201或者客户端202可以以图3中的计算机设备(或系统)的方式来实现。
图3所示为本发明实施例提供的计算机设备示意图。计算机设备300包括至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(英文:Central Processing Unit,简称:CPU),微处理器,特定应用集成电路(英文:Application-Specific Integrated Circuit,简称:ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传送信息。所述通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(英文:Radio Access Technology,简称:RAN),无线局域网(英文:Wireless Local AreaNetworks,简称:WLAN)等。
存储器303可以是只读存储器(英文:Read-Only Memory,简称:ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(英文:Random Access Memory,简称:RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(英文:Electrically Erasable Programmable Read-Only Memory,简称:EEPROM)、只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器303用于存储执行本发明方案的程序代码,并由处理器301来控制执行。所述处理器301用于执行所述存储器303中存储的程序代码。
在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备300可以包括多个处理器,例如图3中的处理器301和处理器308。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(英文:Liquid Crystal Display,简称:LCD),发光二级管(英文:LightEmitting Diode,简称:LED)显示设备,阴极射线管(英文:Cathode Ray Tube,简称:CRT)显示设备,或投影仪(projector)等。输入设备306和处理器301通信,可以以多种方式接受用户的输入。例如,输入设备406可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备300可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备300可以是台式机、便携式电脑、网络服务器、掌上电脑(英文:Personal Digital Assistant,简称:PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图3中类似结构的设备。本发明实施例不限定计算机设备300的类型。
如图2中的服务器201可以为图3所示的设备,服务器201的存储器中存储了一个或多个软件模块(如交互模块和处理模块)。如图2中的客户端202也可以为图3所示的设备,客户端的存储器中存储了一个或多个软件模块(如交互模块和处理模块)。服务器或者客户端可以通过处理器以及存储器中的程序代码来实现软件模块,实现分片的推送。
基于上述图2所述的系统架构示意图,图4为本发明实施例提供的一种媒体分片的推送方法的流程图,包括如下步骤。
S401:客户端向服务器发送获取分片1的分片请求消息,该分片请求消息中包括推送指令。
具体的,该分片请求消息中携带分片1的标识以及推送指令。该推送指令用于确定客户端期望服务器推送分片的标识,为便于描述,本发明实施例中以客户端希望服务器推送分片2、分片3、分片4以及分片5为例。本发明实施例中,分片的标识包括但不限于:统一资源定位符(英文:Uniform Resoure Locator,简称:URL)。
例如,客户端向服务器发送携带推送指令的分片请求消息可以如下面的代码1所示:
代码1
其中,“:method=GET”表示请求方法为GET,用于获取内容。“:path=/example/rendition1/segment001”表示请求分片的URL(即本发明实施例中的分片1的URL),accept-push-policy=“urn:mpeg:dash:fdh:2016:push-template”;“http://example/rendition1/segment{%03d}:{2-51}”表示客户端希望服务器能够按照URL模板http://example/rendition1/segment{%03d},推送分片1之后的分片2至分片51,也即是说,推送URL地址从http://example/rendition1/segment002到http://example/rendition1/segment051的50个分片。
需要说明的是,这里只是列出了分片请求消息中必要的一些参数,其他与本发明实施例无关的参数不在这里列出说明。
S402:服务器接收客户端发送的分片请求消息,将客户端请求推送的分片划分为可推送分片和待定推送分片。
可选的,服务器根据第一待定推送参数,将客户端请求推送的分片划分为可推送分片和待定推送分片。该第一待定推送参数可以是服务器本地配置的。该第一待定推送参数可以根据具体的应用场景设定,用于将客户端端请求推送的分片分为可推送分片和待定推送分片,从而使得可以分批发送客户端请求推送的分片的推送承诺,避免一次发送过多的推送承诺,导致客户端的播放延迟。第一待定推送参数包括但不限于:推送阈值(例如一次最多发送推送承诺的数量、一次最少发送推送承诺的数量)、随机指示符。该推送阈值用于指示服务器将多少分片确定为可推送分片。该随机指示符用于指示服务器将当前本地缓存的分片确定为可推送分片。
例如,该第一待定推送参数为一次最多发送推送承诺的数量为4个,则服务器根据数量4将客户端请求推送的50个分片中的按序从第一个分片(即分片2)至第四个分片(即分片5)确定为可推送分片,将其余46个分片确定为待定推送分片。或者,该第一待定推送参数为随机指示符时,服务器当前缓存的分片只有分片2至分片5,则服务器将分片2至分片5确定为可推送分片,将其余46个分片确定为待定推送分片。
S403:服务器响应客户端的请求,依次发送分片2的推送承诺、分片3的推送承诺、分片4的推送承诺、分片5的推送承诺、待定推送指示信息以及分片1至客户端。
具体的,推送承诺表示服务器将会在哪个流标识(StreamID)指示的流中推送分片。本发明实施例中,服务器会针对分片2、分片3、分片4以及分片5分别发送推送承诺。并且,这4个推送承诺都是在发送分片1之前发送给客户端的。具体实现中,分片2的推送承诺、分片3的推送承诺、分片4的推送承诺、分片5的推送承诺、待定推送指示信息以及分片1可以是同一条响应消息中的部分内容,携带相同的流标识。例如,服务器向客户端发送推送承诺和分片1如下面的代码2-6所示:
代码2分片2的推送承诺
代码3分片3的推送承诺
代码4分片4的推送承诺
代码5分片5的推送承诺
代码6分片1
如代码2所示,“Stream ID=1”表示当前消息体是在Stream ID=1的流中传输的,“Stream ID=2”表示服务器将在StreamID=2的流中推送分片2,“:path=/example/rendition1/segment002”表示分片2的URL。代码3-5与代码2的格式类似,此处不再说明。服务器发送客户端请求的分片1的消息格式如代码6所示,其中,“status=200”表示服务器已成功处理了客户端的分片请求消息,push-policy=“urn:mpeg:dash:fdh:2016:push-template”;“http://example/rendition1/segment{%03d}:{2-5}”表示服务器此次的推送策略为推送分片2至分片5。在另一种可能的设计中,也可以将push-policy设置为“urn:mpeg:dash:fdh:2016:push-template”;http://example/rendition1/segment{%03d}:{2-51},表示服务器接受了客户端的推送请求,可以确定能够推送分片1之后的分片2至分片51个。“pending-push=true”为待定推送指示信息,表示服务器后续会对待定推送分片(即本例中的分片6至分片51)发送推送承诺,本发明实施例中待定推送指示信息的格式是布尔型,在其他可实现的方式中,待定推送指示信息的格式还可以是其他类型。“{binarydata for segment 1}”即是客户端所请求的分片1的数据。
需要说明的是,本发明实施例中,以服务器将待定推送指示信息携带在返回的响应消息中的报头(HEADERS)帧中为例进行说明,在其他可实现的方式中,还可以将待定推送指示信息携带在服务器发送的某个推送承诺中,或者携带在新定义的某一条消息或者某个帧中,本发明实施例不作具体限定。
可选的,服务器还可以维护一已发送推送承诺且未推送的分片列表,该列表中记录有已发送推送承诺且未推送的分片的标识以及对应的流标识。例如,服务器将客户端请求推送的分片划分为可推送分片和待定推送分片之后,服务器向客户端发送针对每一个可推送分片的推送承诺。本例中,服务器向客户端发送分片2至分片5的推送承诺后,该已发送推送承诺且未推送的分片列表中记录有分片2至分片5的URL以及相应的流标识。例如,已发送推送承诺且未推送的分片列表的格式可如表1所示。
表1已发送推送承诺且未推送的分片列表
分片的标识 | 流标识 |
http://example/rendition1/segment002 | 2 |
http://example/rendition1/segment003 | 4 |
http://example/rendition1/segment004 | 6 |
http://example/rendition1/segment005 | 8 |
服务器还可以维护一待定推送分片列表,该列表中记录有客户端请求推送且服务器尚未发送推送承诺的分片的标识。例如,服务器将客户端请求推送的分片划分为可推送分片和待定推送分片之后,待定推送分片列表中记录有分片6至分片51的URL。
例如,待定推送分片列表的格式可如表2所示。
表2待定推送分片列表
分片的标识 |
http://example/rendition1/segment006 |
http://example/rendition1/segment007 |
…… |
http://example/rendition1/segment051 |
S404:客户端接收服务器依次发送的分片2的推送承诺、分片3的推送承诺、分片4的推送承诺、分片5的推送承诺、待定推送指示信息以及分片1,处理并播放分片1。
具体的,客户端首先接收到可推送分片中每一个分片对应的推送承诺,根据推送承诺客户端可获知后续服务器将在哪个流中推送哪个分片,根据推送承诺中携带的分片标识以及对应的流标识,客户端可以维护一已发送推送承诺且未推送的分片列表,该列表中记录有服务器已发送推送承诺且未推送给客户端的分片的标识以及对应的流标识。例如,已发送推送承诺且未推送的分片列表中记录有分片2至分片5的URL以及相应的流标识,则已发送推送承诺且未推送的分片列表的格式可参见表1。
之后,客户端根据接收到的待定推送指示信息获知需要等待接收客户端请求推送的分片中其他尚未发送推送承诺的分片的推送承诺。具体的,客户端还可以根据自身请求推送的分片以及服务器已发送推送承诺的分片确定出尚未发送推送承诺的分片,并维护一待定推送分片列表,该列表中记录有客户端请求推送且服务器尚未发送推送承诺的分片的标识。例如,待定推送分片列表中记录有分片6至分片51的URL。待定推送分片列表的格式可参见表2。
之后,客户端接收到分片1的数据,处理并播放分片1,等待接收服务器推送的分片。
S405:服务器向客户端推送分片2。
本发明实施例中,服务器将分片2通过StreamID=2的流推送至客户端。例如,服务器向客户端发送分片2如下面的代码7所示:
代码7分片2
服务器在向客户端推送了分片2之后,将分片2的标识以及流标识2从服务器中的已发送推送承诺且未推送的分片列表中删除,从而更新该列表。
S406:客户端接收服务器发送的分片2,处理并播放分片2。
本发明实施例中,客户端接收到分片2对应的响应消息后,根据响应消息中携带的StreamID=2确定收到的是分片2的数据,进而处理并播放分片2。
客户端在接收到服务器发送的分片2后,将分片2的标识以及流标识2从客户端中的已发送推送承诺且未推送的分片列表中删除,从而更新该列表。
可选的,客户端接收到分片2对应的响应消息后,还可以判断该响应消息中是否包含推送承诺。
之后,服务器向客户端推送分片3以及分片4,客户端接收服务器推送的分片3和分片4,该过程可以参考步骤S405和步骤S406,此处不再赘述。服务器每向客户端推送一个分片,都需要从服务器的已发送推送承诺且未推送的分片列表中删除相应的分片标识及对应的流标识,从而更新服务器的已发送推送承诺且未推送的分片列表。客户端每收到一个推送的分片,需要从客户端的已发送推送承诺且未推送的分片列表中将相应的分片标识及对应的流标识删除,更新客户端的已发送推送承诺且未推送的分片列表。
S407:服务器确定待定推送分片中的可推送的分片。
可选的,服务器根据第一待定推送参数,确定待定推送分片中的可推送分片。第一待定推送参数的具体形式参考步骤402所述,这里不再赘述。例如,第一待定推送参数为一次最多发送推送承诺的数量为4个,则服务器在发送了分片2至分片5对应的推送承诺之后,按序将其余的46个分片中的第一个分片(即分片6)至第四个分片(即分片9)确定为可推送分片。或者,该第一待定推送参数为随机指示符时,服务器当前缓存的分片只有分片6至分片9,则服务器将分片6至分片9确定为可推送分片。
S408:服务器依次发送分片6的推送承诺、分片7的推送承诺、分片8的推送承诺、分片9的推送承诺以及分片5至客户端。
具体的,服务器根据第二待定推送参数,确定向客户端发送待定推送分片中的可推送分片的推送承诺的条件,当条件满足时,服务器将待定推送分片中的可推送分片对应的推送承诺发送给客户端。
其中,第二待定推送参数可以由服务器本地配置。第二待定推送参数包括但不限于:已发送推送承诺且未推送的分片的剩余数量的最小值或服务器当前缓存的分片的数量阈值。
例如,当已发送推送承诺且未推送的分片的剩余数量小于2个时,确定将待定推送分片中包括的可推送分片对应的推送承诺发送给客户端。也即是说,当服务器确定当前已发送推送承诺且未推送的分片列表中只剩一个记录时,确定将待定推送分片中包括的可推送分片对应的推送承诺发送给客户端。例如,待定推送分片中的可推送分片为分片6至分片9,当服务器确定当前已发送推送承诺且未推送的分片列表中只剩下分片5时,剩余数量小于2个,服务器将分片6至分片9各自对应的推送承诺发送给客户端。优选地,服务器可以在向客户端发送分片5之前,将分片6至分片9各自对应的推送承诺发送给客户端。
或者,服务器本地配置每缓存4个分片,就可以发送这4个分片各自对应的推送承诺。例如,当服务器向客户端推送分片2至分片5期间,服务器又缓存了更多的分片,比如获取到了待定推送分片列表中的分片6至分片9,缓存的分片数量满足4个,则服务器将分片6至分片9各自对应的推送承诺发送给客户端。
在本实施例中,当满足第二待定推送参数所指示的条件时,服务器就需要再发送一部分推送承诺,一方面避免每次发送过多的推送承诺,导致客户端的播放时延;另一方面及时的将后续分片的推送承诺发送给客户端,避免客户端由于没有及时收到服务器推送的分片导致的播放时延。
需要说明的是,这里只是举例说明了可能的第二待定推送参数,本发明对于第二待定推送参数的具体形式不做限定。
其中,服务器向客户端发送的分片6至分片9的推送承诺的代码格式可以参考上述分片2至分片5的推送承诺的代码格式,此处不再赘述。服务器向客户端发送分片5如下面的代码8所示:
代码8分片5
如代码8所示,push-policy=“urn:mpeg:dash:fdh:2016:push-template”;“http://example/rendition1/segment{%03d}:{6-9}”表示服务器此次的推送策略为推送分片6至分片9。
可选的,服务器在向客户端发送分片5时,还可以携带待定推送指示信息,告知客户端会在后续发送剩余尚未发送推送承诺的分片的推送承诺。例如,若服务器在向客户端发送分片1时,指示本次推送的是分片2至分片5,同时携带了待定推送指示信息,那么服务器在向客户端发送分片5时,除了需要携带用于指示本次推送的是分片6至分片9的信息以外,还可以携带待定推送指示信息,已告知客户端继续等待接收剩余尚未发送推送承诺的分片的推送承诺。这种情况下,服务器向客户端发送分片5如下面的代码9所示:
代码9分片5
其中,“pending-push=true”为待定推送指示信息,表示服务器后续会对剩余尚未发送推送承诺的分片(即本例中的分片10至分片51)发送推送承诺。
此外,服务器还需要从待定推送分片列表中删除分片6至分片9的标识,同时将分片6至分片9的标识以及相应的流标识添加到已发送推送承诺且未推送的分片列表中。服务器在向客户端推送了分片5之后,将分片5的标识从已发送推送承诺且未推送的分片列表中删除,从而更新该列表。需要说明的是,当服务器中的待定推送分片列表中为空时,表明客户端请求推送的分片的推送承诺已经全部发送完,此时,服务器将无需再向客户端发送待定推送指示信息。
需要说明的是,服务器向客户端依次发送分片6至分片9各自对应的推送承诺与服务器向客户端发送分片5这两个步骤的执行顺序不作具体限定。
S409:客户端接收服务器依次发送的分片6对应的推送承诺、分片7对应的推送承诺、分片8对应的推送承诺、分片9对应的推送承诺以及分片5,处理并播放分片5。
客户端首先接收到待推送分片中可推送分片中的每一个分片对应的推送承诺,根据推送承诺客户端可获知后续服务器将在哪个流中推送哪个分片,根据推送承诺中携带的分片标识以及分片对应的流标识,客户端可以更新已发送推送承诺且未推送的分片列表。例如,将分片6至分片9的标识以及分片6至分片9对应的流标识添加到客户端的已发送推送承诺且未推送的分片列表中,同时,将分片6至分片9的标识从客户端的待定推送分片列表中删除。
之后,客户端处理并播放分片5,并等待接收服务器推送的分片6至分片9。
可选的,若服务器发送了待定推送指示信息,客户端根据待定推送指示信息获知需要等待接收其他尚未发送推送承诺的分片的推送承诺。
S410:服务器向客户端推送最后一个已发送推送承诺且未推送的分片。
需要说明的是,在步骤S410之前,服务器和客户端之间在一直重复步骤S407至步骤S409,直到满足步骤S410的条件。在本实施例中,最后一个已发送推送承诺且未推送的的分片应为分片51。
S411:客户端接收服务器发送的最后一个已发送推送承诺且未推送的分片,处理并播放该分片,播放结束。
需要说明的是,如果分片51之后仍存在其他的分片并且客户端希望继续播放这部分分片时,可以重复本发明实施例中的步骤S401至S411即可,直到所有分片播放结束,这里不再进行重复描述。
通过实施本发明实施例,服务器将客户端请求推送的分片划分为可推送分片和待定推送分片两部分,首先将可推送分片对应的推送承诺、待定推送指示信息以及客户端请求的分片发送给客户端,在后续推送分片的过程中,再将待定推送分片的推送承诺分批次地发送给客户端,以保证每次发送的推送承诺的数量不至于过多,避免了因为客户端请求推送的分片较多而导致在接收请求的分片之前接收大量的推送承诺导致的时延较大的问题,因此减少了客户端的播放延迟。
按照现有技术,如果服务器上可以发送推送承诺的分片数量少于客户端请求推送的分片数量时,服务器只能发送可以发送推送承诺的分片的推送承诺,即使在可以发送推送承诺的分片全部推送之前,服务器上已经有更多的分片可推送时,这部分分片也不会再主动推送给客户端。客户端只能在接收完所有推送的分片之后再次发送分片请求消息去获取更多的分片。而在本发明实施例中,服务器根据当前缓存的分片分批次地向客户端发送推送承诺,并且客户端可以根据服务器发送的待定推送指示信息确定在后续过程中继续接收待定推送分片对应的推送承诺,因此无需再次针对已经请求推送的分片再次发送分片请求消息,节省了客户端再次发送分片请求消息的开销。
在一种可能的设计中,上述第一待定推送参数也可以由客户端设置,并且客户端将第一待定推送参数携带在分片1的分片请求消息中发送给服务器。服务器接收客户端发送的携带第一待定推送参数的分片请求消息,根据该第一待定推送参数将客户端请求推送的分片分为可推送分片和待定推送分片,且划分方式可以参见上述步骤S402的描述,此处不再赘述。
例如,客户端向服务器发送携带第一待定推送参数的分片请求消息可以如下面的代码10所示:
代码10
其中,maxTotalNum=5作为第一待定推送参数,即客户端希望服务器立即发送推送承诺的可推送分片的数量最大为5个。
在一种可能的设计中,第二待定推送参数也可以由客户端设置,并且客户端将第二待定推送参数携带在分片1的分片请求消息中发送给服务器。服务器接收客户端发送的携带第二待定推送参数的分片请求消息,根据该第二待定推送参数确定何时将待定推送分片中的可推送分片对应的推送承诺发送给客户端,且确定方式可以参见上述步骤S407的描述,此处不再赘述。
例如,客户端向服务器发送携带第一待定推送参数的分片请求消息可以如下面的代码9所示,其中,latestPush作为第二待定推送参数,即客户端希望服务器在推送最后一个已发送推送承诺且未推送的分片时再发送下一批可推送分片的推送承诺。
需要说明的是,如果服务器本地配置有第一待定推送参数,则服务器需要结合本地的第一待定推送参数以及客户端发送的第一待定推送参数共同确定可推送分片。如服务器本地配置为一次最多发送4个推送承诺,而客户端发送的第一待定推送参数指示每次最少发送推送承诺的数量为5个,则服务器优先考虑自身的可推送能力,将可推送分片的数量确定为4个。同样的,如果服务器本地配置有第二待定推送参数,则服务器需要结合本地的第二待定推送参数以及客户端发送的第二待定推送参数共同确定何时将待定推送分片中的可推送分片的推送承诺发送给客户端。
针对步骤S403,服务器向客户端发送分片1时还可以携带第一待定推送参数和/或第二待定推送参数。例如,服务器向客户端发送分片1如代码11所示:
代码11分片1
其中,pending-push-policy=“maxTotalNum=5&latestPush”为待定推送指示信息,用于指示客户端等待接收其他尚未发送推送承诺的分片各自对应的推送承诺,同时指示客户端服务器实际采用的第一待定推送参数和/或第二待定推送参数,即每次发送推送承诺帧的数量最大为5个,并且在推送最后一个已发送推送承诺且未推送的分片时发送下一批可推送分片的推送承诺。
本发明实施例中,由客户端来设置第一待定推送参数和/或第二待定推送参数,与由服务器设置第一待定推送参数和/或第二待定推送参数的方式相比,可以提供更加灵活的推送方式,从而更加符合用户的实际体验需求。
上述实施例中是以正常播放完媒体资源中的全部分片的过程为例进行的说明,实际应用中,除了正常播放完整个媒体资源外,还会涉及中途取消播放的应用场景,例如用户中途不想继续收看,需要取消播放某个分片及之后的分片。在该场景中,以客户端处理并播放分片3,之后取消播放分片4以及分片4之后的全部分片为例进行说明,请参见图5,是本发明实施例提供的一种取消推送媒体分片的方法的流程示意图,该过程包括步骤S501-S510,其中步骤S501-S506可参见图4所示实施例中的步骤S401-S406,此处不再赘述。
S507:客户端向服务器发送针对分片4的取消推送请求消息。
具体的,客户端可以根据客户端的已发送推送承诺且未推送的分片列表中记录的分片4的流标识6发送取消推送请求消息。例如,服务器向客户端发送分片4的取消推送请求消息如下面的代码12所示:
代码12分片4的取消推送请求消息
其中,错误码CANCEL用于指示取消推送分片。
可选的,客户端在确定取消推送分片4之后,还可以将客户端的已发送推送承诺且未推送的分片列表中记录的分片4的标识以及对应的流标识进行删除。
S508:服务器接收客户端发送的针对分片4的取消推送请求消息,取消向客户端推送分片4。
服务器根据取消推送请求消息中携带的流标识6,确定客户端要取消推送与流标识6对应的分片http://example/rendition1/segment004,因此取消向客户端推送分片4。具体的,服务器从服务器的已发送推送承诺且未推送的分片列表中删除分片4的标识以及相应的流标识。
S509:客户端向服务器发送针对分片5的取消推送请求消息。
具体的,客户端可以根据客户端的已发送推送承诺且未推送的分片列表中记录的分片5的流标识8发送取消推送请求消息。例如,服务器向客户端发送分片5的取消推送请求消息如下面的代码13所示:
代码13分片5的取消推送请求消息
可选的,客户端在确定取消推送分片5之后,还可以将客户端的已发送推送承诺且未推送的分片列表中记录的分片5的标识以及对应的流标识进行删除。
至此,客户端已经取消了所有已发送推送承诺且未推送的分片,同时已将客户端的已发送推送承诺且未推送的分片列表清空或删除。
此外,由于客户端不再继续播放媒体资源,因此客户端还需要将待定推送分片列表清空或删除。
S510:服务器接收客户端发送的针对分片5的取消推送请求消息,取消向客户端推送分片5。
服务器根据取消推送请求消息中携带的流标识8,确定客户端要取消推送与流标识8对应的分片http://example/rendition1/segment005,因此取消向客户端推送分片5。具体的,服务器从已发送推送承诺且未推送的分片列表中删除分片5的标识以及相应的流标识。
至此,服务器的已发送推送承诺且未推送的分片列表中已为空。
S511:服务器根据服务器的已发送推送承诺且未推送的分片列表中已为空,确定需要取消向客户端推送尚未发送推送承诺的分片。
具体的,服务器在判断出服务器的已发送推送承诺且未推送的分片列表中为空后,确定客户端不想再继续播放媒体资源,因此同时取消向客户端推送尚未发送推送承诺的分片。具体的,服务器将待定推送分片列表清空或删除,从而不再向客户端推送尚未发送推送承诺的分片。
在本发明实施例中,服务器端可以通过客户端取消了所有已发送推送承诺且未推送的分片来间接确定取消向客户端推送尚未发送推送承诺的分片。
现有技术中,服务器一次性将客户端请求的分片的推送承诺都发送给客户端,因此,当客户端如果想要取消服务器已发送推送承诺的分片时,需要针对每个分片发送一次取消推送请求消息,请求消息中携带要取消的分片所对应的流标识。当用户观看一部电影时,如果服务器端已发送推送承诺的分片比较多,但是用户突然不想继续观看时,客户端需要针对已发送推送承诺且未推送的分片逐个发送取消推送请求消息,开销比较大。而在本发明实施例中,由于服务器是分批次地发送推送承诺,因此客户端中途取消播放时,只需要针对已发送推送承诺且未推送的分片逐一发送取消推送请求消息即可,而不需要针对尚未发送推送承诺的分片发送取消推送请求消息,节省了客户端发送大量取消推送请求消息的开销。
此外,客户端也可以通过在某个取消推送请求消息中增加取消待定推送指示信息来指示服务器在取消推送某个分片时,同时取消推送尚未发送推送承诺的分片。其中取消待定推送指示信息的格式在本发明实施例中不作具体限定。此时需要定义一种新的状态码,Error Code=CANCEL PENDING,该状态码作为一种示例,而非限定。以客户端在分片4的取消推送请求消息中携带取消待定推送指示信息为例进行说明,服务器向客户端发送分片4的取消推送请求消息如下面的代码14所示:
代码14分片4的取消推送请求消息
其中,错误码CANCEL PENDING用于指示取消推送尚未发送推送承诺的分片。
服务器收到错误码为CANCEL PENDING的取消推送请求消息后,不仅需要取消推送STREAM ID=6对应的分片http://example/rendition1/segment004,同时还要取消向客户端推送尚未发送推送承诺的分片。
具体的,服务器取消向客户端推送尚未发送推送承诺的分片具体为:服务器将服务器的待定推送分片列表清空或删除。
本发明实施例中,客户端可以在发送的某一取消推送请求消息中携带取消待定推送指示信息,服务器根据取消待定推送指示信息,确定需要取消向客户端推送尚未发送推送承诺的分片。相较于服务器根据客户端取消推送所有已发送推送承诺且未推送的分片,来间接确定取消向客户端推送尚未发送推送承诺的分片的方式,本发明实施例可以避免服务器在接收最后一个已发送推送承诺且未推送的分片的取消推送请求消息之前,服务器就已将待定推送分片中可推送的分片对应的推送承诺发送给客户端造成的开销,使得取消操作更加的及时
本发明实施例还描述了与上述图4所述方法实施例属于同一发明构思下的一种服务器的结构示意图。如图6所示,该服务器600用于执行图4上述方法实施例中服务器的功能,包括:接收单元601,处理单元602和发送单元603。
其中,接收单元601,用于接收客户端发送的分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;处理单元602,用于根据所述客户端请求推送的分片,确定可推送分片和待定推送分片;发送单元603,用于向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收所述待定推送分片的推送承诺。
可选的,所述处理单元602,用于根据所述客户端请求推送的分片,确定可推送分片和待定推送分片,具体为:根据第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片;其中,所述第一待定推送参数为所述服务器本地配置的或者所述分片请求消息中携带的。
可选的,所述处理单元602,用于根据第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片,具体为:
所述第一待定推送参数为推送阈值,确定所述客户端请求推送的分片中第1个分片至第N个分片为所述可推送分片,并将所述客户端请求推送的分片中除所述可推送分片以外的其他分片确定为所述待定推送分片,其中N为由所述推送阈值确定的正整数;或者,
所述第一待定推送参数为随机指示符,根据所述随机指示符,将所述客户端请求推送的分片中已缓存的分片确定为所述可推送分片,并将所述客户端请求推送的分片中除所述可推送分片以外的其他分片确定为所述待定推送分片。
可选的,在所述发送单元603向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述处理单元602,还用于根据所述第一待定推送参数,确定所述待定推送分片中的可推送分片;
所述发送单元603,还用于根据所述第二待定推送参数,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端,所述待定推送分片中的可推送分片为所述待定推送分片中的部分或全部分片;其中,所述第二待定推送参数用于指示所述服务器向所述客户端发送所述待定推送分片中的可推送分片的推送承诺的条件,且所述第二待定推送参数为所述服务器本地配置的或者所述分片请求消息中携带的。
可选的,所述发送单元603,用于根据第二待定推送参数,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端,具体为:
当已发送推送承诺且未推送的分片的剩余数量小于第一预设数量时,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端;或者,
当所述待定推送分片中包含满足第二预设数量的已缓存分片时,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端。
可选的,在所述发送单元603向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述接收单元601,还用于接收所述客户端针对已发送推送承诺且未推送的分片逐一发送的取消推送请求消息;
所述处理单元602,还用于根据所述取消推送请求消息,取消向所述客户端推送所述已发送推送承诺且未推送的分片;当所述处理单元602取消所有向所述客户端推送所述已发送推送承诺且未推送的分片之后,所述处理单元602还用于取消向所述客户端推送尚未发送推送承诺的分片。
可选的,在所述发送单元603向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述接收单元601,还用于接收所述客户端针对目标分片发送的取消推送请求消息,所述目标分片为任一已发送推送承诺且未推送的分片,所述取消推送请求消息中包括取消待定推送指示信息,所述取消待定推送指示信息用于指示所述服务器取消向所述客户端推送尚未发送推送承诺的分片;
所述处理单元602,还用于根据所述取消推送请求消息,取消向所述客户端推送所述目标分片,以及取消向所述客户端推送尚未发送推送承诺的分片。
在本实施例中,服务器600是以功能单元的形式来呈现。这里的“单元”可以指ASIC电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到服务器600可以采用图3所示的形式。接收单元601、处理单元602和发送单元603可以通过图3的处理器和存储器来实现。
本发明实施例还描述了与上述图4所述方法实施例属于同一发明构思下的一种客户端的结构示意图。如图7所示,该客户端700用于执行图4上述方法实施例中客户端的功能,包括:发送单元701和接收单元702。
其中,发送单元701,用于向服务器发送分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;接收单元702,用于接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收所述客户端请求推送的分片中除所述可推送分片以外的待定推送分片的推送承诺。
可选的,所述分片请求消息中还包括第一待定推送参数,所述第一待定推送参数用于指示所述服务器根据所述第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片。
可选的,所述第一待定推送参数包括用于指示可推送分片数量的推送阈值或者用于指示所述服务器将已缓存的分片确定为可推送分片的随机指示符。
可选的,在所述接收单元702接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述接收单元702,还用于接收所述服务器发送的所述待定推送分片中的可推送分片对应的推送承诺,所述待定推送分片中的可推送分片为所述待定推送分片中的部分或全部分片。
可选的,所述分片请求消息中还包括第二待定推送参数,所述第二待定推送参数用于指示所述服务器根据所述第二待定推送参数确定发送所述待定推送分片中的可推送分片对应的推送承诺的条件。
可选的,在所述接收单元702接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述发送单元701,还用于针对目标分片向所述服务器发送取消推送请求消息,所述目标分片为任一已发送推送承诺且未推送的分片,所述取消推送请求消息中包括取消待定推送指示信息,所述取消待定推送指示信息用于指示所述服务器取消向所述客户端推送尚未发送推送承诺的分片。
在本实施例中,客户端700是以功能单元的形式来呈现。这里的“单元”可以指ASIC电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到客户端700可以采用图3所示的形式。发送单元701和接收单元702可以通过图3的处理器和存储器来实现。
本发明实施例还提供了一种计算机存储介质,用于储存为上述图6所示的服务器所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现推送承诺的发送。
本发明实施例还提供了另一种计算机存储介质,用于储存为上述图7所述的客户端所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现推送承诺的接收。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过因特网(Internet)或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (26)
1.一种媒体分片的推送方法,其特征在于,包括:
服务器接收客户端发送的分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;
所述服务器根据所述客户端请求推送的分片,确定可推送分片和待定推送分片;
所述服务器向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收所述待定推送分片的推送承诺。
2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述客户端请求推送的分片,确定可推送分片和待定推送分片,包括:
所述服务器根据第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片;其中,所述第一待定推送参数为所述服务器本地配置的或者所述分片请求消息中携带的。
3.根据权利要求2所述的方法,其特征在于,所述服务器根据第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片,具体为:
所述第一待定推送参数为推送阈值,所述服务器确定所述客户端请求推送的分片中第1个分片至第N个分片为所述可推送分片,并将所述客户端请求推送的分片中除所述可推送分片以外的其他分片确定为所述待定推送分片,其中N为由所述推送阈值确定的正整数;或者,
所述第一待定推送参数为随机指示符,所述服务器根据所述随机指示符,将所述客户端请求推送的分片中已缓存的分片确定为所述可推送分片,并将所述客户端请求推送的分片中除所述可推送分片以外的其他分片确定为所述待定推送分片。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述服务器向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,还包括:
所述服务器根据所述第一待定推送参数,确定所述待定推送分片中的可推送分片;
所述服务器根据第二待定推送参数,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端,所述待定推送分片中的可推送分片为所述待定推送分片中的部分或全部分片;其中,所述第二待定推送参数用于指示所述服务器向所述客户端发送所述待定推送分片中的可推送分片的推送承诺的条件,且所述第二待定推送参数为所述服务器本地配置的或者所述分片请求消息中携带的。
5.根据权利要求4所述的方法,其特征在于,所述服务器根据第二待定推送参数,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端,具体为:
确定已发送推送承诺且未推送的分片的剩余数量小于第一预设数量,所述服务器将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端;或者,
确定所述待定推送分片中包含满足第二预设数量的已缓存分片,所述服务器将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述服务器向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,还包括:
所述服务器接收所述客户端针对已发送推送承诺且未推送的分片逐一发送的取消推送请求消息;
所述服务器根据所述取消推送请求消息,取消向所述客户端推送所述已发送推送承诺且未推送的分片;
所述服务器确定取消所有向所述客户端推送所述已发送推送承诺且未推送的分片之后,所述服务器取消向所述客户端推送尚未发送推送承诺的分片。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述服务器向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,还包括:
所述服务器接收所述客户端针对目标分片发送的取消推送请求消息,所述目标分片为任一已发送推送承诺且未推送的分片,所述取消推送请求消息中包括取消待定推送指示信息,所述取消待定推送指示信息用于指示所述服务器取消向所述客户端推送尚未发送推送承诺的分片;
所述服务器根据所述取消推送请求消息,取消向所述客户端推送所述目标分片,以及取消向所述客户端推送尚未发送推送承诺的分片。
8.一种媒体分片的推送方法,其特征在于,包括:
客户端向服务器发送分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;
所述客户端接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收待定推送分片的推送承诺,其中,所述待定推送分片为所述客户端请求推送的分片中除所述可推送分片以外的分片。
9.根据权利要求8所述的方法,其特征在于,所述分片请求消息中还包括第一待定推送参数,所述第一待定推送参数用于指示所述服务器根据所述第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片。
10.根据权利要求9所述的方法,其特征在于,所述第一待定推送参数包括用于指示可推送分片数量的推送阈值或者用于指示所述服务器将已缓存的分片确定为可推送分片的随机指示符。
11.根据权利要求8至10任一项所述的方法,其特征在于,所述客户端接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,还包括:
所述客户端接收所述服务器发送的所述待定推送分片中的可推送分片对应的推送承诺,所述待定推送分片中的可推送分片为所述待定推送分片中的部分或全部分片。
12.根据权利要求11所述的方法,其特征在于,所述分片请求消息中还包括第二待定推送参数,所述第二待定推送参数用于指示所述服务器根据所述第二待定推送参数确定发送所述待定推送分片中的可推送分片对应的推送承诺的条件。
13.根据权利要求8至12任一项所述的方法,其特征在于,所述客户端接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,还包括:
所述客户端针对目标分片向所述服务器发送取消推送请求消息,所述目标分片为任一已发送推送承诺且未推送的分片,所述取消推送请求消息中包括取消待定推送指示信息,所述取消待定推送指示信息用于指示所述服务器取消向所述客户端推送尚未发送推送承诺的分片。
14.一种服务器,其特征在于,包括:
接收单元,用于接收客户端发送的分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;
处理单元,用于根据所述客户端请求推送的分片,确定可推送分片和待定推送分片;
发送单元,用于向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收所述待定推送分片的推送承诺。
15.根据权利要求14所述的服务器,其特征在于,所述处理单元,用于根据所述客户端请求推送的分片,确定可推送分片和待定推送分片,具体为:
根据第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片;其中,所述第一待定推送参数为所述服务器本地配置的或者所述分片请求消息中携带的。
16.根据权利要求15所述的服务器,其特征在于,所述处理单元,用于根据第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片,具体为:
所述第一待定推送参数为推送阈值,确定所述客户端请求推送的分片中第1个分片至第N个分片为所述可推送分片,并将所述客户端请求推送的分片中除所述可推送分片以外的其他分片确定为所述待定推送分片,其中N为由所述推送阈值确定的正整数;或者,
所述第一待定推送参数为随机指示符,根据所述随机指示符,将所述客户端请求推送的分片中已缓存的分片确定为所述可推送分片,并将所述客户端请求推送的分片中除所述可推送分片以外的其他分片确定为所述待定推送分片。
17.根据权利要求13至16任一项所述的服务器,其特征在于,在所述发送单元向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述处理单元,还用于根据所述第一待定推送参数,确定所述待定推送分片中的可推送分片;
所述发送单元,还用于根据所述第二待定推送参数,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端,所述待定推送分片中的可推送分片为所述待定推送分片中的部分或全部分片;其中,所述第二待定推送参数用于指示所述服务器向所述客户端发送所述待定推送分片中的可推送分片的推送承诺的条件,且所述第二待定推送参数为所述服务器本地配置的或者所述分片请求消息中携带的。
18.根据权利要求17所述的服务器,其特征在于,所述发送单元,用于根据第二待定推送参数,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端,具体为:
当已发送推送承诺且未推送的分片的剩余数量小于第一预设数量时,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端;或者,
当所述待定推送分片中包含满足第二预设数量的已缓存分片时,将所述待定推送分片中的可推送分片对应的推送承诺发送给所述客户端。
19.根据权利要求14至18任一项所述的服务器,其特征在于,在所述发送单元向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述接收单元,还用于接收所述客户端针对已发送推送承诺且未推送的分片逐一发送的取消推送请求消息;
所述处理单元,还用于根据所述取消推送请求消息,取消向所述客户端推送所述已发送推送承诺且未推送的分片;当所述处理单元取消所有向所述客户端推送所述已发送推送承诺且未推送的分片之后,所述处理单元还用于取消向所述客户端推送尚未发送推送承诺的分片。
20.根据权利要求14至18任一项所述的服务器,其特征在于,在所述发送单元向所述客户端发送所述可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述接收单元,还用于接收所述客户端针对目标分片发送的取消推送请求消息,所述目标分片为任一已发送推送承诺且未推送的分片,所述取消推送请求消息中包括取消待定推送指示信息,所述取消待定推送指示信息用于指示所述服务器取消向所述客户端推送尚未发送推送承诺的分片;
所述处理单元,还用于根据所述取消推送请求消息,取消向所述客户端推送所述目标分片,以及取消向所述客户端推送尚未发送推送承诺的分片。
21.一种客户端,其特征在于,包括:
发送单元,用于向服务器发送分片请求消息,所述分片请求消息包括请求分片标识和推送指令,所述推送指令用于指示所述客户端请求推送的分片;
接收单元,用于接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息,所述待定推送指示信息用于指示所述客户端等待接收待定推送分片的推送承诺,其中,所述待定推送分片为所述客户端请求推送的分片中除所述可推送分片以外的分片。
22.根据权利要求21所述的客户端,其特征在于,所述分片请求消息中还包括第一待定推送参数,所述第一待定推送参数用于指示所述服务器根据所述第一待定推送参数将所述客户端请求推送的分片分为所述可推送分片和所述待定推送分片。
23.根据权利要求22所述的客户端,其特征在于,所述第一待定推送参数包括用于指示可推送分片数量的推送阈值或者用于指示所述服务器将已缓存的分片确定为可推送分片的随机指示符。
24.根据权利要求21至23任一项所述的客户端,其特征在于,在所述接收单元接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述接收单元,还用于接收所述服务器发送的所述待定推送分片中的可推送分片对应的推送承诺,所述待定推送分片中的可推送分片为所述待定推送分片中的部分或全部分片。
25.根据权利要求24所述的客户端,其特征在于,所述分片请求消息中还包括第二待定推送参数,所述第二待定推送参数用于指示所述服务器根据所述第二待定推送参数确定发送所述待定推送分片中的可推送分片对应的推送承诺的条件。
26.根据权利要求21至25任一项所述的客户端,其特征在于,在所述接收单元接收所述服务器发送的可推送分片中每一个分片对应的推送承诺、所述请求分片标识对应的分片以及待定推送指示信息之后,
所述发送单元,还用于针对目标分片向所述服务器发送取消推送请求消息,所述目标分片为任一已发送推送承诺且未推送的分片,所述取消推送请求消息中包括取消待定推送指示信息,所述取消待定推送指示信息用于指示所述服务器取消向所述客户端推送尚未发送推送承诺的分片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610908973.4A CN107959667B (zh) | 2016-10-18 | 2016-10-18 | 一种媒体分片的推送方法、服务器及客户端 |
PCT/CN2017/105714 WO2018072629A1 (zh) | 2016-10-18 | 2017-10-11 | 一种媒体分片的推送方法、服务器及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610908973.4A CN107959667B (zh) | 2016-10-18 | 2016-10-18 | 一种媒体分片的推送方法、服务器及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107959667A true CN107959667A (zh) | 2018-04-24 |
CN107959667B CN107959667B (zh) | 2020-10-09 |
Family
ID=61954270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610908973.4A Active CN107959667B (zh) | 2016-10-18 | 2016-10-18 | 一种媒体分片的推送方法、服务器及客户端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107959667B (zh) |
WO (1) | WO2018072629A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109660587A (zh) * | 2018-10-22 | 2019-04-19 | 平安科技(深圳)有限公司 | 基于随机数的数据推送方法、装置、存储介质及服务器 |
WO2020098455A1 (zh) * | 2018-11-14 | 2020-05-22 | 北京开广信息技术有限公司 | 媒体流的实时递送方法及服务器 |
CN111526379A (zh) * | 2019-02-03 | 2020-08-11 | 华为技术有限公司 | 数据传输方法和数据传输装置 |
CN114640711A (zh) * | 2020-12-15 | 2022-06-17 | 深圳Tcl新技术有限公司 | 一种tlv数据包的推送方法、智能终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287087B1 (en) * | 1999-11-01 | 2007-10-23 | General Electric Company | Communications network for dynamic reprioritization |
CN104581374A (zh) * | 2014-12-31 | 2015-04-29 | 深圳市同洲电子股份有限公司 | 一种获取切片文件和生成子m3u8文件的方法、节点及服务器 |
CN104918072A (zh) * | 2014-03-14 | 2015-09-16 | 奥多比公司 | 低延时实况视频流传输 |
CN105532013A (zh) * | 2013-07-12 | 2016-04-27 | 佳能株式会社 | 利用推送消息控制的自适应数据流传输方法 |
CN105979277A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种文件传输方法及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2534849A (en) * | 2015-01-28 | 2016-08-10 | Canon Kk | Client-driven push of resources by a server device |
-
2016
- 2016-10-18 CN CN201610908973.4A patent/CN107959667B/zh active Active
-
2017
- 2017-10-11 WO PCT/CN2017/105714 patent/WO2018072629A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287087B1 (en) * | 1999-11-01 | 2007-10-23 | General Electric Company | Communications network for dynamic reprioritization |
CN105532013A (zh) * | 2013-07-12 | 2016-04-27 | 佳能株式会社 | 利用推送消息控制的自适应数据流传输方法 |
CN104918072A (zh) * | 2014-03-14 | 2015-09-16 | 奥多比公司 | 低延时实况视频流传输 |
CN104581374A (zh) * | 2014-12-31 | 2015-04-29 | 深圳市同洲电子股份有限公司 | 一种获取切片文件和生成子m3u8文件的方法、节点及服务器 |
CN105979277A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种文件传输方法及电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109660587A (zh) * | 2018-10-22 | 2019-04-19 | 平安科技(深圳)有限公司 | 基于随机数的数据推送方法、装置、存储介质及服务器 |
WO2020098455A1 (zh) * | 2018-11-14 | 2020-05-22 | 北京开广信息技术有限公司 | 媒体流的实时递送方法及服务器 |
CN111526379A (zh) * | 2019-02-03 | 2020-08-11 | 华为技术有限公司 | 数据传输方法和数据传输装置 |
CN111526379B (zh) * | 2019-02-03 | 2021-06-29 | 华为技术有限公司 | 数据传输方法和数据传输装置 |
CN114640711A (zh) * | 2020-12-15 | 2022-06-17 | 深圳Tcl新技术有限公司 | 一种tlv数据包的推送方法、智能终端及存储介质 |
CN114640711B (zh) * | 2020-12-15 | 2023-08-01 | 深圳Tcl新技术有限公司 | 一种tlv数据包的推送方法、智能终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018072629A1 (zh) | 2018-04-26 |
CN107959667B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10701451B2 (en) | Program interaction system, method, client, and backend server | |
JP5805616B2 (ja) | 通信デバイスにおけるコンテンツの検索/ダウンロードのための装置および方法 | |
EP3340633A1 (en) | Terminal, cache server, and method for acquiring video slices and device thereof | |
EP2493191B1 (en) | Method, device and system for realizing hierarchically requesting content in http streaming system | |
CN107959667A (zh) | 一种媒体分片的推送方法、服务器及客户端 | |
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
KR101783431B1 (ko) | 크라우드 펀딩 시스템을 통해 엔터테인먼트 관련 펀딩 정보 및 컨설팅 정보를 제공하는 방법 | |
CN107147921A (zh) | 基于切片与智能cdn调度的视频播放加速方法和设备 | |
US11218390B2 (en) | Filtering content based on user mobile network and data-plan | |
US10178431B2 (en) | Hybrid stream delivery | |
US20190313422A1 (en) | Methods and systems for transmission control in network supporting mission critical services | |
CN106789956B (zh) | 一种基于hls的p2p点播方法及系统 | |
CN107920108A (zh) | 一种媒体资源的推送方法、客户端及服务器 | |
CN107979644A (zh) | 防止高并发的信息包下载方法、电子设备、存储介质 | |
US20150296014A1 (en) | Picture download method and apparatus | |
TWI602431B (zh) | Method and device for transmitting information | |
US20160301625A1 (en) | Intelligent High-Volume Cloud Application Programming Interface Request Caching | |
TWI493356B (zh) | 非同步通信的方法、非同步地與網路瀏覽器通信的方法,及用於與網路通信的系統 | |
WO2017185632A1 (zh) | 数据传输的方法及电子设备 | |
US10154116B1 (en) | Efficient synchronization of locally-available content | |
KR20150025249A (ko) | 배칭 기반의 콘텐트 라우팅 방법 및 배칭 기반의 콘텐트 라우팅 방법을 수행하는 장치 | |
CN105917694B (zh) | 电信网络中的服务提供与激活 | |
US10178030B2 (en) | Network for providing appropriate content delivery network selection | |
US10728291B1 (en) | Persistent duplex connections and communication protocol for content distribution | |
US20170289229A1 (en) | Method and terminal device for providing multimedia content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220209 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |