CN104737149A - 对多个内容分发网络上的流媒体文件进行分区 - Google Patents

对多个内容分发网络上的流媒体文件进行分区 Download PDF

Info

Publication number
CN104737149A
CN104737149A CN201380054168.4A CN201380054168A CN104737149A CN 104737149 A CN104737149 A CN 104737149A CN 201380054168 A CN201380054168 A CN 201380054168A CN 104737149 A CN104737149 A CN 104737149A
Authority
CN
China
Prior art keywords
cdn
streaming media
media title
subregion
list
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
Application number
CN201380054168.4A
Other languages
English (en)
Other versions
CN104737149B (zh
Inventor
马克·沃特森
尼尔·D·洪特
约翰·芬格
安东尼·N·帕克
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.)
Netflix Inc
Original Assignee
Netflix Inc
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 Netflix Inc filed Critical Netflix Inc
Publication of CN104737149A publication Critical patent/CN104737149A/zh
Application granted granted Critical
Publication of CN104737149B publication Critical patent/CN104737149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/262Content 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/26258Content 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

公开了用于响应于从客户端设备接收的、对流媒体内容的请求来生成偏好排名的技术。偏好排名用于间接地对跨不同内容分发网络(CDN)的流媒体内容进行分区。由于所有的流媒体内容保持可从任意CDN获得,这样的分区可以被称为“软”分区。也就是说,对跨CDN的内容的分区不是绝对的,从而任意内容项都可以从任意CDN被请求。这样做可以确保即使在针对给定内容项的优选CDN失效的情况下,内容仍保持可用;同时增加在CDN处缓存命中的概率、而不增加成本或者不同CDN的内容缓存器的实际缓存器大小。

Description

