CN107920108A - 一种媒体资源的推送方法、客户端及服务器 - Google Patents

一种媒体资源的推送方法、客户端及服务器 Download PDF

Info

Publication number
CN107920108A
CN107920108A CN201610890747.8A CN201610890747A CN107920108A CN 107920108 A CN107920108 A CN 107920108A CN 201610890747 A CN201610890747 A CN 201610890747A CN 107920108 A CN107920108 A CN 107920108A
Authority
CN
China
Prior art keywords
push
burst
client
server
time
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
Application number
CN201610890747.8A
Other languages
English (en)
Inventor
顾迎节
张尧烨
高莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610890747.8A priority Critical patent/CN107920108A/zh
Publication of CN107920108A publication Critical patent/CN107920108A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种媒体资源推送的方法、客户端和服务器。在该方法中,服务器接收客户端发送的携带推送指令的分片请求消息,该推送指令包括推送分片的标识以及推送策略指示信息;根据推送策略指示信息,服务器确定推送的分片标识对应的分片的推送时间;根据推送时间,向客户端推送所述推送的分片标识对应的分片。通过在客户端发送至服务器的推送指令中,增加推送策略指示信息,使得服务器可以根据推送策略指示信息进行分片推送,一方面保证客户端的流畅播放,另一方面也防止用户终止观看造成带宽浪费。

Description

