向客户端自适应流传输媒体内容的服务器,方法和计算机程序产品与流程

文档序号:12071800阅读:288来源:国知局
向客户端自适应流传输媒体内容的服务器,方法和计算机程序产品与流程

本发明的领域涉及从服务器向客户端自适应流传输(streaming)媒体内容。本发明尤其涉及向客户端自适应流传输媒体内容的服务器,从服务器向客户端自适应流传输媒体内容的方法,以及被配置为执行所述方法中步骤的计算机程序产品。



背景技术:

近些年,对媒体内容,例如视频和/或音频内容进行流传输的需求快速增长。尤其是,过顶(over the top,OTT)视频传输应用(例如,YouTube和NetFlix)的数量快速增长。OTT内容传输指的是通过公共网络传输内容。

尤其是HTTP自适应流(HAS)正快速成为最流行的媒体内容流传输方法。HAS的一个主要优点是其能够使视频质量适应网络带宽(BW)条件,从而避免视频再缓冲,导致播放卡顿。

HTTP自适应流传输技术包括平滑流传输(微软),HTTP实时流媒体(苹果)和HTTP动态自适应流媒体(MPEG-DASH)。在本发明的背景下,使用术语HAS指代所有这些HTTP自适应流媒体技术。此外,术语HAS还指代SPDY协议流媒体,该协议与HTTP协议相关。

尽管HAS与渐进下载遗留方法相比而言前进了一大步,但是终端用户的体验质量(QoE)仍可改善。特别地,传统的HAS方式仍然会偶然出现卡顿。



技术实现要素:

本发明实施方式的目的是减少播放卡顿的出现,从而改善从服务器向客户端自适应流传输媒体内容。

根据本发明的一种实施方式,提供了一种向客户端流传输媒体内容的服务器。举例来说,所述媒体内容可以是视频,音频和/或文本。

所述媒体内容编码为具有不同质量等级的至少两个流。每个流包括连续的分段。所述服务器包括接收机和发射机。所述接收机被配置为从所述客户端接收对所述至少两个流中的第一流的选定分段的请求。所述发射机被配置为响应于对所述第一流的选定分段的所述请求,向所述客户端发送所述第一流的选定分段。所述发射机还被配置为向所述客户端推送所述至少两个流中的第二流的相应分段,其中所述第二流的质量等级低于所述第一流。

换句话说,除了向客户端发送所请求质量版本的选定分段,服务器还向客户端推送较低质量版本的选定分段。

在拉取的高质量分段无法及时到达的情况下,通过在具有请求质量的版本之外还推送较低质量版本的质量建立了安全保障,从而降低缓冲器欠载运行和播放相应卡顿的风险。

例如,在传统HAS方式中,当带宽突然下降时可能出现缓冲器欠载运行。在最坏情况下,在一开始下载新的高质量分段(即,相对较大尺寸分段)时带宽就突然下降。客户端必须在能够请求新的较低质量分段之前完成整个分段的下载。同时,客户端将消耗客户端缓冲器中存储的分段。当最终接收到高质量分段时,缓冲器填充(filling)可能已经低于切换到较低质量的阈值(也称为“恐慌(panic)”阈值)。客户端将在下一个分段跳至最低质量。如果分段无法及时传输并且缓冲器耗尽,播放将出现卡顿。但是,在本发明的实施方式中,通过服务器推送使得较低质量版本的分段可用。

举例来说,第二流可以是至少两个流中的最低质量流。例如,媒体内容可以分别提供为300Kbps,1500Kbps和3Mbps的三个流。不论何时,只要请求1500Kbps或3Mbps的分段,发射机就可以推送300Kbps的分段(最低可用质量)。

在一种实施方式中,所述服务器被配置为根据支持服务器推送的网络协议与所述客户端通信。

使用网络协议的一个好处是能够利用网络的现有基础设施。此外,流的分段可以穿过防火墙传输而不存在问题。

在另一种实施方式中,所述网络协议是HTTP协议或SPDY协议,优选为HTTP2.0或更高版本。