对多个内容分发网络上的流媒体文件进行分区
对相关申请的交叉引用
本申请要求于2012年10月17日提交的美国专利申请序列号13/645,301的权益,其全部内容通过引用合并于此。
背景技术
发明的领域
本发明的实施例一般涉及流媒体服务。更具体地,本发明的实施例涉及用于对容宿于多个内容分发网络上的流式媒体文件进行分区的技术。
对相关技术的描述
流媒体服务一般允许用户通过数据通信网络来消费点播媒体内容。服务提供商被配置为存储对用户可用的媒体文件(或者“流”)(提供到媒体文件的访问)。例如,流媒体服务提供商可以使用各种分发网络来容宿流媒体标题的库。每个流可以提供由经记录的视频捕获的舞台或实时事件、长片电影、电视节目、体育事件等等的数字版本。流也可以包括专门为在线分发而创建的媒体内容。
由客户端设备执行的媒体回放通常被称为“流送”是因为分发网络之一被用于将媒体文件的多个部分传输至客户端设备,客户端设备接着解码并且发起回放而不用等待整个流被接收。考虑到通信网络内变化的延迟和带宽,客户端设备上的内容缓冲器将流的进入部分排在队列中实际上正被播放的部分之前。在(导致较低可用带宽的)瞬时网络拥塞期间,较少的数据被添加到缓冲器,由于数据正被移出队列以支持以某比特率进行的回放,数据可能被排空。然而在瞬时高网络带宽期间,缓冲器被重新补充并且额外的缓冲时间被添加,直到缓冲器再次基本被充满为止。
随着高带宽互联网通信的可用性的增长,通过互联网流送编码的视听(AV)节目已变得流行。从技术的立场来看,各种不同的流媒体协议可用于向客户端传输媒体流。尽管这些协议中的许多被设计用于从服务器向诸如典型台式PC或膝上型计算机、或家庭影院PC(HTPC)之类的传统计算系统传输媒体流,流送方式也正用于向(包括例如移动电话、平板计算机和上网本计算设备、控制台和手持视频游戏系统、数字视频记录器(DVR)、DVD播放器、连接的数字电视、以及专用流媒体设备(例如机顶盒)等等的)最终用户客户端设备传输流媒体。
发明内容
本发明的一个实施例包括一种用于向客户端设备提供流媒体标题的计算机实现方法。该方法一般可以包括:从所述客户端设备接收对所述流媒体标题的请求并且生成内容分发网络(CDN)偏好(preference)列表,该内容分发网络(CDN)偏好列表针对多个CDN中的每个包括到流媒体标题的一个或多个链接,并且以将媒体标题流送至客户端设备的偏好的顺序对列表中的CDN进行排名。与CDN中的至少一个相关联的排名至少部分地基于流媒体标题的一个或多个特性,例如基于与所述流媒体标题相关联的标题ID。
其它实施例包括但不限于:包括指令的计算机可读存储介质,这些指令使得处理器单元能够实现所公开的方法的一个或多个方面;以及被配置为实现所公开的方法的一个或多个方面的系统。
附图说明
从而以上面记载的本发明的特征能够被详细地理解的方式,通过参考(其中一些在附图中被示出的)实施例,可以获得对上面简要概括的发明内容的具体描述。然而要指出的是,附图仅示出了本发明的典型实施例,并且由于本发明可以许可其它等效的实施例,因此附图不应被理解为限制其范围。
图1根据本发明的一个实施例示出了被配置为使用多个内容分发网络(CDN)来向客户端设备提供流媒体内容的计算基础设施。
图2根据本发明的一个实施例示出了被配置为容宿流媒体内容的内容分发网络的示例。
图3根据本发明的一个实施例示出了流媒体主机服务器的示例。
图4根据本发明的一个实施例示出了用于观看流媒体内容的客户端设备的示例。
图5根据本发明的一个实施例示出了用于观看流媒体内容的计算系统的示例。
图6根据本发明的一个实施例示出了至少部分基于所请求的媒体内容的、对可用于流媒体内容的多个CDN进行排名的偏好列表。
图7根据本发明的一个实施例示出了流媒体服务提供商响应于客户端的请求来流送媒体内容的方法。
图8根据本发明的一个实施例示出了客户端从多个CDN中选择要从其获取流媒体内容的一个CDN的方法。
图9根据本发明的一个实施例示出了流媒体标题的曲线图,其包括被分配给CDN分区的标题组以及未被分配给CDN分区的标题组。
具体实施方式
为了对媒体内容进行流送(stream),流媒体客户端设备可以从多个内容分发网络(content distribution network,CDN)中选择。例如,在订户已向服务提供商认证账户之后,客户端设备可以请求流送给定的媒体标题。作为响应,服务提供商可以向客户端发送链接的列表,这些链接指向不同CDN,从这些CDN可以获得媒体内容。列表可以被排序,以指示每个CDN的偏好排名(preference ranking)。例如,服务提供商可以具有两个CDN的安排以使得60%的流送流量由一个CDN处理,剩下的40%由另一个处理。在这样的情况下,提供商可以生成这样的偏好排名:该偏好排名对于60%的流送请求给予第一CDN较高的偏好并对于40%的流送请求给予第二CDN较高的偏好。随后客户端基于把偏好排名和客户端对CDN性能的测量进行组合来选择CDN。在可选实施例中,每个CDN被与权重或概率相关联,并且客户端根据这些概率来选出CDN。
注意,在此上下文中CDN一般指在各种位置本地地连接到互联网的计算服务器的分布式网络。即CDN是指以在连接性上与内容服务器的另一集群有实际的或潜在的区别的方式连接到互联网的一个或多个内容服务器的集群,以使得使用来自一个集群或另一集群的服务器可造成流送客户端的不同性能(performance)机会。服务器集群可以由提供流送服务的单一实体操作(产生多个虚拟CDN),或者由多个服务提供商独立操作。此外,这样的服务器集群可以由被称为CDN或CDN提供商的商业实体操作,但不是必须的。
使用不同CDN服务器集群的一个结果是,任何给定的标题位于一个CDN的边缘服务器的本地缓存器中的可能性和其位于另外的CDN的边缘服务器的本地缓存器中的可能性相同。即不同CDN中的边缘服务器将趋向于缓存内容的相同子集。由于当内容在本地缓存器中已经可用时,针对给定客户端的CDN性能较高(并且因此用户体验质量可能也更好),内容存在于CDN边缘服务器的本地缓存器中是有利的。增加缓存命中的概率的一种方法是提供大量的缓存存储设备,但这种方式意味着额外的成本(以提供和操作额外的存储设备)。此外,由于CDN可以由第三方操作,流媒体服务提供商可能没有对由给定CDN所管理的硬件的直接控制权。
本发明的实施例提供了用于增加缓存命中的概率、而不增加成本或者不同CDN的内容缓存器的实际缓存器大小的技术,更具体的,本发明的实施例使用响应于内容请求而被生成的CDN偏好排名来对跨不同CDN的流媒体内容进行分区(partitioning)。例如,流媒体提供商可以确定媒体内容的固定子集,偏好将针对该子集被设定至给定CDN。这样的分区可以被称为“软(soft)”分区,因为情况可能是所有流媒体内容仍可从每个CDN获得。即对跨CDN的内容的分区可以不是绝对的,以使得任意内容项都可以被从任意CDN请求。这样做可以确保即使在针对给定内容项的优选CDN失效(或者只是遭受了一段时间的性能降低、或针对特定用户性能不佳)的情况下,内容仍保持可用。类似地,在偏好排名为每个CDN提供概率的情况下,在每个CDN处存储内容确保客户端可以根据概率来选择CDN。在其它情况下,分区也可以被执行,以使得一些内容项在一些CDN上是不可用的。例如,每个内容项可以在恰好两个CDN上是可用的。
当向订户提供流内容的库时,少量当时流行的标题可能占用由订户参与的流送活动的主要部分。在一个实施例中,指定数目的流行内容项未被分配到CDN分区。即由于跨CDN的多样性对于可扩展性是可贵的,流行的标题没有被分配到具体CDN的“软”分区。这样做允许给定内容项保持可以从作为不同CDN而操作的各个服务器集群(无论是由流媒体服务提供商操作还是以其它方式操作)获得。同时,对分配给特定CDN分区的内容项的请求被优选地从该分区供应。注意,项是否“流行”可以以许多方式来确定,例如基于当前被认定为流行的项的明确规制列表、或者基于相对其它项给定内容项在最近时间段内已被请求的频率的试探测量。
在下文的描述中,列出了众多具体细节以提供对本发明的更透彻的理解。然而对本领域技术人员来说是显而易见的是,在没有这些具体细节中的一个或多个的情况下也可以实践本发明。在其它实例中,为了避免模糊本发明,没有描述已知的特征。
此外,使用在用于通过数据通信网络流送电影、音乐、电视节目等的个人计算机上运行的web浏览器描述了本发明的特定实施例。然而应当理解,本发明可适用于流送使用各种能感知/支持网络的消费电子设备(例如DVD播放器、播放器、基于web的接口、机顶盒、移动电话、游戏平台、便携式音乐播放器、家庭媒体系统等)流送访问的视频服务。据此,包括对由Web浏览器运行的流媒体客户端的引用是示意性而不是限制性的。
图1根据本发明的一个实施例示出了被配置为使用多个内容分发网络(CDN)来向客户端设备130提供流媒体内容的计算基础设施100。如示出的,计算基础设施100包括第一CDN 1501、第二CDN 1502、流媒体主机服务器105、以及客户端设备130,其中的每个都连接到数据通信网络120。
流媒体主机服务器105一般对订阅流媒体服务、使用流媒体服务来搜索可用内容的用户请求进行响应,并且提供用于访问在CDN 1501、CDN1502等中存储的流媒体内容的库中的标题的引用(URL)。在一个实施例中,流媒体主机服务器105可以包括运行数据库的服务器计算系统、以及被配置为对从客户端设备130接收的、对网页和/或流媒体内容的请求做出响应的应用服务器(以及其它软件程序)。
每个CDN 150可以存储一组可从流媒体服务获取的流媒体标题(streaming media title)的副本,其中每个副本以不同比特率来编码给定标题。在一个实施例中,流媒体主机服务器105也可以被配置为管理CDN1501、CDN 1502如何服务于对流媒体内容的请求。例如,除了传递客户端设备130的偏好信息以在CDN 150之间保持所希望的流送流量比例(例如60/40分割),偏好信息可被用于创建CDN 1501和CDN 1502的内容分区。一般每个内容分区可以对应于可从流媒体服务获得的标题的离散集合。进一步地,在一个实施例中,流媒体主机服务器105可以响应于指示(例如向给定地理区域、向给定ISP)流送内容时CDN表现不佳的反馈(或者出于其它理由),来动态地调整针对给定标题的偏好。
在一个实施例中,客户端系统130提供运行web浏览器的计算机系统。据此,客户端系统1301可以是能够运行web浏览器的台式计算机、膝上型计算机、家庭影院PC(HTPC)、平板计算机、游戏控制台或其它计算系统。在这种情况下,web浏览器被配置为获取从所述流媒体主机服务器105获取呈现在显示器140(例如LCD显示器)上呈现的流媒体界面,并且流送和解码在显示器140上回放的媒体内容。
客户端系统130也可以是连接到网络120和显示器140两者的机顶盒设备(例如平板电视)。据此,客户端系统130也代表能够连接到网络120、并接收和回放由媒体服务器105提供的媒体流的数字线缆盒、数字视频记录器(DVR)系统、视频标题控制台和其它流媒体设备、以及DVD播放器。这样的设备可以具有用于管理(132)和流送(131)的内置的软件/固件,或者在某些情况下,软件的某些或所有部分可以被动态地下载——例如,一些碟播放器可以下载并执行BD-Live应用。此外,显示器140本身可以是能够连接到网络120、回放由媒体服务器105供应的媒体流的集成设备。例如,一些平板电视显示器包括用于连接到流媒体服务、视频点播服务、或视频共享网站的集成组件。另一可选方案是,客户端系统130可以是诸如移动电话、平板计算机或上网本之类的移动计算设备,其包括动态地加载到设备的web浏览器的软件以及专用应用(或“app”)中的一者。
无论什么类型的客户端设备130被用于访问流媒体服务,客户端系统130都通过网络120与流媒体主机服务器105进行通信来访问流媒体服务。例如,管理组件132可以允许订户(例如使用用户名和密码来)向流媒体主机服务器105认证自己,并且选择流媒体标题。随后流送组件131可被用于流送并且解码流媒体标题。
在一个实施例中,当用户请求对流媒体标题的访问时,主机服务器105可以向客户端设备130提供CDN的经排名列表(该客户端设备130应当使用该列表中的这些CDN来访问所请求的标题)。该列表可以包括到所请求的标题在CDN 1501和CDN 1502两者上代码的一组链接(例如httpURL)。作为响应,流送组件131在列表中选择CDN 150中的一个用于流送所请求的标题。因此,尽管主机服务器105可以指示对一个CDN 150的偏好超过其它,但客户端设备130可以具有选择CDN 150中的一个的最终决定权。这样做允许客户端设备130在优选CDN的性能跌至可接受的阈值以下时选择非优选的CDN。
图2根据本发明的一个实施例示出了被配置为容宿流媒体内容的CDN150的示例。如示出的,CDN 150包括源服务器205和4个边缘服务器2101-2104。为有效地递送内容,边缘服务器以网络拓扑意义上与不同终端用户群体“接近(close)”的方式部署。当然,CDN 150的实际部署可以包括更多的边缘服务器210,还可包括另外的源服务器205,并且可以以分层方式来构建。
在一个实施例中,源服务器205对应于容宿流媒体库207的一个(或多个)计算系统。流媒体库207中的文件通常对应于可从流媒体服务获得的媒体标题。流媒体库207可以包括每个标题以不同比特率编码的多个副本。媒体库207中的标题被从源服务器205传输到边缘服务器2101-2104中的全部或任意个。响应于来自任意特定客户端设备130的请求,CDN标识最佳边缘服务器(例如2102),最佳边缘服务器随后流送内容到发出请求的客户端设备130。对具体CDN中的边缘服务器的选择通常根据由CDN服务提供商开发的CDN专有技术确定。然而,在附加的实施例中,CDN提供商可以对任意特定的客户端设备公布一些不同的可选边缘服务器210,并且本文讨论的技术可用于允许客户端设备从能最有能力递送所请求的内容的边缘服务器的发现和请求内容。
CDN 150的操作者可以将源服务器205保持在一个位置并且将边缘服务器210保持在不同的地理位置。例如,CDN 150可以操作在一个中央位置处的源服务器205,并且操作临近不同人口中心的边缘服务器210。当用户从媒体库207请求标题时,内容被从源服务器205流送到边缘服务器210。一旦被传输,该媒体标题就可以由边缘服务器210存储在内容缓存器215中。因此,如果做出针对相同媒体标题的另一请求,该媒体标题可以从内容缓存器215被传输,而无需再次从源服务器205获取它。通过增加发生的缓存命中的数目,边缘服务器210将减少需要从源服务器205拉取的数据量,提高了CDN 150的效率和用户的体验质量。
除了地理位置之外,边缘服务器210还可用于向某些订户组提供更多的带宽。例如,被操作用来流送内容到大订户人口中心的边缘服务器210的数量,可以大于出现在较小订户人口中心附近的边缘服务器210的数量。
随着新的标题被存储在缓存器2151-2154中,其它标题可能被驱逐。在一个实施例中,标题可以基于最近最少被使用而被从内容缓存器2151-2154驱逐。每个缓存器2151-2154中的内容可以彼此独立地被确定。然而,流行标题更可能被访问每个边缘服务器2101-2104的客户端所请求,内容缓存器2151-2154一般可以彼此镜像。同时,相较临近另一边缘服务器的用户,来自媒体库207的一些标题可能更受临近某一边缘服务器的用户欢迎(即一些内容可能在某些区域流行)。
缓存器2151的内容一般受用户请求什么标题驱动。然而如上面所指出的,尽管源服务器205可以存储能从流媒体服务获得的完整媒体库207,流媒体服务可以间接地创建跨两个不同的CDN 150的相对比较不同的内容缓存器215。例如,通过以标题分区CDN偏好并且基于定义的分区来向做出请求的客户端设备发送偏好数据;随着时间的推移,不同CDN 150的边缘服务器210可以存储很大程度上不重叠(non-overlapping)的媒体标题集。同时,用于流送“流行”内容(无论如何测量)的CDN偏好可以免于分区。
图3根据本发明的一个实施例示出了流媒体主机服务器105的示例。如示出的,主机服务器105包括但不限于:中央处理单元(CPU)305、网络接口315、互连320、存储器325和存储设备330。主机服务器105还可以包括将主机服务器105连接到I/O设备312的I/O设备接口310。注意,图3所示的主机服务器105的组件被简化,以促进说明对多个内容分发网络上的流媒体文件的分区。当然本领域的普通技术人员将会认识到,在实践中的服务器系统和数据中心可以包括各种额外的组件,包括例如服务器虚拟化、包括SSD存储系统的分层存储、监视和监管接口等。
CPU 305取回并执行存储在存储器325中的编程指令。同样,CPU305存储并取回驻留在存储器325中的应用数据。互连320存进例如可编程指令和应用数据在CPU 305、I/O设备接口310、存储设备330、网络接口315和存储器325之间的传输。CPU 305被包括以代表单一CPU、多个CPU、具有多个处理核的单一CPU,等等。并且存储器325通常被包括以代表随机存取存储器。存储设备330可以是磁盘驱动器存储设备。尽管被示出为单一单元,存储设备330可以是通过网络进行访问的固定和/或可移动存储设备的组合,例如,固定盘驱动器、可移动存储卡、固态(SSD)存储设备、或光存储设备、网络附接存储设备(NAS)、通过网络访问的存储区域网(SAN)。
示意性地,存储器325包括认证组件321、偏好生成组件323和许可组件327。并且存储设备330包括分区规则332、内容库数据334和CDN分发比例336。在一个实施例中,认证组件321被配置为认证针对访问由流媒体服务提供的内容的用户请求。一旦媒体标题的用户(和/或个人请求)被认证,许可组件327就可以生成被呈送给CDN的许可令牌。令牌授权CDN将流媒体标题流送至给定客户端设备。
除了给予客户端设备的任意许可证授权或令牌之外,偏好生成组件323还可以被配置为响应于对流送媒体标题的请求来确定要发送至客户端的CDN排名列表。排名列表可以包括到两个(或更多)CDN中的所请求的媒体标题的链接。作为响应,客户端设备可以从选定的一个或多个CDN流送所请求的标题。典型地,客户端设备选择排名最高的CDN,除非在流送内容时该CDN由客户端设备测量和/或预测为次优地执行(例如,因为网络拥塞或者排名最高的CDN上的当前流送负载过高)。
在一个实施例中,排名列表可以根据分区规则322被生成。例如,每个流媒体标题可被与(在内容库数据334中指定的)不同数字标识符相关联。在这样的情况下,具有偶数值标识符的标题可造成倾向于第一CDN的偏好排名,而具有奇数值标识符的标题可导致倾向于第二CDN的偏好排名。这样做会导致第一CDN和第二CDN的边缘服务器中的内容缓存器存储相对不同的媒体标题集。
当然,也可以使用除了简单的50/50分布之外的各种其它方式。例如在一个实施中,CDN分布比例336指定多少百分比的流量应当由第一CDN和第二CDN(以及第三CDN等等)处理。因此,在非均等分割的情况下(例如60/40或其它分割的情况下),分区规则332可以被配置以在发送到客户端的偏好中优选地将一个CDN排名为优于另一个。
此外,在一个实施例中,某些标题可以免于分区处理。即不是媒体库中的所有标题都需要被包括在由分区规则332定义的“软”分区中。例如,偏好生成组件323可以通过随机或加权随机过程选择CDN以将其指定为发送至客户端针对“流行”标题的偏好列表中的优选CDN。这样做可以确保“流行”标题由每个可用CDN均等地或根据CDN分配比例336来提供服务。
进一步地,偏好生成组件323可以被配置为通过从流客户端收集CDN性能的实时信息、并使用该信息来调整提供给客户端设备的偏好指令来调整给定CDN的排名。例如,客户端选择“非优选的”CDN、或流送期间的故障转移的实例可以被计数并且以地理、ISP或其它为基础累加。故障CDN性能的证据随后可用于调整提供至那些相同的地理区域或ISP中的客户端的CND偏好。这样做可以改善流客户端的性能,这是因为它可以使得优选的CND在第一次尝试时更可能表现良好的性能。此外,将流量从性能不佳的CDN引导走可以缓解那些性能问题(例如将流量从过度订阅的CDN引导走可以改善该CDN的性能)。类似地,“排名”可以提供用于确定相较另外的CDN更倾向于某一CDN的概率或权重。在这种情况下,客户端根据这些概率选择CDN。
图4根据本发明的一个实施例示出了用于观看流媒体内容的客户端设备130的示例。在此示例中,流媒体客户端设备连接到显示器幕(例如平板电视)和网络两者。据此,如所示出的,客户端设备130被连接到网络120和显示器140两者。注意,客户端设备130被包括以代表连接到电视显示器的线缆机顶盒、数字视频记录器(DVR)、或具有集成流送功能的电视机、以及专用流送设备(例如设备)。无论被如何配置,客户端设备130都可以能够流送来自各种不同的服务提供商的媒体内容。
如示出的,客户端设备130包括固件/处理器405、存储器410和存储设备435。固件405代表用于控制客户端设备130的操作逻辑。例如,固件405可以被配置为允许用户调度记录、连接到流媒体服务、选择要回放的内容、等等。
示意性地,存储器410包括流媒体组件131和管理组件132、以及CDN偏好列表420。在此示例中,流媒体组件131在客户端设备130上提供用于访问给定流媒体服务的软件。如示出的,流媒体组件131包括内容浏览界面416、媒体解码器417、和CDN选择组件418。内容浏览界面416允许用户与流媒体服务交互,例如搜索标题并选择要回放的标题。依次地,媒体解码器417通常被配置为解码通过网络120流送的数据并且向用户显示视频和音频。一旦用户选择了标题,流媒体客户端410就可以被配置为从流媒体主机服务器请求该标题。例如,流媒体客户端410可以完成与流媒体主机服务器的认证交换和/或许可、以及从主机服务器接收CDN偏好列表420。如所指出的,CDN偏好列表420可以提供到所请求的标题的多种编码的链接的按CDN偏好排名的列表。CDN偏好列表420还可以包括由流媒体组件131用于评估不同的CDN的相对性能的权重。
一旦CDN偏好列表已被接收,CDN选择组件418就可以评估每个CDN的联网性能、并选择要从其流送所请求的媒体标题的一个(或多个)CDN。例如,CDN选择组件418可以被配置为选择偏好列表上的第一CDN,只要该CDN的性能测量结果超过最小阈值。若非如此,并且如果第二(或第三等)CDN具有更好的性能,则CDN选择组件418选择性能更好的CDN。然而在一个实施例中,在第二CDN被选择之前,可能需要该第二CDN的测量性能超过另一阈值。即如果第一CDN不超过最小阈值,则在客户端选择非优选的CDN之前,第二CDN的相对性能可能需要改进足够的量值。这避免了非优选的CDN在仅能提供略微改进的性能的情况下被选择。这样做可以帮助服务提供商保持在CDN之间的优选分配(例如60/40)。正常运行中CDN之间的CDN性能通常不是显著不同的,因此CDN选择组件418通常选择具有最高偏好排名的CDN。然而,当CDN边缘服务器和客户端设备之间的任何地方存在拥塞或过载时,CDN性能可能显著不同,而高的消费者值由路由至非主CDN实现。
除选择初始CDN之外,当选定的媒体标题被呈现给观看者时,流媒体组件131可以监视客户端415所体验的、来自所选CDN的实际流送性能。如果所选CDN的性能下降,则流媒体客户端可以选择重试其它CDN,和/或开始从不同的CDN流送所选的标题。
在可选实施例中,流媒体组件131可以被配置为从不止一个CDN请求数据,例如一次请求从完整列表中选择的一些不同CND(活动CDN)中的每个的基本非重叠块中的数据。这向媒体客户端提供了用以连续监视每一活动CDN的性能的手段。在本实施例中,CDN的选择不是全有或全无选择。替代地,客户端可以选择请求,例如,从主CDN请求90%的块(chunk),并且分别从两个性能次优的CND各请求5%。在主CDN正执行得比第二选择显著糟糕的情况下,加权可以移动。此外,客户端可以选择从活动列表丢弃初始主CDN并从完整列表中引入新的替代者,从而开始建立用于可能的未来使用的新的性能基线。使用适当的超时,以使得如果块没有被及时地从其所请求的CND递送,则该块被再次从不同的CDN请求以避免对用户的呈现的中断。
图5根据本发明的一个实施例示出了用于观看流媒体内容的客户端设备130的示例。如示出的,客户端计算系统500包括但不限于:中央处理单元(CPU)505、网络接口515、总线520、存储器525和存储设备530。计算系统500还包括将I/O设备和显示器512连接到计算系统500的I/O设备和显示器接口510(例如键盘、鼠标或遥控器、以及诸如LCD面板之类的显示器)。
如同图2的CPU 205,CPU 505被包括以代表单一CPU、多个CPU、具有多个处理核的单个CPU等等,并且存储器525被包括以代表随机存取存储器。总线520连接CPU 505、I/O设备接口510、存储设备530、网络接口515和存储器525。网络接口515被配置为经由通信网络120传输数据,例如以与主机服务器105通信以及流送来自CDN 150的媒体内容。诸如硬盘驱动器或固态(SSD)存储驱动器之类的存储设备530可以存储音频视频数据文件以及其它内容。
示意性地,存储器525包括(本身包括流媒体客户端521的)web浏览器532,以及存储已缓冲的媒体内容535的存储设备530。浏览器532提供了允许用户访问服务器所容宿的web页面和其它内容的软件应用。在本公开内容的上下文中,流媒体客户端521通常对应于从流媒体服务取回的软件组件,从而回放来自该流媒体服务的媒体内容。在被流媒体客户端521解码和回之前,从流媒体服务下载的内容可以被存储在存储设备530中作为已缓冲的媒体内容535。
流媒体客户端521还可以被配置为提供上文关于图3示出的客户端设备130的流媒体客户端描述的功能。据此,流媒体客户端521可以被配置为从偏好列表523选择CDN用于流送所请求的流媒体内容。或者可选地,偏好列表可以提供“权重”或概率并且客户端根据这些概率选择CDN。
图6根据本发明的一个实施例示出了至少部分基于所请求的媒体内容的、对可用于流媒体内容的多个CDN进行排名的偏好列表600。如示出的,列表600包括针对三种流送比特率605的、到第一CDN和第二CDN(标示为CDN1和CDN2)处可用的流媒体标题的三种编码的链接。例如,500kbps的最慢可用编码导向第一链路610“CDN1-URL”、相关联的排名615“R1”和权重620“W1”。偏好列表600还包括针对500kbps的编码的第二链路625“CDN2-URL”以及相关联的排名630“R2”和权重635“W2”。偏好列表600还包括针对所请求的流媒体标题的1500kbps的比特率编码和4800kbps的比特率编码两者的CDN1和CDN2的URL链接。
在一个实施例中,流媒体客户端可以通过评估偏好列表600来选择要从其流送媒体文件的CDN。例如,流媒体客户端可以采样可用带宽以确定在不导致缓冲器运行的情况下能够期待客户端支持的最大比特率。一旦客户端确定流送媒体内容的比特率,客户端随后就可以选择要从其(以选定的比特率来)流送该内容的CDN。例如,客户端可以采样第一CDN和第二CDN的网络性能,并且如果优选的CDN的延迟(或网络性能的其它度量)在指定阈值之内,指示该优选的CDN的网络性能应向客户端提供优良质量的体验,则选择该优选的CDN。
否则,如果优选的CDN网络性能度量超过了指定阈值,指示该优选的CDN的网络性能将不能向客户端提供优良质量的体验,则可以判定是否从被排名第二(或第三,等等)的CDN流送媒体内容。在一个实施例中,分配至偏好列表中的第二CDN的权重(例如权重“W2”635)可以指定在非优选的CDN被选择之前多大程度的性能改进是必要的。例如,在被选择为优于排名最高的CND之前,第二CDN可以需要提供(例如在预期延迟上)至少20%的改进。通过设置性能的预期改进的最小量,客户端设备不会为小的或略微的性能改进而切换到非优选的CDN。这样做有助于执行“软”分区,这是因为选定标题未被拉入第二CDN的边缘服务器的内容缓存器中。此外,这样做有利于维护到不同CDN的流量的整体分布。相反地,当性能差足够高时,第二CDN能够用于确保流媒体服务的订户的高质量的体验。
图7根据本发明的一个实施例示出了流媒体服务提供商响应于客户端的请求来流送媒体内容的方法700。如示出的,方法700开始于步骤705,其中流媒体主机接收对流媒体标题的请求。如上文讨论的,这样的请求可以由与web浏览器上的流媒体界面或由专用客户端装置生成的界面进行交互的客户端生成。一旦接收到,流媒体主机就可以确定与所请求的媒体内容相关联的标识符。例如,每个标题可以与不同的数值相关联。一旦确定,流媒体主机就可以至少部分地基于对应于所请求的内容的ID来生成CDN偏好列表。CDN的偏好列表随后被传输至客户端,客户端可以至少部分地基于指示在CDN偏好列表中的排名偏好来选择要从其流送所请求的媒体内容的CDN。如指出的,除了标题ID之外,流媒体主机还可以指定CDN偏好以维持流量在第一和第二(以及第三,等等)CDN之间的某一比率。
图8根据本发明的一个实施例示出了流媒体客户端设备从多个CDN中选择要从其获取流媒体内容的一个CDN的方法800。如示出的,方法800开始于步骤805,其中客户端设备向流媒体主机服务器发送对流媒体内容的请求。在任意需要的客户端认证之后,客户端接收到两个(或更多)CDN处的所请求的内容的链接列表。在步骤810,客户端从偏好列表标识排名最高的CDN。在步骤815,客户端(例如基于可用带宽和网络延迟、或其它因素来)确定偏好列表中最高排名CDN的预期流送性能。如果预期流送性能超过最小质量阈值,则在步骤825,客户端(例如使用在CDN偏好列表中指定的所请求媒体标题的URL来)从最高排名的CDN流送内容。
否则,如果最高排名的CDN的流送性能未超过最低要求,则在步骤830,流媒体客户端设备评估(一个或多个)第二CDN的预期联网性能。在步骤835,如果相较在CDN偏好列表中指定的权重确定第二CDN的预期流送性能将提供最小的改进,则在步骤840,客户端设备(例如使用在CDN偏好列表中指定的所请求媒体标题的URL来)再次从第二CDN流送所请求的内容。否则,如果切换到第二CDN未提供到预期流送性能的改进(或改进仅是略微的),则客户端从最高排名的CDN流送内容。
在一个实施例中,流媒体主机服务器可以被配置为创建跨不同CDN的某些标题的“软”分区。例如,图9根据本发明的一个实施例示出了流媒体标题的曲线图900,其包括被分配给CDN分区的标题组以及未分配给CDN分区的标题组。如示出的,曲线图900按从最高到最低的排序绘制了可从流媒体服务获得的标题的流行度。从图900中可以看出,可用标题的流行度从最流行的标题迅速降低,直到稳定并对于大部分可从流媒体服务获得的标题保持相对恒定。更一般地,可从流媒体服务获得的“流行”标题的数量可以占标题的整体总数的小百分比。在一个实施例中,流媒体服务提供商可以生成不对流行标题进行分区的CDN偏好列表,在图9中以未分区的标题905表示。这样做允许少量被频繁请求的流媒体标题由多个CDN提供服务。而同时,剩余的标题(在图9中以已分区的标题910表示)被跨多个CDN分区。如上所述,这样做间接地不同边缘服务器处创建了内容缓存器,这些边缘服务器跨两个不同CDN 150是相对比较不同的。
在可选实施例中,偏好列表中引用三个(或更多)CDN。在这样的情况下,最流行的内容仍可以在每个CDN处被复制,允许最大的灵活性和负载分配。第二流行部分的内容被在除一个CDN外的所有CDN处复制,每个具体标题都由从M个主机中独立地选择出的N个主机容宿。流行度递减的内容的额外部分或层级以较少的复制被容宿,然而即使最不流行的内容也被容宿在至少一个CDN上。作为具体示例,排名为1-10的标题被容宿在称作A、B、C和D的四个CDN处。排名为11-25的标题在四个CDN中的三个处,其中标题11被容宿在A、B、C处,标题12被容宿在A、B、D处,标题13被容宿在A、C、D处,以此类推。排名为26-50的标题被容宿在两个CDN处,并且排名为50-100的标题仅被容宿在一个CDN处。
总之,公开了用于响应于从客户端设备接收的、对流媒体内容的请求来生成偏好排名的技术。偏好排名被用于间接地对跨不同内容分发网络(CDN)的流媒体内容分区。由于所有的流媒体内容都可以被从任意CDN请求,这样的分区可以被称为“软”分区。也就是说,跨CDN的内容的分区不是绝对的,而是任意内容项都可从任意CDN被请求。这样做可以确保即使在针对给定内容项的优选CDN失效(或者单纯地遭受了性能降低的时间段)的情况下内容仍保持可用;同时增加在CDN处缓存命中的概率、而不增加成本或者不同CDN的内容缓存器的实际缓存器大小。
虽然上述内容针对本发明的实施例,但是在不脱离本发明的基本范围的情况下,可以设计本发明的其它和进一步的实施例。例如,本发明的各方面可以在硬件、软件、或硬件和软件的组合中实现。本发明的一个实施例可以被实现为随计算机系统使用的程序产品。程序产品中的(一个或多个)程序限定了(包括本文描述的方法的)实施例的功能并且能够被包含于各种计算机可读的存储介质中。示意性的计算机可读存储介质包括但不限于:(i)其上的信息被永久存储的不可写存储介质(例如计算机内的只读存储器设备(如由CD-ROM驱动器读取的CD-ROM盘)、闪速存储器、ROM芯片或任何类型的固态非易失性半导体存储器);以及(ii)其上存储有可变信息的可写存储介质(例如磁盘驱动器或硬盘驱动器内的软盘、或任何类型的固态随机访问半导体存储器)。当携带引导本发明的功能的计算机可读指令时,这样的计算机可读存储介质是本发明的实施例。
鉴于上述内容,本发明的范围是由所附权利要求确定的。