一种媒体资源的推送方法、客户端及服务器
技术领域
本发明涉及信息技术领域,尤其涉及一种媒体资源的推送的方法、客户端及服务器。
背景技术
用户终端获取媒体资源并进行播放的方式有多种,典型的有:HTTP(HypertextTransfer Protocol,超文本传输协议)文件下载或者P2P(Peer to Peer,点对点)文件下载到本地磁盘后播放、HTTP渐进式下载(HTTP Progressive Download)以及HTTP的动态自适应流(Dynamic Adaptive Streaming over HTTP,DASH)方案等等。其中,DASH对采用HTTP传输运动图像专家组(Moving Picture Experts Group,MPEG)媒体涉及到的各方面提出了一系列的技术要求。
具体的,DASH标准规范了媒体描述文件(Media Presentation description,MPD)和分片(Segment)的格式。任意媒体资源都由一个个分片构成,其中,分片是DASH客户端向DASH服务器请求媒体资源的基本单位。MPD主要描述了媒体资源的信息,包括不同码率的分片的下载地址。客户端获取MPD后,可以根据网络状况如下载速度、缓存多少等,选择合适码率的分片;服务器根据客户端的选择,通过HTTP协议将分片发送到客户端,以保证用户的观看体验。
为了减小客户端播放时延,DASH标准提出了推送机制,具体如图1所示:步骤1、客户端向服务器发送MPD请求消息,消息中携带推送指令(Push Directive),推送指令中包含客户端希望服务器推送的分片的标识,如初始化分片的标识。2)响应客户端的请求,服务器发送推送承诺(Push Promise)和MPD给客户端。推送承诺指示服务器将会在哪个流标识(StreamID)指示的流中推送初始化分片。3)服务器在发送完MPD和推送承诺后,根据流标识,在推送承诺指定的流中主动推送初始化分片至客户端。4)客户端向服务器发送分片请求消息,消息中包括请求分片的标识和推送指令,推送指令中包含客户端希望服务器推送的分片标识;客户端希望服务器推送的分片标识可以是通过列表或模板的形式描述的分片的下载地址,也可以是指定了所请求的分片之后连续的几个分片。例如客户端请求分片1,在推送指令中包括分片2的标识、分片的标识3和分片4的标识。5)服务器响应客户端的请求,发送推送承诺和所请求的分片至客户端,推送承诺包含了每个即将推送的分片的流标识和分片标识,用于指示在哪个流中推送哪个分片。6)根据第5步推送承诺中的流标识,服务器在指定流中向客户端推送(推送指令中的)分片。7)客户端根据推送承诺中的分片标识和流标识,接收服务器推送来的分片,进行解码播放。重复步骤4—7直到播放完毕或用户停止观看等。通过服务器的主动推送,可以加快媒体播放启动速度,减少延迟,也减少了消息的交互。
然而,实际应用中,这种推送机制,存在一个缺陷:如果服务器过早地将多个分片推送到客户端,则当用户突然中止观看时会造成较大带宽浪费;如果服务器分片推送的太晚,则可能导致客户端缓存不足,播放卡顿。
发明内容
本发明提供一种媒体资源推送的方法及装置,通过在客户端发送至服务器的推送指令中,增加推送策略指示信息,使得服务器可以根据推送策略指示信息进行分片推送,一方面保证客户端的流畅播放,另一方面也防止用户终止观看造成带宽浪费。
第一方面,本发明的实施例提供一种媒体资源推送的方法,包括:
服务器接收客户端发送的携带推送指令的分片请求消息,该推送指令包括推送分片的标识以及推送策略指示信息;服务器根据推送策略指示信息,确定推送的分片标识对应的分片的推送时间;服务器根据推送时间,向所述客户端推送所述推送的分片标识对应的分片。相较于现有技术,本发明实施例扩展了推送指令中的参数,使得服务器可以根据推送策略指示信息进行分片推送,一方面保证客户端的流畅播放,另一方面也防止用户终止观看造成带宽浪费。
在一种可能的设计中,推送指令中包括的推送分片的标识指示了客户端希望服务器推送的至少一个分片。所述推送策略指示信息包括推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。在一种可能的实现中,客户端获取当前时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息,计算得到第一个分片的最迟推送时间以及连续分片之间的推送间隔。由客户端确定分片的推送时间,服务器完全按照客户端的要求进行分片的推送,客户端向服务器发送的推送策略指示信息中只要包括每一个分片的推送时间即可。与由服务器计算确定每一个分片的推送时间相比,节约了客户端与服务器的消息开销。特别是当需要确定更加准确的推送时间时,计算分片推送的时间需要的参数可能会更多,此时通过客户端向服务器传递这些参数的代价将会很高。
在一种可能的设计中,上述服务器根据推送时间,向客户端推送所述推送的分片标识对应的分片,具体为:在所述第一个分片的最迟推送时间之前,向客户端推送所述推送的分片标识对应的分片中的第一个分片;根据推送间隔,按序推送所述推送的分片标识对应的分片中剩余的分片。一种应用场景下,服务器出口带宽资源有限,服务器根据最迟推送时间以及客户端的优先级(如付费用户优先推送),确定第一个分片的推送时间。由服务器和客户端共同决定推送分片的推送时间,使得服务器向客户端推送分片的推送策略更加的灵活。
一种可能的设计中,客户端采集相关的信息,并将这些信息作为推送策略指示信息发送给服务器,由服务器根据这些信息确定分片的推送时间。具体的,该推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。由服务器根据客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息,确定分片的推送时间,一方面,减少了客户端计算分片推送时间带来的性能消耗,另一方面由于服务器根据推送策略指示信息计算得出的分片推送时间是一个区间,即服务器可以根据自身的情况,在该时间区间里确定分片的推送时间,从而确保了更加灵活的推送策略。
第二方面,本发明实施例还提供了一种媒体资源推送的方法,包括:
客户端向服务器发送携带推送指令的分片请求消息,该推送指令包括推送分片的标识以及推送策略指示信息;该推送策略指示信息用于指示服务器确定发送推送分片的标识对应的分片的推送时间;接收服务器推送的所述推送的分片标识对应的分片。相较于现有技术,本发明实施例扩展了推送指令中的参数,使得服务器可以根据推送策略指示信息进行分片推送,一方面保证客户端的流畅播放,另一方面也防止用户终止观看造成带宽浪费。
第三方面,本发明实施例提供了一种媒体资源推送的服务器,该媒体资源推送的服务器具有实现上述第一方面中服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该媒体资源推送的服务器的结构中包括处理器和存储器,所述存储器用于存储支持该媒体资源推送的服务器执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。该媒体资源推送的服务器还可以包括通信接口,用于该媒体资源推送的服务器与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种媒体资源推送的客户端,该媒体资源推送的客户端具有实现上述第一方面中客户端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该媒体资源推送的客户端的结构中包括处理器和存储器,所述存储器用于存储支持该媒体资源推送的客户端执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。该媒体资源推送的客户端还可以包括通信接口,用于该媒体资源推送的客户端与其他设备或通信网络通信。
第五方面,本发明实施例提供了一种计算机存储介质,用于储存为上述媒体资源推送的服务器所用的计算机软件指令,其包含用于执行上述方面为媒体资源推送的服务器所设计的程序。
第六方面,本发明实施例提供了一种计算机存储介质,用于储存为上述媒体资源推送的客户端所用的计算机软件指令,其包含用于执行上述方面为媒体资源推送的客户端所设计的程序。
相较于现有技术,本发明提供的方案扩展了推送指令中的参数,使得服务器可以根据推送策略指示信息进行分片推送,一方面保证客户端的流畅播放,另一方面也防止用户终止观看造成带宽浪费。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
现将参考附图通过非限制性的实施例描述本发明的优选特征,其中:
图1为现有技术中媒体资源的推送方法的流程图;
图2为本发明一实施例所提供的媒体资源推送系统示意图;
图3为本发明一实施例提供的计算机设备示意图;
图4为本发明一实施例提供的一种媒体资源的推送的方法流程图;
图5为本发明一实施例提供的媒体资源推送的服务器的结构示意图
图6为本发明一实施例提供的媒体资源推送的客户端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图2为本发明一实施例提供的一种媒体资源推送系统200的架构示意图,包括:服务器201客户端202以及网络203。客户端202通过网络203,与服务器201通信。
其中,客户端负责向服务器发送分片请求消息,用于向服务器请求获取分片,其中分片包括初始化分片和媒体分片。初始化分片包括媒体资源播放所需要的元数据,媒体分片包括媒体资源的真实数据。分片请求消息中可包含推送指令,推送指令中包含客户端希望服务器推送的分片的标识以及推送策略指示信息。客户端希望服务器推送的分片标识可以是通过列表或模板的形式描述分片的下载地址,也可以是指定了所请求的分片之后连续的几个分片。推送策略指示信息用于指示服务器何时进行分片的推送,具体可以是第一个分片的推送时间以后后续分片推送的推送间隔,或者是其他任何可以用于决策何时进行分片推送的信息,如客户端缓存中的分片可播放总时长、最大缓存时长以及当前的网络状态信息。客户端还用于接收服务器发送或推送的分片,且负责分片的解码、解密、渲染和呈现等。服务器负责分片的存储和分发,接收客户端的分片请求消息,解析分片请求消息中的推送指令,根据推送指令中的推送策略指示信息,确定不同分片的推送时机,发送或推送分片至客户端。
需要说明的是,本发明实施例中的方法不仅支持基于HTTP的动态自适应流(DASH)技术,也同样适用于其它HTTP流技术,包括HTTP直播流(HTTP Live Streaming,HLS),HTTP动态流(HTTP Dynamic Streaming,HDS)和HTTP平滑流(HTTP Smooth Streaming,HSS)。系统中,客户端202的数量也可以是多个,本发明实施例对此不作限定。具体的,客户端202可以为诸如手机、平板电脑、台式电脑或者笔记本电脑之类的任意终端。
如图3所示,图2中的服务器201或者客户端202可以以图3中的计算机设备(或系统)的方式来实现。
图3所示为本发明实施例提供的计算机设备示意图。计算机设备300包括至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传送信息。所述通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器303可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable 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),发光二级管(light emitting 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为本发明实施例提供的一种媒体资源推送方法的流程图,包括如下步骤:
步骤401、客户端向服务器发送携带推送指令的分片请求消息,用于向服务器请求分片1,其中,该推送指令包括推送分片的标识以及推送策略指示信息。
具体的,该推送分片的标识用于指示服务器推送的至少一个分片,为便于描述,本发明实施例中以客户端希望服务器推送分片2、分片3以及分片4为例。所述推送策略指示信息用于指示所述服务器确定发送所述推送分片的标识对应的分片的推送时间。
一种可能的设计中,推送策略指示信息包括推送的分片标识对应的分片中的第一个分片(即分片2)的最迟推送时间以及推送间隔。例如,客户端向服务器发送携带推送指令的分片请求消息可以如下面的代码1所示:
代码1
其中,“:path=/example/rendition1/segment1”表示请求分片的URL(即本发明实施例中分片1的URL),“accept-push-policy=“urn:mpeg:dash:fdh:2016:push-next”;3;q=1.0;”表示客户端希望推送分片1之后的3个分片,“q=1.0”表示该消息的重要性权重是1。“FirstSegmentDeadline=16:20:10;PushInterval=02;”即是本发明实施例增加的推送策略指示信息,包括第一个推送分片(即本发明实施例中的分片2)的最迟推送时间16:20:10,相邻两个分片的推送间隔2s。
步骤402、服务器接收客户端发送的分片请求消息,确定所述推送的分片标识对应的分片的推送时间;
具体的,服务器解析分片请求消息中的推送策略指示信息,并根据推送策略指示信息确定推送的分片标识对应的分片的推送时间。
步骤404、响应客户端的分片请求消息,向客户端发送推送承诺和分片1;
其中,推送承诺表示服务器将会在哪个流标识(StreamID)指示的流中推送分片。可选的,推送承诺中还包括服务器确定的推送时间,即用于指示服务器将会在何时在哪个流标识指示的流中推送哪个分片。本发明实施例中,服务器会针对分片2、分片3以及分片4分别发送推送承诺。如,服务器向客户端发送推送承诺和分片1如下面的代码2-5所示:
代码2
代码3
代码4
代码5
如代码1所示,“Stream ID=2”表示服务器将在ID=2的流中推送分片2,“:path=/example/rendition1/segment2”表示了分片2的URL。“:time=16:20:08”表示服务器将在16:20:08推送分片。由于分片2是客户端请求的第一个推送分片,所以它的推送时间不能晚于FirstSegmentDeadline,即16:20:10。在FirstSegmentDeadline之前,服务器可以自由决定发送时间。发送客户端请求的分片1的消息格式如代码5所示,其中,“status=200”表示服务器已成功处理了客户端的分片请求消息,“push-policy=“urn:mpeg:dash:fdh:2016:push-next”;3”表示服务器将执行的推送指令是推送所请求分片的后面3个分片。“{binary data for segment 1}”即是客户端所请求的分片1的数据。
步骤404、服务器根据推送的分片标识对应的分片的推送时间,向客户端推送对应的分片。
本发明实施例中,服务器根据客户端发送的推送策略指示信息确定在16:20:08时刻将分片2通过ID=2的Stream推送至客户端、在16:20:10时刻将分片3通过ID=4的Stream推送至客户端以及在16:20:12时刻将分片4通过ID=6的Stream推送至客户端。
步骤405、客户端接收服务器推送的分片。
客户端根据推送承诺中的流标识以及分片标识,接收并保存服务器推送的分片。
在本发明实施例中,通过在客户端向服务器发送的分片请求中携带推送策略指示信息,以便于服务器根据该推送策略指示信息确定推送分片的推送时间,使得服务器向客户端推送分片的速度更加符合客户端的实际需求,既避免服务器过早地将多个分片推送到客户端,导致用户突然中止观看时造成的带宽浪费;又避免了过晚推送分片,可能导致的客户端缓存不足,播放卡顿。
在另一种可能的设计中,本发明实施例中的推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。其中,网络状态信息可以是任意可以表征服务器和客户端之间传输单个分片所需时间的网络参数,例如,可以是往返时间(Round-Trip Time,RTT)和/或丢包率(Package Loss Rate,PLR)等。这种情况下,客户端向服务器发送携带推送指令的分片请求消息可以如下面的代码6所示:
代码6
其中,CurrentTime表示客户端发送分片请求消息的时间;CurrentCache表示客户端发送分片请求消息时,缓存中的分片可播放的总时长;MaxCache表示客户端允许的最大缓存时长,避免当用户停止观看时,缓存过多分片造成的带宽浪费;NetworkStatus表示客户端检测到的网络状态信息。:path=/example/rendition1/segment1表示请求分片的URL,即分片1的URL。accept-push-policy=”urn:mpeg:dash:fdh:2016:push-template表示用模板的形式描述推送的分片,example/rendition1/segment{}:{2,3,4}即是分片的URL模板,表示推送分片的URL为example/rendition1/segment2,example/rendition1/segment3和example/rendition1/segment4。CurrentTime=16:20:10表示客户端发送分片请求消息的时间是16:20:10,CurrentCache=06表示客户端发送请求消息时,按照正常播放速度,缓存中分片可播放时长为6s。MaxCache=10表示最大缓存时长是10s,当客户端缓存超过10s的分片时,用户停止观看则会造成较大的带宽浪费。“RTT=0.02”,表示客户端测量出来的客户端到服务器之间的往返时间是0.02s。
服务器根据推送策略指示信息确定分片的推送时间,以下给出一种计算方法的示例,其中,网络状态信息以RTT为例。分片的推送需要满足两个条件:a)分片推送到达客户端之前,客户端的缓存不能为空,否则会导致播放卡顿;b)分片推送到客户端时,客户端的缓存中分片不能超过最大缓存时长,否则如果用户停止观看,则会造成较大带宽浪费。设三个分片的推送时间分别是t1,t2,t3,从服务器开始发送分片至客户端完全接收分片的时间设为TCost(Tcost=RTT/2),分片的时长是Duration(此处假设所有分片的时长相同)。则由条件a)得出:
CurrentCache+Duration-(t1+TCost-CurrentTime)>0
t1+Tcost–CurrentTime表示从客户端发起分片请求至完全接收到推送的分片所消耗(播放)的时间,这个值应该小于客户端原有的缓存中的分片可播放总时长加上在推送之前服务器发来的分片1的时长之和。
由条件b)得出:
CurrentCache-(t1+TCost–CurrentTime)+2*Duration<MaxCache
(t1+TCost–CurrentTime)表示客户端从发起分片请求至接收到推送的第一个分片,这段时间消耗的时长,2*Duration则是客户端增加的分片时长(请求的分片1和推送的分片2),所以CurrentCache-(t1+TCost–CurrentTime)+2*Duration表示客户端接收到推送地分片2之后的缓存时长,这个值不能超过最大缓存时长MaxCache。
通过上述公式,可以计算出分片1的推送时间范围(CurrentCache+CurrentTime-TCost+2*Duration-MaxCache,CurrentCache+Duration+CurrentTime-Tcost)。理论上t1可取这个区间中的任何值,此处取区间中间值。即t1=CurrentCache+CurrentTime–Tcost+3/2*Duration-1/2*MaxCache。
当分片2的推送时间计算出来后,再计算分片3和分片4的推送时间。首先更新以下几个参数
CurrentCache=CurrentCache-(t1+TCost–CurrentTime)+2*Duration
CurrentTime=t1+Tcost
再通过以下不等式计算分片3的推送时间:
t2+TCost–CurrentTime<CurrentCache
CurrentCache-(t2+TCost–CurrentTime)+Duration<MaxCache
得到t2的取值范围区间,t2取中间值。
t3的计算方法与t2相同,先更新CurrentCache和CurrentTime,再计算t3值,不再赘述。
客户端采集客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息,并将其作为推送策略指示信息发送给服务器。由服务器确定分片的推送时间,一方面,减少了客户端计算分片推送时间带来的性能消耗,另一方面由于服务器根据推送策略指示信息计算得出的分片推送时间是一个区间,即服务器可以根据自身的情况,在该时间区间里确定分片的推送时间,从而确保了更加灵活的推送策略。例如,服务器根据推送策略指示信息计算得到分片2的推送时间为(16:00:00,16:02:00),则服务器可以根据自身的资源使用情况(如服务器出口带宽资源等)在16:00:00至16:02:00之间任意时间推送分片2。
需要说明的是,在本发明实施例的一种可能的设计中,客户端向服务器发送的推送策略指示信息包括推送的分片标识对应的分片中的第一个分片(即分片2)的最迟推送时间以及推送间隔,其中,第一个分片的最迟推送时间和推送间隔可以是由客户端根据客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息计算确定的。客户端同样也是基于条件a)和条件b)的限制计算第一个分片的最迟推送时间和推送间隔。具体的计算方法,本发明实施例不再赘述。客户端根据采集到的当前时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息,计算得到第一个分片的最迟推送时间以及推送间隔。由客户端确定分片的推送时间,服务器完全按照客户端的要求进行分片的推送,客户端向服务器发送的推送策略指示信息中只要包括每一个分片的推送时间即可。与由服务器计算确定每一个分片的推送时间相比,节约了客户端与服务器的消息开销。特别是当需要确定更加准确的推送时间时,计算分片推送的时间需要的参数可能会更多,此时通过客户端向服务器传递这些参数的代价将会很高。
需要说明的是,上述的客户端最大缓存时长可以是客户端的物理缓存容量。当客户端接收到的分片超过客户端的物理缓存容量的时候,多余的分片将被丢弃。在确定分片的推送时间时,考虑客户端的物理缓存容量,可以避免由于推送分片的速度过快,导致的无法缓存分片的情况发生。另一种可能的设计中,上述的客户端最大缓存时长可以是客户端特定阶段的缓存阈值,该特定阶段的缓存阈值不大于客户端的物理缓存容量。例如,在视频开始的前10分钟内,用户很可能观看了一段时间后,发现对该视频不感兴趣,然后终止继续观看。在此阶段,在确定分片的推送时间时,考虑客户端在该阶段的缓存阈值,可以减小由于推送分片的速度过快,导致用户突然终止观看带来的带宽浪费。
本发明实施例还描述了与上述图4所述方法实施例属于同一发明构思下的一种媒体资源的推送服务器结构示意图。如图5所示,该媒体资源的推送服务器500用于执行图4上述方法实施例中服务器的功能,包括:接收单元501,处理单元503和发送单元505。
其中,接收单元501,用于接收客户端发送的携带推送指令的分片请求消息,所述推送指令包括推送分片的标识以及推送策略指示信息;处理单元503,用于根据所述推送策略指示信息,确定所述推送的分片标识对应的分片的推送时间;发送单元505,用于根据所述推送时间,向所述客户端推送所述推送的分片标识对应的分片。其中,所述推送分片的标识用于指示服务器推送的至少一个分片。
在一种可能的实现方式中,所述推送策略指示信息包括所述推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。所述发送单元505,用于根据所述推送时间,向所述客户端推送所述推送的分片标识对应的分片,具体为:在所述第一个分片的最迟推送时间之前,向所述客户端推送所述推送的分片标识对应的分片中的第一个分片;根据所述推送间隔,按序推送所述推送的分片标识对应的分片中剩余的分片。
在另一种可能的实现方式中,所述推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。
在本实施例中,服务器500是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到服务器500可以采用图3所示的形式。接收单元501,处理单元503和发送单元505可以通过图3的处理器和存储器来实现。
本发明实施例还描述了与上述图4所述方法实施例属于同一发明构思下的一种媒体资源的推送客户端结构示意图。如图6所示,该媒体资源的推送客户端600用于执行图4上述方法实施例中客户端的功能,包括:发送单元601和接收单元603。
其中,发送单元601,用于向服务器发送携带推送指令的分片请求消息,所述推送指令包括推送分片的标识以及推送策略指示信息;所述推送策略指示信息用于指示所述服务器确定发送所述推送分片的标识对应的分片的推送时间;接收单元603,用于接收所述服务器推送的所述推送的分片标识对应的分片。其中,所述推送分片的标识用于指示服务器推送的至少一个分片。
在一种可能的实现方式中,所述推送策略指示信息包括所述推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。
在另一种可能的实现方式中,所述推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。
在本实施例中,客户端600是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到客户端600可以采用图3所示的形式。发送单元601和接收单元603可以通过图3的处理器和存储器来实现。
本发明实施例还提供了一种计算机存储介质,用于储存为上述图5所示的服务器所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现分片推送。
本发明实施例还提供了另一种计算机存储介质,用于储存为上述图6所述的客户端所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现分片推送。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (18)