使用HTTP或SPDY协议的一个好处是能够利用网络的现有基础HTTP设施。例如,可以重用HTTP服务器,HTTP代理和内容分发网络(CDN)来传输HAS内容。此外,流的分段可以穿过防火墙传输而不存在问题。

在本发明的背景下,术语HTTP还包括HTTPS,因为从技术上讲HTTPS是在SSL/TLS协议上构件的HTTP。

优选地,服务器被配置为使用支持服务器推送的基于HTTP的协议,例如HTTP2.0或更高版本,或SPDY协议进行HTTP自适应流传输。

在一种实施方式中,服务器可以被配置为在服务器和客户端之间建立持久连接。例如,连接可以是TCP连接。

在一种实施方式中,所述发射机被配置为利用多路复用同时推送所述第二流的所述分段和所述第一流的所述分段。

特别地,HTTP2.0或更高版本,或SPDY协议具有HTTP能力。通过多路复用第一流和第二流的分段传输,较低质量版本分段和请求的质量版本同时可用。因此,在请求的质量版本出乎意料低(例如,由于带宽突然下降)的情况下,客户端有较低质量版本随时可用。因此,可以防止播放卡顿。

在替代实施方式中,发射机被配置为在发送请求的分段,即第一流的分段之前推送较低质量分段,即第二流的分段。

在一种实施方式中,所述发射机被配置为向推送所述第二流的所述分段分配比推送所述第一流的所述分段更高的优先级。

特别地,HTTP2.0或更高版本,或SPDY协议提供优先级支持。

在一种实施方式中,所述发射机被配置为只有在所述第一流的质量等级超过质量阈值时才推送所述第二流的所述分段。

在一种实施方式中,所述发射机被配置为只有在所述服务器和所述客户端之间的可用带宽低于带宽阈值时才推送所述第二流的所述分段。

在一种实施方式中,所述发射机被配置为只有在所述客户端和所述服务器之间的往返时间(RTT)高于RTT阈值时才推送所述第二流的所述分段。

在一种实施方式中,所述服务器被配置为估计所述客户端的缓冲器填充,所述发射机被配置为只有在估计的缓冲填充低于缓冲器阈值时才推送所述第二流的所述分段。

在一种实施方式中,所述服务器还包括追踪器,该追踪器被配置为追踪向所述客户端传输每个所请求分段的时间。所述发射机被配置为响应于对所述第一流的选定分段的所述请求,只有在追踪的传输所述选定分段之前的分段的时间超过所述之前的分段的持续时间时才推送所述第二流的相应分段。

也就是说,只有在对于之前请求的推送时间超过之前请求分段的持续时间时,才响应于对较高质量分段的请求推送较低质量分段。因此,只有客户端的缓冲器减少时服务器才推送分段。优选地,所述发射机被配置为在发送请求质量分段之前发送较低质量分段。

例如,客户端请求VQ为3的分段n。服务器追踪传输所述分段的时间。接下来,客户端请求VQ>0(例如,VQ2或VQ3)的分段n+1。如果服务器确定传输分段n的时间超过了分段n的持续时间,则其将推送分段n+1VQ0。如果未满足该条件,则不推送分段。

服务器还可以基于多个之前的分段的追踪时间及它们的持续时间决定是否推送较低质量分段。

所述发射机可以被配置为只有在传输时间超过持续时间预定量,例如1至10秒时才推送较低质量分段。

需要注意的是,上述条件可以结合,例如,发射机可以被配置为只有在RTT高于RTT阈值且第一流的质量等级超过质量阈值时才推送第二流的分段。

本发明的其他实施方式涉及一种从服务器向客户端自适应流传输媒体内容的方法。举例来说,所述媒体内容可以是视频,音频和/或文本。

在一种实施方式中,所述媒体内容编码为具有不同质量等级的至少两个流。每个流包括连续的分段。所述方法包括服务器从所述客户端接收对所述至少两个流中的第一流的选定分段的请求的步骤。所述方法还包括响应于对所述第一流的选定分段的所述请求,从所述服务器向所述客户端发送所述第一流的选定分段。所述方法还包括响应于对所述第一流的选定分段的所述请求,从所述服务器向所述客户端推送所述至少两个流中的第二流的相应分段,其中所述第二流的质量等级低于所述第一流。