Claims (27)

1.一种用于向客户端设备提供流媒体标题的计算机实现方法,所述方法包括:
从所述客户端设备接收对所述流媒体标题的请求;以及
生成偏好列表,所述偏好列表针对至少一个内容分发网络(CDN)包括到所述流媒体标题的一个或多个链接,并且按将所述媒体标题流送至所述客户端设备的偏好的顺序对所述列表中的链接进行排名,其中与所述链接中的至少一个链接相关联的排名至少部分地基于所述流媒体标题的一个或多个特性。
2.如权利要求1所述的方法,其中,所述流媒体标题与流媒体标题库相关联,并且每个流媒体标题被分配至被包括在多个分区中的分区,每个分区对应于多个CDN中的不同CDN,并且其中,针对所述流媒体标题生成的所述偏好列表中的链接向下述链接分配最高偏好:该链接与被包括在所述多个CDN中的与所述流媒体标题所对应的分区相对应的第一CDN相关联。
3.如权利要求2所述的方法,其中,所述客户端设备被配置为:
评估与所述第一CDN相关联的预期流送性能;以及
一旦确定所述预期流送性能超过指定阈值,就经由被包括在所述偏好列表中的链接中的一个链接来从所述第一CDN检索所述流媒体标题。
4.如权利要求2所述的方法,其中,所述客户端设备被配置为:
评估与所述第一CDN相关联的预期流送性能;以及
一旦确定所述预期流送性能未超过指定阈值,就评估与所述多个CND中被在所述偏好列表中标识的至少第二CDN相关联的预期流送性能。
5.如权利要求4所述的方法,其中,所述客户端设备还被配置为:
一旦确定与所述第二CDN相关联的预期流送性能未超过第二指定阈值,就经由被包括在所述偏好列表中的所述链接中的一个链接来从所述第一CDN检索所请求的媒体标题。
6.如权利要求4所述的方法,其中,所述客户端设备还被配置为:
一旦确定与所述第二CDN相关联的预期流送性能超过第二指定阈值,就经由被包括在所述偏好列表中的所述一个或多个链接中的一个链接来从所述第二CDN检索所请求的媒体标题。
7.如权利要求2所述的方法,其中,所述多个分区包括对应于被包括在所述多个CDN中的第一CDN的第一分区,对应于被包括在所述多个CDN中的第二CDN的第二分区,以及第三分区,并且所述方法还包括:
一旦确定所述流媒体标题被分配至所述第一分区,就将所述偏好列表中的所述第一CDN排名为具有流送所述流媒体标题的最高偏好;
一旦确定所述流媒体标题被分配至所述第二分区,就将所述偏好列表中的所述第二CDN排名为具有流送所述流媒体标题的最高偏好;以及
一旦确定所请求的标题被分配至所述第三分区,就基于CDN分配比例来将所述第一CDN或所述第二CDN中的一者排名为具有流送所述流媒体标题的最高偏好。
8.如权利要求7所述的方法,其中,所述第三分区对应于指定数目个与所述流媒体标题库相关联的、最频繁地被请求的流媒体标题。
9.如权利要求1所述的方法,其中,所述一个或多个链接中的每个与概率值相关联,并且所述客户端设备根据所述概率值选择所述链接中要从其流送所述媒体标题的至少一部分的一个链接。
10.一种存储有指令的计算机可读存储介质,当由处理器单元执行时所述指令使得所述处理器单元执行用于向客户端设备提供流媒体标题的操作,所述操作包括:
从所述客户端设备接收对所述流媒体标题的请求;以及
生成偏好列表,所述偏好列表针对至少一个内容分发网络(CDN)包括到所述流媒体标题的一个或多个链接,并且按将所述媒体标题流送至所述客户端设备的偏好的顺序对所述列表中的链接进行排名,其中与所述链接中的至少一个链接相关联的排名至少部分地基于所述流媒体标题的一个或多个特性。
11.如权利要求10所述的计算机可读存储介质,其中,所述流媒体标题与流媒体标题库相关联,并且每个流媒体标题被分配至被包括在多个分区中的分区,每个分区对应于多个CDN中的不同CDN,并且其中,针对所述流媒体标题生成的所述偏好列表中的链接向下述链接分配最高偏好:该链接与被包括在所述多个CDN中的与所述流媒体标题所对应的分区相对应的第一CDN相关联。
12.如权利要求11所述的计算机可读存储介质,其中,所述客户端设备被配置为:
评估所述第一CDN的预期流送性能;
一旦确定所述预期流送性能超过指定阈值,就经由被包括在所述偏好列表中的所述链接中的一个链接来从所述第一CDN检索所述流媒体标题;以及
一旦确定所述预期流送性能未超过所述指定阈值,就评估与所述多个CDN中的至少第二CDN相关联的预期流送性能。
13.如权利要求12所述的计算机可读存储介质,其中,所述客户端设备还被配置为:
一旦确定与所述第二CDN相关联的预期流送性能未超过第二指定阈值,就经由被包括在所述偏好列表中的所述链接中的一个链接来从所述第一CDN检索所请求的媒体标题;
一旦确定与所述第二CDN相关联的预期流送性能超过所述第二指定阈值,就经由所述偏好列表中的所述链接中的一个链接来从所述第二CDN检索所请求的媒体标题。
14.如权利要求11所述的计算机可读存储介质,其中,所述多个分区包括对应于第一CDN的流媒体标题第一分区,对应于第二CDN的流媒体标题第二分区,以及流媒体标题第三分区,并且其中所述操作还包括:
一旦确定所述流媒体标题被分配至所述第一分区,就将所述偏好列表中的所述第一CDN排名为具有流送所述流媒体标题的最高偏好;
一旦确定所述流媒体标题被分配至所述第二分区,就将所述偏好列表中的所述第二CDN排名为具有流送所述流媒体标题的最高偏好;以及
一旦确定所请求的标题被分配至所述第三分区,就基于CDN分配比例来将所述第一CDN或所述第二CDN中的一者排名为具有流送所述流媒体标题的最高偏好。
15.如权利要求14所述的计算机可读存储介质,其中,所述第三分区对应于指定数目个与所述流媒体标题库相关联的、最频繁地被请求的流媒体标题。
16.如权利要求10所述的计算机可读存储介质,其中,所述一个或多个链接中的每个与概率值相关联,并且所述客户端设备根据所述概率值选择所述链接中要从其流送媒体标题的至少一部分的一个链接。
17.一种系统,包括
处理器;
存储器,所述存储器包括被配置为执行用于向客户端设备提供流媒体标题的操作的应用,所述操作包括:
从所述客户端设备接收对所述流媒体标题的请求;以及
生成偏好列表,所述偏好列表针对至少一个内容分发网络(CDN)包括到所述流媒体标题的一个或多个链接,并且按将所述媒体标题流送至所述客户端设备的偏好的顺序对所述列表中的链接进行排名,其中与所述链接中的至少一个链接相关联的排名至少部分地基于所述流媒体标题的一个或多个特性。
18.如权利要求17所述的系统,其中,所述流媒体标题与流媒体标题库相关联,并且每个流媒体标题被分配至被包括在多个分区中的分区,每个分区对应于多个CDN中的不同CDN,并且其中,针对所述流媒体标题生成的所述偏好列表中的链接向下述链接分配最高偏好:该链接与被包括在所述多个CDN中与所述流媒体标题所对应的分区相对应的第一CDN相关联。
19.如权利要求18所述的系统,其中,所述客户端设备被配置为:
评估所述第一CDN的预期流送性能;以及
一旦确定所述预期流送性能超过指定阈值,就经由被包括在所述偏好列表中的链接中的一个链接来从所述第一CDN检索所述流媒体标题;以及
一旦确定所述预期流送性能未超过所述指定阈值,就评估与所述多个CND中被在所述偏好列表中标识的至少第二CDN相关联的预期流送性能。
20.如权利要求19所述的系统,其中,所述客户端设备还被配置为:
一旦确定与所述第二CDN相关联的预期流送性能未超过第二指定阈值,就经由被包括在所述偏好列表中的所述链接中的一个链接来从所述第一CDN检索所请求的媒体标题;
一旦确定与所述第二CDN相关联的预期流送性能超过所述第二指定阈值,就经由所述偏好列表中的所述链接中的一个链接来从所述第二CDN检索所请求的媒体标题。
21.如权利要求18所述的系统,其中,所述多个分区包括对应于所述第一CDN的流媒体标题第一分区,对应于第二CDN的流媒体标题第二分区,以及流媒体标题第三分区,并且其中所述操作还包括:
一旦确定所述流媒体标题被分配至所述第一分区,就将所述偏好列表中的所述第一CDN排名为具有流送所述流媒体标题的最高偏好;
一旦确定所述流媒体标题被分配至所述第二分区,就将所述偏好列表中的所述第二CDN排名为具有流送所述流媒体标题的最高偏好;以及
一旦确定所请求的标题被分配至所述第三分区,就基于CDN分配比例来将所述第一CDN或所述第二CDN中的一者排名为具有流送所述流媒体标题的最高偏好。
22.如权利要求21所述的系统,其中,所述第三分区对应于指定数目个与所述流媒体标题库相关联的、最频繁地被请求的流媒体标题。
23.一种由客户端设备用来流送与流媒体标题库相关联的媒体标题的计算机实现方法,所述方法包括:
向流媒体主机服务器发送对所述流媒体标题的请求;以及
从所述流媒体主机服务器接收内容分发网络(CDN)偏好列表;所述CDN偏好列表针对多个CDN中的每个CDN包括到所述流媒体标题的一个或多个链接,并且按将所述媒体标题流送至所述客户端设备的偏好的顺序对所述列表中的CDN进行排名,其中与所述CDN中的至少一个CDN相关联的排名至少部分地基于所述流媒体标题的一个或多个特性。
24.如权利要求23所述的方法,其中,所述流媒体标题与流媒体标题库相关联,并且每个流媒体标题被分配至被包括在多个分区中的分区,每个分区对应于所述多个CDN中的不同CDN,并且其中,从所述流媒体标题生成的所述CDN偏好列表向被包括在所述多个CDN中的第一CDN分配最高偏好,所述第一CDN对应于与所述流媒体标题相对应的分区。
25.如权利要求24所述的方法,还包括:
评估与所述第一CDN相关联的预期流送性能;
一旦确定所述第一CDN的所述预期流送性能超过指定阈值,就经由被包括在所述CDN偏好列表中的所述链接中的一个链接来从所述第一CDN检索所请求的流媒体标题;以及
一旦确定所述第一CDN的所述预期流送性能未超过所述指定阈值,就评估被包括在所述偏好列表中的至少第二CDN的预期流送性能。
26.如权利要求25所述的方法,还包括:
一旦确定所述第二CDN的预期流送性能未超过第二指定阈值,就经由被包括在所述CDN偏好列表中的所述链接中的一个链接来从所述第一CDN流送所请求的媒体标题;
一旦确定所述第二CDN的预期流送性能超过所述第二指定阈值,就经由被包括在所述CDN偏好列表中的所述链接中的一个链接来从所述第二CDN流送所请求的媒体标题。
27.如权利要求23所述的方法,其中,对所述偏好列表中的每个CDN的排名提供了概率值,并且其中所述客户端设备根据所述概率值来选择CDN。
CN201380054168.4A 2012-10-17 2013-10-14 对多个内容分发网络上的流媒体文件进行分区 Active CN104737149B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/654,301 US9699519B2 (en) 2012-10-17 2012-10-17 Partitioning streaming media files on multiple content distribution networks
US13/654,301 2012-10-17
PCT/US2013/064878 WO2014062581A2 (en) 2012-10-17 2013-10-14 Partitioning streaming media files on multiple content distribution networks