1.一种媒体资源推送的方法,所述方法应用于服务器,其特征在于,包括:
接收客户端发送的携带推送指令的分片请求消息,所述推送指令包括推送分片的标识以及推送策略指示信息;
根据所述推送策略指示信息,确定所述推送的分片标识对应的分片的推送时间;
根据所述推送时间,向所述客户端推送所述推送的分片标识对应的分片。
2.如权利要求1所述的方法,其特征在于,所述推送分片的标识用于指示服务器推送的至少一个分片。
3.如权利要求1或2所述的方法,其特征在于,所述推送策略指示信息包括所述推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。
4.如权利要求3所述的方法,其特征在于,所述根据所述推送时间,向所述客户端推送所述推送的分片标识对应的分片,具体为:
在所述第一个分片的最迟推送时间之前,向所述客户端推送所述推送的分片标识对应的分片中的第一个分片;
根据所述推送间隔,按序推送所述推送的分片标识对应的分片中剩余的分片。
5.如权利要求1或2所述的方法,其特征在于,所述推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。
6.一种媒体资源推送的方法,其特征在于,包括:
向服务器发送携带推送指令的分片请求消息,所述推送指令包括推送分片的标识以及推送策略指示信息;所述推送策略指示信息用于指示所述服务器确定发送所述推送分片的标识对应的分片的推送时间;
接收所述服务器推送的所述推送的分片标识对应的分片。
7.如权利要求6所述的方法,其特征在于,所述推送策略指示信息包括所述推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。
8.如权利要求6所述的方法,其特征在于,所述推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。
9.一种媒体资源推送的服务器,其特征在于,包括:
接收单元,用于接收客户端发送的携带推送指令的分片请求消息,所述推送指令包括推送分片的标识以及推送策略指示信息;
处理单元,用于根据所述推送策略指示信息,确定所述推送的分片标识对应的分片的推送时间;
发送单元,用于根据所述推送时间,向所述客户端推送所述推送的分片标识对应的分片。
10.如权利要求9所述的服务器,其特征在于,所述推送分片的标识用于指示服务器推送的至少一个分片。
11.如权利要求9或10所述的服务器,其特征在于,所述推送策略指示信息包括所述推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。
12.如权利要求11所述的服务器,其特征在于,所述发送单元,用于根据所述推送时间,向所述客户端推送所述推送的分片标识对应的分片,具体为:
在所述第一个分片的最迟推送时间之前,向所述客户端推送所述推送的分片标识对应的分片中的第一个分片;
根据所述推送间隔,按序推送所述推送的分片标识对应的分片中剩余的分片。
13.如权利要求9或10所述的服务器,其特征在于,所述推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。
14.一种媒体资源推送的客户端,其特征在于,包括:
发送单元,用于向服务器发送携带推送指令的分片请求消息,所述推送指令包括推送分片的标识以及推送策略指示信息;所述推送策略指示信息用于指示所述服务器确定发送所述推送分片的标识对应的分片的推送时间;
接收单元,用于接收所述服务器推送的所述推送的分片标识对应的分片。
15.如权利要求14所述的客户端,其特征在于,所述推送策略指示信息包括所述推送的分片标识对应的分片中的第一个分片的最迟推送时间以及连续分片之间的推送间隔。
16.如权利要求14所述的客户端,其特征在于,所述推送策略指示信息包括客户端发送分片请求消息的时间、缓存中的分片可播放总时长、客户端最大缓存时长以及网络状态信息。
17.一种媒体资源推送的服务器,其特征在于,包括:处理器和存储器,其中,
所述存储器中存有计算机可读程序;
所述处理器通过运行所述存储器中的程序,以用于完成上述权利要求1至5所述的方法。
18.一种媒体资源推送的客户端,其特征在于,包括:处理器和存储器,其中,
所述存储器中存有计算机可读程序;
所述处理器通过运行所述存储器中的程序,以用于完成上述权利要求6至8所述的方法。
CN201610890747.8A 2016-10-11 2016-10-11 一种媒体资源的推送方法、客户端及服务器 Pending CN107920108A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610890747.8A CN107920108A (zh) 2016-10-11 2016-10-11 一种媒体资源的推送方法、客户端及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610890747.8A CN107920108A (zh) 2016-10-11 2016-10-11 一种媒体资源的推送方法、客户端及服务器