在一种实施方式中,只有在所述第一流的质量等级超过质量阈值时才推送所述第二流的所述分段。

在一种实施方式中,只有在所述服务器和所述客户端之间的可用带宽低于带宽阈值时才推送所述第二流的所述分段。

在一种实施方式中,只有在所述客户端和所述服务器之间的往返时间RTT高于RTT阈值时才推送所述第二流的所述分段。

在一种实施方式中,所述方法还包括估计所述客户端的缓冲器填充,其中只有在估计的缓冲器填充低于缓冲器阈值时才推送所述第二流的所述分段。

在一种实施方式中,所述方法包括追踪向所述客户端传输每个所请求分段的时间。在一种实施方式中,所述方法还包括响应于对所述第一流的选定分段的所述请求,只有在追踪的传输所述选定分段之前的分段的时间超过所述之前的分段的持续时间时才推送所述第二流的相应分段。

还可以基于多个之前的分段的追踪时间及它们的持续时间决定是否推送较低质量分段。追踪向所述客户端传输每个所请求分段的时间。

可以只有在传输时间超过持续时间预定量,例如1至10秒时才推送较低质量分段。

需要注意的是,上述条件可以结合,例如,只有在追踪的之前分段的传输时间超过所述之前分段的持续时间且第一流的质量等级超过质量阈值时才推送第二流的分段。

本发明的其他实施方式涉及一种从服务器接收媒体内容的自适应流传输客户端。

在一种实施方式中,所述媒体内容编码为具有不同质量等级的至少两个流。每个流包括连续的分段。所述客户端包括速度确定组件,发射机,接收机和播放组件。所述速度确定组件被配置为确定所述服务器和所述客户端之间的带宽。所述速度确定组件还被配置为基于所确定的带宽从所述至少两个流的不同质量等级中选择质量等级。所述发射机被配置为向所述服务器发送对第一流的选定分段的请求,所述第一流对应于选择的所述质量等级。所述接收机被配置为接收所述服务器响应于所述请求而发送的具有所选择质量等级的所述流的选定分段。所述接收机还被配置为接收所述至少两个流中的第二流的推送分段,其中所述第二流的质量等级低于所述第一流。所述播放组件被配置为回放所述接收机接收的分段。所述客户端被配置为如果所述带宽低于之前确定的带宽,则回放所述推送分段,而非所述第一流的相应分段。

根据本发明实施方式的客户端的优点是可以在降低自适应流的VQ之前等待更长时间,承担更多的风险,因为在带宽降低的情况下有最低质量分段在本地可用。因此,客户端可以提高平均质量等级。此外,传统客户端必须从客户端请求较低质量版本分段,而根据本发明实施方式的客户端可以立即使用推送的分段,因为该分段已经预先加载了。这可以进一步降低卡顿风险。

本发明的其他实施方式涉及一种自适应流传输客户端从服务器接收媒体内容的方法。所述媒体内容编码为具有不同质量等级的至少两个流。每个流包括连续的分段。所述方法包括确定所述服务器和所述客户端之间带宽的步骤。所述方法还包括基于所确定的带宽从所述至少两个流的不同质量等级中选择质量等级的步骤。所述方法还包括向所述服务器发送对第一流的选定分段的请求的步骤,所述第一流对应于选择的所述质量等级。所述方法还包括接收所述服务器响应于所述请求而发送的具有所选择质量等级的所述流的选定分段的步骤。所述方法还包括接收所述至少两个流中的第二流的推送分段的步骤,其中所述第二流的质量等级低于所述第一流。所述方法还包括如果所述带宽低于之前确定的带宽,则播放所述推送分段的步骤,而非所述第一流的相应分段。

本发明的其他实施方式还涉及一种计算机程序产品,包括非瞬时性计算机可执行指令,所述计算机可执行指令被配置为当被执行时实施上述方法中的步骤。