Publications (2)

Publication Number Publication Date
CN104737149A true CN104737149A (zh) 2015-06-24
CN104737149B CN104737149B (zh) 2018-08-31

Family

ID=

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905734A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 直播分流的方法及装置、直播系统、存储介质及电子设备
CN110268694A (zh) * 2017-02-17 2019-09-20 帝威视有限公司 在自适应位速率流传输期间在多个内容递送网络之间进行自适应切换的系统和方法
CN110313183A (zh) * 2017-02-23 2019-10-08 奈飞公司 用于对视频内容进行编码的迭代技术
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US11444999B2 (en) 2017-02-23 2022-09-13 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
US11910039B2 (en) 2017-07-18 2024-02-20 Netflix, Inc. Encoding technique for optimizing distortion and bitrate

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1981504A (zh) * 2004-05-04 2007-06-13 高通股份有限公司 用于对媒体服务及节目包进行排序的方法和装置
US7260598B1 (en) * 2002-05-03 2007-08-21 Cisco Technology, Inc. Methods and apparatus for processing client requests in a content distribution network using client lists
US20100251313A1 (en) * 2009-03-31 2010-09-30 Comcast Cable Communications, Llc Bi-directional transfer of media content assets in a content delivery network
US20110016225A1 (en) * 2009-07-16 2011-01-20 Anthony Neal Park Digital content distribution system and method
US20110197227A1 (en) * 2010-02-11 2011-08-11 Alan Rouse Systems and methods for providing roaming video wanted list and roaming video preferences

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260598B1 (en) * 2002-05-03 2007-08-21 Cisco Technology, Inc. Methods and apparatus for processing client requests in a content distribution network using client lists
CN1981504A (zh) * 2004-05-04 2007-06-13 高通股份有限公司 用于对媒体服务及节目包进行排序的方法和装置
US20100251313A1 (en) * 2009-03-31 2010-09-30 Comcast Cable Communications, Llc Bi-directional transfer of media content assets in a content delivery network
US20110016225A1 (en) * 2009-07-16 2011-01-20 Anthony Neal Park Digital content distribution system and method
US20110197227A1 (en) * 2010-02-11 2011-08-11 Alan Rouse Systems and methods for providing roaming video wanted list and roaming video preferences

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110268694B (zh) * 2017-02-17 2023-04-07 帝威视有限公司 在自适应位速率流传输期间在多个内容递送网络之间进行自适应切换的系统和方法
CN110268694A (zh) * 2017-02-17 2019-09-20 帝威视有限公司 在自适应位速率流传输期间在多个内容递送网络之间进行自适应切换的系统和方法
US11184621B2 (en) 2017-02-23 2021-11-23 Netflix, Inc. Techniques for selecting resolutions for encoding different shot sequences
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
CN110313183B (zh) * 2017-02-23 2021-11-12 奈飞公司 用于对视频内容进行编码的迭代技术
US11444999B2 (en) 2017-02-23 2022-09-13 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
CN110313183A (zh) * 2017-02-23 2019-10-08 奈飞公司 用于对视频内容进行编码的迭代技术
US11758146B2 (en) 2017-02-23 2023-09-12 Netflix, Inc. Techniques for positioning key frames within encoded video sequences
US11818375B2 (en) 2017-02-23 2023-11-14 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US11870945B2 (en) 2017-02-23 2024-01-09 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US11871002B2 (en) 2017-02-23 2024-01-09 Netflix, Inc. Iterative techniques for encoding video content
US11910039B2 (en) 2017-07-18 2024-02-20 Netflix, Inc. Encoding technique for optimizing distortion and bitrate
CN109905734A (zh) * 2017-12-08 2019-06-18 北京京东尚科信息技术有限公司 直播分流的方法及装置、直播系统、存储介质及电子设备