Publications (1)

Publication Number Publication Date
CN107920108A true CN107920108A (zh) 2018-04-17

Family

ID=61892822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610890747.8A Pending CN107920108A (zh) 2016-10-11 2016-10-11 一种媒体资源的推送方法、客户端及服务器

Country Status (1)

Country Link
CN (1) CN107920108A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660587A (zh) * 2018-10-22 2019-04-19 平安科技(深圳)有限公司 基于随机数的数据推送方法、装置、存储介质及服务器
CN110086797A (zh) * 2019-04-22 2019-08-02 北京开广信息技术有限公司 媒体流的实时接收方法及客户端
WO2020098455A1 (zh) * 2018-11-14 2020-05-22 北京开广信息技术有限公司 媒体流的实时递送方法及服务器
CN111385315A (zh) * 2018-12-27 2020-07-07 阿里巴巴集团控股有限公司 点对点资源下载方法和装置
CN113014947A (zh) * 2021-03-05 2021-06-22 北京猿力未来科技有限公司 数据推送方法、辅端、主端及数据推送系统
CN114640711A (zh) * 2020-12-15 2022-06-17 深圳Tcl新技术有限公司 一种tlv数据包的推送方法、智能终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088620A (zh) * 2010-12-01 2011-06-08 中兴通讯股份有限公司 一种内容分发网络中媒体文件下载方法及客户端
CN103124379A (zh) * 2011-11-18 2013-05-29 中国电信股份有限公司 一种流媒体推送速率控制方法和装置
US20140156801A1 (en) * 2012-12-04 2014-06-05 Mobitv, Inc. Cowatching and connected platforms using a push architecture
CN104918072A (zh) * 2014-03-14 2015-09-16 奥多比公司 低延时实况视频流传输

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088620A (zh) * 2010-12-01 2011-06-08 中兴通讯股份有限公司 一种内容分发网络中媒体文件下载方法及客户端
CN103124379A (zh) * 2011-11-18 2013-05-29 中国电信股份有限公司 一种流媒体推送速率控制方法和装置
US20140156801A1 (en) * 2012-12-04 2014-06-05 Mobitv, Inc. Cowatching and connected platforms using a push architecture
CN104918072A (zh) * 2014-03-14 2015-09-16 奥多比公司 低延时实况视频流传输

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660587A (zh) * 2018-10-22 2019-04-19 平安科技(深圳)有限公司 基于随机数的数据推送方法、装置、存储介质及服务器
WO2020098455A1 (zh) * 2018-11-14 2020-05-22 北京开广信息技术有限公司 媒体流的实时递送方法及服务器
CN111385315A (zh) * 2018-12-27 2020-07-07 阿里巴巴集团控股有限公司 点对点资源下载方法和装置
CN110086797A (zh) * 2019-04-22 2019-08-02 北京开广信息技术有限公司 媒体流的实时接收方法及客户端
CN110086797B (zh) * 2019-04-22 2021-05-28 北京开广信息技术有限公司 媒体流的实时接收方法、客户端、计算机设备和存储介质
CN114640711A (zh) * 2020-12-15 2022-06-17 深圳Tcl新技术有限公司 一种tlv数据包的推送方法、智能终端及存储介质
CN114640711B (zh) * 2020-12-15 2023-08-01 深圳Tcl新技术有限公司 一种tlv数据包的推送方法、智能终端及存储介质
CN113014947A (zh) * 2021-03-05 2021-06-22 北京猿力未来科技有限公司 数据推送方法、辅端、主端及数据推送系统
CN113014947B (zh) * 2021-03-05 2023-05-09 北京猿力未来科技有限公司 数据推送方法、辅端、主端及数据推送系统

Similar Documents

Publication Publication Date Title
CN107920108A (zh) 一种媒体资源的推送方法、客户端及服务器
US10986414B1 (en) Resource management for video playback and chat
CN104918072B (zh) 低延时实况视频流传输
US7856501B2 (en) Network traffic prioritization
US9021537B2 (en) Pre-buffering audio streams
KR102286957B1 (ko) 네트워크의 디바이스들에 의해 수행되는 지속적인 트래픽 세션들 사이에서 네트워크의 사용 가능한 대역폭을 분배하기 위한 방법 및 그 장치
WO2022222755A1 (zh) 业务处理方法、装置及存储介质
US9544346B1 (en) Systems and methods for selecting a node for media streaming
CN110636339B (zh) 基于码率的调度方法、装置及电子设备
US9521178B1 (en) Dynamic bandwidth thresholds
US20130198406A1 (en) Adaptive variable fidelity media distribution system and method
JP6542866B2 (ja) リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム
CN109982159A (zh) 在线播放流媒体的方法和终端
CN112738548B (zh) 一种流媒体调度方法、装置、设备及存储介质
CN105337901A (zh) 一种路由器的智能带宽分配方法及装置
JP7011941B2 (ja) クライアント及び受信方法
CN108810052A (zh) 直播服务器的选择方法及装置
CN110168970A (zh) 响应于增长的数据流量时延延迟新会话的启动
US20130346590A1 (en) Client Side Control of Adaptive Streaming
CN110087141A (zh) 视频数据传输方法、装置、客户端及服务器
CN104219286A (zh) 流媒体处理方法、装置、客户端、cdn节点服务器及终端
CN114268660A (zh) 在增长的数据流量时延期间预测新会话启动的等待时间
US9712580B2 (en) Pipelining for parallel network connections to transmit a digital content stream
CN111510789A (zh) 视频播放方法、系统、计算机设备及计算机可读存储介质
TWI723394B (zh) 修正視訊串流流量的方法、機上盒及電腦可讀儲存介質

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180417

RJ01 Rejection of invention patent application after publication