上面相对于服务器描述的相同效果和优点也适用于方法和计算机程序产品。

附图说明

附图描述本发明的目前优选的非限制性示例实施方式。通过下面结合附图所做的具体描述,可以更好地理解本发明的上述以及其它优点,特征和目的,在这些附图中:

图1显示了典型HAS会话,其中图1A显示了加载状态下的客户端,图1B显示了稳定状态下的线性流传输客户端,图1C显示了稳定状态下的视频点播(VoD)客户端。

图2显示了根据本发明实施方式的不同质量等级分段的传输。

图3显示了根据本发明实施方式,作为浏览器插件的HTTP自适应流传输客户端。

图4显示了根据本发明实施方式,作为独立应用程序的HTTP自适应流传输客户端。

图5显示了根据本发明实施方式的内容分发网络传输应用。

图6显示了本发明方法的第一实施方式的流程图。

图7显示了本发明的方法第二实施方式的流程图。

图8显示了本发明方法的第三实施方式的流程图。

HAS实施方式(图1A-C)包括服务器2和客户端4。图1A显示了初始化状态下的客户端。客户端4向服务器2发送“获得清单”(GET manifest)请求。服务器做出响应,向客户端返回清单文件。客户端读取清单文件。清单文件包括媒体内容流分段的元数据,并且可以包括其他信息,例如播放媒体内容所需的DRM数据。特别地,清单文件可以描述可用的质量等级。

在所示示例中,清单文件指示DRM数据可用。因此,通过向服务器2发送“获得DRM信息”(GET DRM info)请求,客户端请求DRM数据。需要注意的是,请求DRM数据及发送DRM数据是可选的,例如,媒体内容可能未受DRM保护。

接下来,客户端4切换至夹在状态,其中通过向服务器2发送请求,客户端4请求具有所需质量等级的流的第一分段。质量等级可以是固定的初始等级,这对于客户端是典型的,或者可以是基于可用带宽和/或可用CPU能力确定的质量等级。

区分两类流传输之间的区别:线性流传输(也称为实时流传输)和视频点播(VoD)流传输。在大多数线性流传输部署中,清单文件定期更新,以包括服务器提供的新分段。数线性流传输客户端通常通过请求分段而开始新的播放,所述分段在线性流传输的生命周期中已经过去了D秒,从而填充客户端的缓冲器。VoD客户端通常选择所请求VoD标题的第一分段。需要注意,对于VoD客户端,清单文件是静态的。

在加载状态下,客户端4将以按顺序,但是比播放速度快的方式检索所请求的分段。在以比播放速度快的方式接收到的每个分段下载好之后,客户端的播放缓冲器将增加。在该状态下,线性流传输客户端将稳步赶上线性流传输。

一旦缓冲器包括足以确保连续播放的分段,客户端4将达到稳定状态。对于线性流传输客户端4(图1B),当客户端4在实时流传输的最新分段在服务器2上变得可用时就几乎直接检索所述最新分段时,缓冲器将达到大约为D秒的值。通常,客户端4将定期取得新的清单文件。一旦新的清单文件指示新的分段可以下载,线性流传输客户端4就将检索所述芯的分段。

对于VoD客户端4(图1C),稳定状态下的行为是不同的。当达到某个缓冲器水平(例如,30秒)时,客户端4将在两个分段检索之间增加额外的等待时间,从而不超过所述缓冲器水平。

在示例性实施方式中(图2),服务器2有可用的3Mbps高质量流A和300Kbps最低质量流B。当客户端4请求高质量流A的分段时,服务器2做出响应,发送流A的请求分段。此外,服务器2将向客户端4推送流B的相应分段。如图所示,当流A的分段1被请求时,流B的分段1也被推送。当流A的分段2被请求时,流B的分段2也被推送。在所示实施例中,服务器2以比流A的分段更高的优先级推送流B的分段,确保在(例如)带宽突然下降的情况下,低质量分段作为“安全保障”对于客户端4可用。在所示实施例中,服务器2采用HTTP2.0优先化。此外,图2显示了可以利用(例如)HTTP多路复用对流多路复用。

图3显示了服务器2和客户端4,其中客户端4包括浏览器6和浏览器插件8以获得HAS能力。插件8只能通过到浏览器的明确定义的软件接口请求对象。在一些实施方式中,可能不存在接口通知插件8服务器2向浏览器6推送了对象。浏览器6将只是将对象增加到浏览器缓存中。当插件8稍后请求推送的对象时,浏览器直接从本地缓存中提供所请求的对象。

插件8包括与客户端缓冲器12通信的速度确定算法(RDA)组件10。客户端缓冲器与播放组件14可操作地连接。浏览器6包括浏览器缓存。在所示实施例中,客户端4从服务器2流传输视频内容。视频内容以不同比特率编码,所述不同比特率对应于不同视觉质量(VQ)。在下面的实施例中,最低VQ为VQ0,最高VQ为VQ3。

通过RDA组件10和浏览器6向服务器2发送“获得VQ为3的分段n”(GET seg n VQ3)请求,客户端从服务器2请求具有视觉质量VQ3的分段n。服务器2做出响应,向浏览器6发送所请求的分段“Seg n VQ3”。浏览器6将分段传输给RDA组件10。服务器2还响应于请求向浏览器缓存16推送具有质量VQ0的分段。推送的分段18保持在浏览器缓存中,因此在RDA组件10向浏览器发送对所述分段的相应请求时,所述分段可以传输给插件8。(例如)在以高质量VQ3下载分段n时出现带宽突然下降的情况下,客户端4可以发送该请求。由于推送的分段18已经位于浏览器缓存16中,浏览器可以直接将分段18返回给RDA组件10。

在所示实施方式中,浏览器6不允许对象直接从服务器2推送至插件8。但是,本发明不限于所述实施方式。本领域技术人员理解,所有现有和将来浏览器中可能不存在浏览器插件接口(例如,NPAPI接口)的限制。例如,浏览器可包括对HAS的原生支持,不需要HAS插件8。

图4显示了服务器2和客户端4,其中客户端4实现为集成的独立应用程序。因此,和图3所示实施方式对比,当服务区2推送对象时,RDA组件10直接得到通知。在该实施例中,客户端4请求具有视觉质量VQ2的分段n,服务器2应该请求返回请求的分段,并向客户端推送具有VQ0的较低质量分段n。

图5显示了内容分发网络(CDN)传输应用2的实施方式。CDN传输应用2包括与缓存22通信的HTTP服务器20。HTTP服务器20还与CDN内部通信客户端(CICC)24通信。CICC24与缓存22通信。HTTP服务器20还与HAS安全推送算法组件(HSPA)通信,HSPA可选地包括存储器组件28,该存储器组件28用于存储客户端状态和/或会话状态,用于其算法的输入。CDN传输应用还可包括可由HSPA访问的配置文件30。HSPA组件26还与缓存22通信。客户端节点4包括HTTP客户端32。HTTP服务器组件20处理与客户端的HTTP通信。HTTP服务器20从客户端接收GET请求。HTTP服务器20执行检查,以证实所请求的对象,例如分段,是否已经存在于缓存22中。如果存在,它将把对象提供给客户端4。如果不存在,它将通知CDN内部通信客户端24从上游CDN节点取得对象。如果在缓冲22中未找到对象,则CICC从上游CDN节点取得对象。当CICC全部或部分获得所请求的对象时,它将通知HTTP服务器20。HTTP服务器20将处理通过HTTP客户端32向客户端4的传输。

每当HTTP服务器接收到HTTP请求或响应时,称为HAS安全推送算法(HSPA)的功能块将得到通知。HSPA组件26将忽视所有与HAS无关的请求/响应。如果请求/响应与HAS有关,其将使用一个或多个算法来决定是否有,以及哪个额外对象必须被推送给正在请求的客户端。在该特定实施例中,HSPA组件26确定最低VQ分段是否必须被推送给正在请求的客户端。它命令HTTP服务器20通过服务器推送来传输额外的分段。

HSPA 26可以采用不同策略来决定何时推送较低质量分段。其可以连续推送较低质量分段,例如,如果请求了较高质量分段,则总是推送最低质量分段。替代地,当请求的质量高于某个阈值时,其可以只推送较低质量分段,例如,最低质量分段。

此外,当满足某些条件时,例如,当客户端有卡顿风险时,HSPA 26可以至推送较低质量分段。例如:

-节点和客户端之间的可用带宽落到低于某个带宽阈值。

-客户端和服务器之间的RTT超过某个RTT阈值。

-估计的客户端的缓冲器填充落到低于某个缓冲器阈值。服务器使用“HAS会话重建”技术获得客户端缓冲器阈值的估值。

-先前分段或一组先前分段的传输时间大于至少一个先前分段的相应播放持续时间。这意味着客户端缓冲器缩小。

-服务器可以使用上述条件的组合来做出决定。

在本发明方法的一种实施方式中,服务器在步骤S100中接收对质量等级为VQ3的分段n的请求。服务器做出响应,在步骤S102中发送质量等级为VQ3的分段,并在步骤S104中发送质量等级为VQ0的分段n。或者,步骤S102和S104可以按相反顺序执行,或利用多路复用同时执行。

在一种实施方式中,在步骤S112中,服务器确定请求的分段的质量,例如视频质量是否超过质量阈值(图7)。如果未超过,则服务器不推送额外分段。如果请求的质量超过阈值,则服务器在步骤S114中还推送具有最低质量,例如VQ0的相应分段。

在一种实施方式中,服务器在步骤S112a中确定服务器和客户端之间的带宽是否低于带宽阈值(图8)。在步骤S112b中,服务器确定RTT是否超过RTT阈值。在步骤S112c中,服务器估计客户端的缓冲器填充,并确定估计的缓冲器填充是否低于缓冲器阈值。在步骤S112d中,服务器基于步骤S112a,S112b和/或S112c的结果确定分段是否必须被推送。需要注意的是,服务器可以采用步骤S112a,S112b和S112c的任意组合。例如,服务器可以只执行步骤S112a和S112b,并基于这两个步骤的结果确定是否推送分段VQ0。如果服务器确定要推送分段,则在最后的步骤S114中,服务器将推送具有视频质量VQ0的分段。

本领域技术人员很容易认识到,上述不同方法的步骤可以由程控计算机和/或具有计算能力的电子设备执行。在此,一些实施方式还涵盖如数字数据存储介质这样的程序存储装置,程序存储装置为可由机器或计算机读取,并且编码可由机器或计算机执行的指令程序,其中所述指令执行上述方法的一些或所有步骤。例如,程序存储装置可以是数字存储器,诸如磁盘和磁带这样的磁性存储介质,硬盘,或光学可读的数字数据存储介质。实施方式还涵盖编程为执行上述方法中步骤的计算机和/或具有计算能力(硬编码或软编码)的电子设备。所有附图,包括功能框中所示的各种元素的功能可以通过使用专用硬件和与合适软件相关的能够执行软件的硬件来实现。硬件可包括,但是不限于数字信号处理器(DSP)硬件,专用集成电路(ASIC),现场可编程门阵列(FPGA),用于存储软件的只读存储器(ROM),随机存取存储器(RAM)和非易失存储器。还可以包括其他传统和/或定制硬件。类似地,图中示出的所有开关仅仅是概念上的。它们的功能可以通过程序逻辑的运算,通过专用逻辑,通过程序控制和专用逻辑的交互执行。

本领域技术人员可以理解,本文中的任何框图代表体现本发明原理的说明性电路的概念视图。同样,可以理解的是,任何流程图均代表各种程序,这些程序可以随后被呈现在计算机可读的介质中,并由计算机或处理器执行,而不管该计算机或处理器是否被明确地示出。

尽管上面以特定实施方式描述了本发明的原理,但是,应该清楚的理解,该说明仅仅作为例子,不对由所附权利要求限定的本发明的保护范围构成限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1