Also Published As

Publication number Publication date
US9699519B2 (en) 2017-07-04
EP2909732B1 (en) 2019-04-03
TR201908076T4 (tr) 2019-06-21
US20140108671A1 (en) 2014-04-17
AU2013331512B2 (en) 2018-08-30
WO2014062581A2 (en) 2014-04-24
WO2014062581A3 (en) 2014-06-19
AU2018264034A1 (en) 2018-12-06
DK2909732T3 (da) 2019-06-24
EP2909732A4 (en) 2016-06-22
AU2013331512A1 (en) 2015-04-30
EP2909732A2 (en) 2015-08-26

Similar Documents

Publication Publication Date Title
US9699519B2 (en) Partitioning streaming media files on multiple content distribution networks
US8230100B2 (en) Variable fidelity media provision system and method
JP7275033B2 (ja) 適応ビットレートストリーミングの間の複数のコンテンツ配信ネットワーク間の適応切替のためのシステムおよび方法
US10387626B2 (en) Rights and capability-inclusive content selection and delivery
KR102162382B1 (ko) 피어-투-피어 성능의 개선 기법
US20150278884A1 (en) Streaming Playback and Dynamic Ad Insertion
EP2252057B1 (en) Method and system for storing and distributing electronic content
US9350804B2 (en) Peer-to-peer communication to increase download throughput
EP1722536A1 (en) Load distribution method in which delivery server is selected based on the maximum number of simultaneous sessions set for each content
CN1905670A (zh) 基于网格技术的视频点播直播的实现方法和设备
CN104737149B (zh) 对多个内容分发网络上的流媒体文件进行分区
CN105593837B (zh) 用于在内容递送网络中递送内容的系统和方法
KR101858247B1 (ko) 통합 아이디를 이용한 콘텐츠 제공 시스템 및 방법
Wang et al. On the Feasibility of DASH Streaming in the Cloud
JP5200735B2 (ja) コンテンツ配信システム及びコンテンツ配信方法
US11722707B2 (en) Dynamic content steering based on server and client device capabilities
US11729256B2 (en) Predetermining network route for content steering
WO2024081025A1 (en) Predetermining network route for content steering
Belmoukadam et al. QoE-driven Cache Placement for Adaptive Video Streaming: Minding the Viewport
CN114866799A (zh) 一种服务器调度方法及装置
Dash et al. Performance analysis of server selection schemes for Video on Demand servers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant