首页 / 专利库 / 多媒体工具与应用 / 流式传输 / 配置和提供自适应流式传输视频的清单文件的系统和方法

配置和提供自适应流式传输视频的清单文件的系统和方法

阅读:467发布:2020-05-08

专利汇可以提供配置和提供自适应流式传输视频的清单文件的系统和方法专利检索,专利查询,专利分析的服务。并且用于提供自适应 流式传输 视频的清单文件的技术包括从用户装置接收对所述清单文件的 请求 。以不同的基准比特率对所述视频进行编码且将每个编码的基准比特率分成分段以产生视频分段文件。所述清单文件包括统一资源 定位 器(URL)的有 序列表 ,其引用在特定基准比特率进行编码的一个集合的视频分段文件。基于所述请求识别指示所述集合的视频分段文件的源清单文件。基于所述源清单文件产生包括第一URL和第二URL的发出的清单文件。所述第一URL引用第一域且所述第二URL引用不同于所述第一域的第二域。作为对所述请求的响应,将所述发出的清单文件传输至所述用户装置。,下面是配置和提供自适应流式传输视频的清单文件的系统和方法专利的具体信息内容。

1.一种用于配置和提供用于自适应流式传输视频的清单文件的系统,所述系统包括:
一个以上的分段文件服务器,每个分段文件服务器包括:处理单元,其包括一个以上的处理器;以及存储器,其与所述处理单元相联接且可由其进行读取并在其中存储一个集合的指令;
其中,由所述一个以上的处理单元执行所述一个以上集合的指令使得所述一个以上的分段文件服务器:处理在所述分段文件服务器接收的一个以上的请求,每个所述请求识别一个以上与第一自适应流式传输视频的一部分相对应的请求的视频分段文件;响应于每个所述请求,将所述请求的视频分段文件传输至接收装置;以及收集与所述请求的视频分段文件从所述分段文件服务器至所述接收装置的所述传输相对应的数据度量;以及清单文件服务系统,其包括一个以上的服务器,在所述清单文件服务系统中的每个服务器包括:处理单元,其包括一个以上的处理器;以及存储器,其与所述处理单元相联接且可由其进行读取并在其中存储一个集合的指令;
其中,由所述一个以上的处理单元执行所述一个以上集合的指令使得所述清单文件服务系统的所述一个以上的服务器:确定与所述一个以上的分段文件服务器收集的所述数据度量相关联的一个以上的基础设施服务提供商,其中所述确定的基础设施服务提供商中的每一个是与所述一个以上的分段文件服务器分开运行的且被识别为接收对所述第一自适应流式传输视频的其他部分的请求,该其他部分未由所述一个以上的分段文件服务器传输至所述一个以上的接收装置;基于与所述请求的视频分段文件从所述一个以上的文件分段文件服务器至所述一个以上的接收装置的所述传输相对应的所述收集的数据度量,且基于与所述收集的数据度量相关联的所述确定的基础设施服务提供商来确定与所述一个以上的基础设施服务提供商中的所述每一个相关联的一个以上的性能度量;接收对自适应流式传输视频的清单文件请求,其中在由所述一个以上的分段文件服务器收集所述数据度量之后接收所述清单文件请求;基于与所述基础设施服务提供商相关联的所述性能度量,选择响应于所述清单文件请求要在清单文件中引用的所述确定的基础设施服务提供商中的一个以上;配置清单文件,其包括引用与所述自适应流式传输视频的部分相对应的视频分段文件的一个以上的URL,其中由所述URL引用的所述视频分段文件是由所述一个以上的选定的基础设施服务提供商提供的;以及响应于所述接收的清单文件请求传输所述配置的清单文件。
2.根据权利要求1所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中所述配置的清单文件包括识别提供所述自适应流式传输视频部分的分段文件服务器的URL,其散布有提供所述自适应流式传输视频其他部分的、与所述一个以上分段文件服务器分开运行的一个以上基础设施服务提供商的所述URL。
3.根据权利要求1所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中确定与所述一个以上的基础设施服务提供商相关联的所述性能度量包括:
确定已由所述自适应流式传输视频的接收装置发起从所述自适应流式传输视频的一个带宽版本至所述自适应流式传输视频的另一个带宽版本的转换;以及
将所述转换归因于与所述分段文件服务器分开运行的第一基础设施服务提供商。
4.根据权利要求1所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中确定与所述一个以上的基础设施服务提供商相关联的所述性能度量包括:
基于在所述一个以上的分段文件服务器接收的请求,检测在所述自适应流式传输视频的接收装置发生的缓冲事件;以及
将所述缓冲事件归因于与所述分段文件服务器分开运行的第一基础设施服务提供商。
5.根据权利要求1所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中确定与所述一个以上的基础设施服务提供商相关联的所述性能度量包括:
检测与所述分段文件服务器分开运行的第一基础设施服务提供商的故障。
6.根据权利要求5所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中检测所述基础设施服务提供商的故障包括:
在所述一个以上的分段文件服务器接收对第一视频分段文件的第一请求;
确定所述第一请求包括与在用于所述自适应流式传输视频的第一清单文件内的主要URL相对应的第一URL;
在所述一个以上的分段文件服务器接收对第二视频分段文件的第二请求;
确定所述第二请求包括与在用于所述自适应流式传输视频的所述第一清单文件内的故障切换URL相对应的第二URL;
基于所述第一清单文件,确定所述第一基础设施服务提供商未能在所述第一视频分段文件和所述第二视频分段文件之间提供所述自适应流式传输视频的至少一部分。
7.根据权利要求1所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中配置所述清单文件包括在引用与所述选定的基础设施服务提供商中的一个相关联的第二域的URL之间散布引用与所述清单文件服务系统相关联的第一域的URL。
8.根据权利要求7所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中引用所述第一域的所述URL以周期性间隔散布在所述清单文件内。
9.根据权利要求7所述的用于配置和提供用于自适应流式传输视频的清单文件的系统,其中所述一个以上的分段文件服务器包括多个分段文件服务器,且其中由所述清单文件服务系统配置所述清单文件还包括:
基于由与请求的视频分段文件从所述一个以上的分段文件服务器至所述一个以上的接收装置的传输相对应的所述分段文件服务器收集的数据度量,在包括在用于所述自适应流式传输视频的所述清单文件中的视频分段URL中选择要引用的所述分段文件服务器中的一个以上,其中所述选定的分段文件服务器与所述第一域相对应。
10.一种用于配置和提供用于自适应流式传输视频的清单文件的方法,其包括:
由包括一个以上的服务器的清单文件服务系统接收与自适应流式传输视频相对应的清单文件的请求;
基于所述请求,由所述清单文件服务系统检索源清单文件,所述源清单文件包括识别与所述自适应流式传输视频的部分相对应的多个视频分段文件的数据;
基于与基础设施服务提供商相关联的性能度量,由所述清单文件服务系统选择提供所述自适应流式传输视频的至少一部分的基础设施服务提供商;
基于所述检索的源清单文件,由所述清单文件服务系统配置发出的清单文件,其中配置所述发出的清单文件包括在所述发出的清单文件内,在引用与所述基础设施服务提供商相关联的第二域的一个以上的URL之间,散布引用与所述清单文件服务系统相关联的第一域的一个以上的URL;以及
由所述清单文件服务系统,响应于与所述自适应流式传输视频相对应的所述清单文件的所述请求,传输所述发出的清单文件。
11.根据权利要求10所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中引用所述第一域的所述URL在所述发出的清单文件内以周期性间隔散布在引用所述第二域的所述URL之间。
12.根据权利要求10所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其还包括:
检索数据度量,其与从与所述清单文件服务系统相关联的一个以上的服务器至一个以上的接收装置的所述自适应流式传输视频的视频分段文件一个以上的之前的传输相对应;
分析所述数据度量,其与源于与所述清单文件服务系统相关联的所述一个以上的服务器的所述之前的传输相对应;以及
基于对所述数据度量的所述分析,选择与所述清单文件服务系统相关联的服务器、集群或节点中的至少一个以提供所述自适应流式传输视频的至少一部分。
13.根据权利要求10所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中选择所述基础设施服务提供商以提供所述自适应流式传输视频的至少一部分包括:
检索数据度量,其与从与所述清单文件服务系统相关联的一个以上的服务器至一个以上的接收装置的所述自适应流式传输视频的视频分段文件一个以上的之前的传输相对应;
分析所述数据度量,其与源于与所述清单文件服务系统相关联的所述一个以上的服务器的所述之前的传输相对应;以及
基于对所述数据度量的所述分析,从多个可用的基础设施服务提供商选择所述基础设施服务提供商以提供所述自适应流式传输视频的至少一部分。
14.根据权利要求13所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中分析与源于与所述清单文件服务系统相关联的所述一个以上的服务器的所述之前的传输相对应的所述数据度量包括:
在所述自适应流式传输视频至一个以上的接收装置的一个以上的之前的传输期间,确定带宽转换、缓冲事件或服务器故障中的至少一个;以及
在所述一个以上的之前的传输期间将所述至少一个带宽转换、缓冲事件或服务器故障归因于所述多个可用基础设施服务提供商中的一个。
15.一种用于配置和提供用于自适应流式传输视频的清单文件的方法,其包括:
由在第一基础设施服务提供商内的一个以上的服务器,接收一个以上的视频分段请求,每个所述请求识别与自适应流式传输视频的一部分相对应的一个以上的请求的视频分段文件;
由在所述第一基础设施服务提供商内的所述一个以上的服务器,将所述请求的视频分段文件传输至一个以上的接收装置,其中所述自适应流式传输视频的至少一部分不是由在所述第一基础设施服务提供商内的一个以上的服务器进行传输的,而是由与所述第一基础设施服务提供商分开运行的一个以上的基础设施服务提供商提供的;
由在所述第一基础设施服务提供商内的所述一个以上的服务器,收集与所述请求的视频分段文件从所述第一基础设施服务提供商至所述一个以上的接收装置的所述传输相对应的数据度量;
基于与所述请求的视频分段文件源于所述第一基础设施服务提供商的所述传输相对应的所述收集的数据度量,在所述第一基础设施服务提供商内,确定与一个以上的基础设施服务提供商相关联的性能度量,所述一个以上的基础设施服务提供商是与所述第一基础设施服务提供商分开运行的;
由所述第一基础设施服务提供商,接收用于所述自适应流式传输视频的清单文件的请求,其中在所述数据度量的所述收集后接收所述请求;
基于所述确定的性能度量,由所述第一基础设施服务提供商,从与所述第一基础设施服务提供商分开运行的所述一个以上的基础设施服务提供商中选择第二基础设施服务提供商以提供所述自适应流式传输视频的至少一部分;
由所述第一基础设施服务提供商,配置清单文件,所述清单文件包括引用与所述自适应流式传输视频的一个以上的部分相对应的视频分段文件的一个以上的URL的清单文件,所述URL引用被选定的所述第二基础设施服务提供商;以及
由所述第一基础设施服务提供商,响应于对所述清单文件的所述请求传输所产生的所述清单文件。
16.根据权利要求15所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中所述一个以上的视频分段请求包括与所述自适应流式传输视频的散布部分相对应的视频分段文件的多个请求,且其中所述散布部分是由所述第一基础设施服务提供商在由与所述第一基础设施服务提供商分开运行的所述一个以上的基础设施服务提供商提供的所述自适应流式传输视频的额外部分之间进行传输的。
17.根据权利要求15所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中确定与所述第一基础设施服务提供商分开运行的所述一个以上的基础设施服务提供商相关联的所述性能度量包括:
在所述自适应流式传输视频至一个以上的接收装置的所述传输期间,确定带宽转换、缓冲事件或服务器故障中的至少一个;以及
将所述至少一个带宽转换、缓冲事件或服务器故障归因于与所述第一基础设施服务提供商分开运行的所述基础设施服务提供商中的一个以上。
18.根据权利要求15所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中配置所述清单文件包括:在引用与所述选定的第二基础设施服务提供商相关联的第二域的URL之间散布引用与所述第一基础设施服务提供商相关联的第一域的URL。
19.根据权利要求18所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中引用所述第一域的所述URL以周期性间隔散布在所述清单文件内。
20.根据权利要求18所述的用于配置和提供用于自适应流式传输视频的清单文件的方法,其中所述第一基础设施服务提供商包括多个分段文件服务器,且其中配置所述清单文件还包括:
基于与所述请求的视频分段文件源于所述第一基础设施服务提供商的所述传输相对应的所述收集的数据度量,在所述第一基础设施服务提供商内确定与至少一个分段文件服务器相关联的一个以上的性能度量;以及
选择在所述第一基础设施服务提供商内的所述多个分段文件服务器中的一个以上以提供所述自适应流式传输视频的至少一部分,其中所述选定的分段文件服务器对应于所述第一域。

说明书全文

配置和提供自适应流式传输视频的清单文件的系统和方法

[0001] 相关申请的交叉引用
[0002] 本申请要求于2015年10月28日提交的题为“配置引用用于自适应流式传输视频的基础设施服务提供商的清单文件”的美国非临时申请号14/925693的权益和优先权,其要求于2014年10月29日提交的题为“用于网络化环境中基于会话的资源分配、传送、性能管理和测量的系统和方法”的美国临时专利申请号62/072265的权益和优先权。上述专利申请的全部内容通过引用并入本文以用于所有目的。
[0003] 本发明还要求于2015年5月11日提交的题为“用于网络化环境中基于会话的资源分配、传送、性能管理和测量的系统和方法”的美国专利申请号14/709171的优先权且为其的部分继续申请,其全部内容通过引用并入本文以用于所有目的。

背景技术

1.技术领域
[0004] 本发明总体涉及自适应流式传输视频。更具体地,本发明涉及使用自适应流式传输视频协议的用于视频内容传送的性能测量和管理。
[0005] 2.相关技术
[0006] 当今有许多可用的数字服务,包括移动应用和服务、互联网网站、社交网络服务、媒体和信息分布服务、通信服务、软件和应用服务、数据服务、电子商务服务、支付服务、互动服务和其他数字服务。大多数数字服务是在网络化环境,诸如移动网络、互联网、局域网、广域网、另一网络或这种网络的组合中运行的并依赖于至少两个且通常为远远多于两个的通过网络进行通信的不同的计算装置,例如,通过互联网与一个以上的服务器进行通信的用户计算机的交互。网络化环境能够是公共的、私有的或公共的和私有的组合。网络化通信能够直接发生,例如连接到服务器的用户计算机或间接发生,例如连接到依次连接到一个以上的其他服务器的服务器的用户计算机,或作为另一个实施例,连接到依次跳转该连接的服务器的用户计算机或经该连接传送至另一个服务器的信息。
[0007] 当数字服务在网络化环境中运行时,用户对数字服务的体验以及对该体验的满意度通常在很大程度上取决于基础设施资源,诸如经网络可用的数据和其他资源的可用性和性能,网络资源(诸如用户的数字服务会话所需装置中的连接)的可用性和性能或这种资源的组合。基础设施资源能够包括至或从用户装置或在支持数字服务的服务器或其他装置中进行传输的数字对象;计算资源,特别是非用户装置的一部分且因此通过网络进行远程定位和接入的计算资源;存储资源;数据资源;连接在网络化环境,包括移动网络、互联网和私有网络中的各种其他资源和设施的网络资源;图像渲染资源;以及支持数字服务的其他资源。这些资源可以用于多个实例、有限实例或单个实例中;可以用于所有潜在用户、一些潜在用户或仅为单个潜在用户;且可以由数字服务(例如,由托管互联网网站的数字服务运行的服务器)来控制和管理,可以由与数字服务有关系的服务提供商(例如,提供网站对象传送的内容传送网络服务提供商)来控制和管理,可以由与用户有关系的服务提供商(例如,用户的移动网络)来控制和管理,或可以由与数字服务或用户没有关系的实体(例如,通过其将数据从数字服务路由至用户装置的中间互联网网络)来控制和管理。
[0008] 基础设施资源常常处于不可预测的极度需求中,这使得在多个时间段,包括在长、中、短且有时为非常短的时间段内有效地管理这些资源是很重要的;其常常与有限的灵活性、复杂性和响应性互连,特别是跨独立管理的组织的(例如,边界网关协议[BGP]、控制在单独的互联网自治系统之间的数据的路由和流动,将网络的互连拓扑而非流经的流量或将使网络互连的网络链接的性能作为输入的基础互联网路由协议);常常以接近容量限制的平运行,这导致性能的变化性以及在局部或临时故障的情况下的显著位错;以及常取决于由一个以上的不同实体运行的其他资源的性能和/或可用性。额外地,用户对数字服务的实际或感知体验通常是“最弱链接”的情况,其中单个不可用或表现不佳的资源可能会降低整个实际或感知的用户体验;例如,HTML网页可能无法在浏览器窗口中正确渲染,或者可能完全无法渲染,直到在浏览器接收到要传送至用户装置的最后一个页面对象为止(其最后使得浏览器能够渲染整个页面)且因此,如果一个横幅广告、嵌入图像或其他嵌入页面对象缓慢地到达用户装置,整个页面对用户来说则看起来渲染地很慢;作为另一个实施例,在许多情况下,如果组成视频的数据未按视频回放将视频数据渲染成播放给用户的视频的速率到达装置,开始正常播放的视频则将冻结且用户的装置将显示缓冲指示符,且因此,如果一个数据包缓慢地到达用户装置且仅在需要其之后到达,视频回放则被中断且用户无法正常和持续地体验该视频。
[0009] 所需资源的多样化,互连资源基础设施服务提供商的激增,基础设施和其他服务提供商的性能变化,缺少对必要和/或不可避免的中间资源基础设施和其他服务提供商的控制,对基础设施资源的需求(及其利用)的波动性和不可预测性以及许多数字服务的最弱链接的特征连同用户的高性能期望和用户对错误和延迟的低容忍度创建了其中运行数字服务的高要求的技术环境。
[0010] 已开发出多种商业上可用的服务来解决该技术环境的各个方面。计算服务,诸如亚逊网络服务的EC2和Rackspace的云服务器提供了可快速扩展和高度可用的计算基础设施服务,包括按与物理服务器相同的方式通过IP(互联网协议)地址寻址,但却是按需而非物理性地提供的虚拟服务器。云存储服务,诸如亚马逊网络服务的S3和Limelight Networks的OrchestrateTM云存储器提供了可快速扩展和高度可用的数据存储服务,其中对象通常是通过统一资源定位器(URL)而非通过与物理存储装置相关联的文件接入方法或文件系统寻址的。内容传送网络,诸如Akamai Technologies和Limelight Networks经由通过对包含在URL中的主机名称的解析向内容请求分配服务器并重复利用互联网的域名系统(DNS)基础设施来提供内容(数据和媒体对象)传送服务;当解析主机名称时返回的IP地址旨在识别位于接近请求点(网络术语)的服务器且是表现良好(通常情况,不处于严重负载条件下)的服务器,从而减少与网络有关的延迟(经由减少网络距离和中间网络数量而实现)以及与服务器有关的延迟(经由避开过载的服务器且随着对那些资源的需求增加而增加服务器资源而实现)。网络优化服务,诸如Internap和Level3是通过选择更好的网络路由,使用私有网络分段和/或跨网络或网络分段或网络互连对网络流量进行分类和优化来减少网络引发的延迟和提高一致性而减少与网络相关的延迟的。
[0011] 这些方法中的每一个均具有固有的局限性。
[0012] ·使用虚拟服务器IP地址提供了可扩展性和可用性的要素,但是由于虚拟服务器IP地址中的每一个通常是在特定网络位置提供的,虚拟服务器IP地址可能远离(关于网络距离)给定用户计算装置和/或受中间网络性能的影响;另外,这种虚拟服务器,像真正的物理服务器一样能够变得过载且因此响应得更慢。
[0013] ·使用云存储地址提供了可扩展性和可用性的要素,但是由于云存储地址中的每一个通常是在特定网络位置或网络位置小组提供的,其可能远离(关于网络距离)给定的用户计算装置和/或受中间网络性能的影响。
[0014] ·由内容传送网络执行的DNS解析允许选择理想地接近(网络术语)用户装置且不是过载的服务器,但是这种DNS解析并不总是准确地基于用户装置的位置,且进一步地通常不是非常精细的。DNS解析请求不是由用户装置直接发送给内容传送网络的DNS服务器的;相反地,用户装置通常与数千(或数万或数十万)的其他用户装置一起将DNS请求发送至用户装置所连接至的接入网络或移动数据网络的本地名称服务器,且ISP本地名称服务器随后将请求发送至内容传送网络DNS服务器以进行解析。因此,在DNS解析时,内容传送网络DNS服务器只知道ISP本地名称服务器,而不知道用户装置本身的位置;而在通常情况下,ISP本地名称服务器的网络位置是用户装置的网络位置的良好指示符,这并不总是正确的-在很大比例的情况下,ISP本地名称服务器的网络位置并非用户装置的网络位置的准确指示符且在许多情况下是误导性的。此外,对于从其他用户装置发送到ISP本地名称服务器的许多其他DNS解析请求来说,由ISP本地名称服务器从内容传送网络的DNS服务器接收的DNS解析由ISP本地名称服务器进行缓存(存储指定的时间段)并重新进行使用,而不用重新联系内容传送网络的DNS服务器;结果,在ISP本地名称服务器重新联系内容传送网络的DNS服务器之前单个内容传送网络DNS解析可以重复使用数千或数万次。且最终,为互联网标准消息的DNS解析请求仅结合包含在URL中的主机名称而非整个URL,且特别地不包括识别由URL寻址的特定资源通常所需的URL的路径部分;此外,在由用户装置将整个URL(其识别特定资源)传输至内容传送网络(该URL传输为从用户装置至内容传送网络的对资源的实际请求)之前,执行DNS解析。因此,内容传送网络的DNS主机名称解析中的每一个通常必须容纳许多(可能数千或数万)可能的内容对象,许多(可能数千或数万)可能的用户请求以及未知的(且可能是变化的)可能的服务需求,其所有都存在于将主机名称解析成一个以上的IP地址的时刻。
[0015] ·虽然选择更好的网络路由或优先处理网络流量能够通过端到端的网络路由的受管理的部分提高网络性能,但其并不管理端到端的网络路由的未受管理的部分,也不处理服务器性能、服务器可扩展性或服务器过载。
[0016] 在这些方法的每一种以及所有方法中,一组服务提供商中的一个可以在一个集合的技术条件(包括,例如特定用户装置、特定接入网络、特定接入网络类型[诸如移动或宽带]、特定网络和/或地理位置、特定对象类型和大小或资源特征、特定对象库大小和接入模式或资源接入特征以及特定需求场景)下表现得最好,而另一个服务提供商则可以在第二集合的技术条件下表现得更好。在各种集合的技术条件下的服务提供商的性能可能会随时间而缓慢或快速地变化,可能规则或不规则地波动且可能会显著地受到长期或短期的异常事件,诸如在总需求或本地化需求中的突然变化、断供、网络和设备故障以及安全攻击和漏洞的影响。服务提供商的性能可能难以公平和客观地进行测试,特别是当服务提供商意识到测试时和/或当可由技术方法,特别是自动化技术方法检测到性能测试本身时。在实际使用(与测试使用相反)中,详细地,从用户的度出发,在允许有效行动的时间框架内难于跨多个服务提供商和技术条件集合来监控服务提供商的性能。
[0017] 技术环境进一步复杂化,在许多情况下,数字服务选择在两个以上的基础设施服务提供商中分配其对每个给定的基础设施服务的使用,例如,同时使用两个(或多于两个)的内容传送网络来提供内容请求,并将给定的请求分配给一个或另一个内容传送网络。这是有商业和技术原因的;数字服务可以通过利用多于一个来增加其对服务提供商的协商杠杆作用且同时获得允许其在如果服务提供商中的一个遭受断供的情况下继续运行的冗余。此外,在许多情况下,资源由多个不同的发起者供给,例如,在编辑内容与广告内容相结合的情况下(其中编辑内容通常源于发布者且广告内容通常源于单独的广告代理、网络、服务器或服务提供商);在这种情况下,通常为每个发布者利用单独且独立管理的技术基础设施。当数字服务使用多个基础设施服务提供商或需要从多个发起者向终端用户供给资源或两者皆有时,总体技术性能和实际或感知的用户体验受到更大且更复杂范围中的技术因素的影响,这是由基础设施服务提供商中的性能变化,多个发起者中的性能变化以及在多个发起者中的交互性能变化引起的。在这些条件下,最弱链接的状况可能会加剧对总体用户体验或大部分用户体验的影响。
[0018] 这些挑战中的一些可能通过在收集与技术性能相关联的数据的用户的软件装置上进行实施来部分地进行解决且随后基于该数据调整基础设施服务提供商的选择和基础设施的服务。然而,这种方法受限于由用户装置的制造商在用户装置上实施的软件环境的局限性以及增加包括在数字服务的用户装置软件或应用中的编程量而导致数字服务运营商具有的增加的复杂性和其他后果。例如,内置于大多数移动装置的浏览器,包括置于Apple iOS中的迷你Safari浏览器和内置于Android认证装置中的移动Chrome浏览器不支持浏览器扩展程序的安装;因此,基于浏览器的应用只能够与浏览器交互,且无法扩展浏览器的软件功能。类似地,在大多数移动装置(包括基于iOS的装置和大多数Android认证的装置)上可用的软件编程环境不支持与在装置上的传输控制协议(TCP)处理模的直接且低水平的交互;这意味着,在iOS装置上运行的软件应用,例如,不能直接测量连接延迟、TCP包丢失或TCP包抖动(TCP包到达率的变化)。因此,在许多装置(包括大多数的移动装置)的情况下,依赖于在用户装置上的软件将需要依赖于受限于其能够观察、测量和实施内容的软件。即使在其中使用安装至浏览器中的浏览器扩展程序能够启用与桌面操作系统的功能的较低水平的交互的桌面浏览器的受到较少限制的环境中,安装浏览器扩展程序所需的明确的用户动作也是实际广泛实施的显著障碍。最终,在终端用户应用或经浏览器扩展程序实施额外的技术功能增加了在应用(或在与扩张程序相结合的应用)中的编程代码量,其转而增加了编程开发范围和成本、质量保证范围、编程和运行复杂性、软件故障的险以及新软件产品和现有软件产品的新版本的上市时间
[0019] 那么,所需的则是分配(在适当情况下)或传送(在适当情况下)在网络化环境中运行的数字服务所需的资源以及向数字服务所需的资源任务分配基础设施服务提供商,其是在不具有添加至用户装置应用或用户装置浏览器的软件扩展程序的情况下运行的,其测量和管理基础设施资源的性能,其测量和管理多个不同的基础设施服务提供商的性能,且其因此提高了用户对数字服务的实际和感知的体验。
[0020] 自适应比特率流式传输能够提高在通过数据网络或电信网络流式传输多媒体内容,诸如视频时的用户体验。为了启用视频文件的自适应流式传输,通常将视频编码成多个单独的文件,有时称为再现或变体,其每一个表示按不同的基准比特率编码的相同视频。随后跨相关组的文件按一致的方式将这些文件分成分段,其中每个分段通常(但不一定)持续非常少的秒数至几秒,例如,每个变体文件的第一分段包括视频的前十秒,每个变体文件的第二分段包括第二个十秒等。要注意的是,虽然这种基于时间的分段是跨比特率文件为一致的,但不一定每个相继的分段都具有相同的持续时间;例如,每个比特率的第一分段能够持续十秒,每个比特率的第二分段能够持续五秒,且每个比特率的第三分段能够持续六秒等。随后,在视频的回放期间,视频播放器通过分段文件下载视频分段且在如果需要的情况下以及根据可能受到网络条件、服务器性能、装置性能或特征和/或其他技术问题的影响的将分段文件下载至装置的速率以及其他性能考虑,随着从一个分段前进至另一个,其能够在不同的引用编码比特率之间转换。例如,为了保持连续的回放,当网络拥塞且吞吐量减少时,播放器能够降档到较低的引用编码比特率;之后,如果网络性能提高且吞吐量增加,播放器则能够升档到较高的引用编码比特率。要注意的是,虽然回放未中断,但是用户的体验仍可能受到影响,这是因为在基准比特率中的降档能够导致可引起用户注意的视频质量的变化,且因为较低的比物率视频文件可能具有降低的清晰度和其他视觉特征。
[0021] 通常,能够按一致的方式或可变的方式执行视频文件编码。当按一致的方式对视频文件进行编码时,视频的编码比特率在视频期间是一致的;因此,当将一致编码的视频分成分段时,给定持续时间的每个分段将是具有与相同持续时间的其他分段相当大小的文件。当按可变方式对视频文件进行编码时,视频的编码比特率可以在视频期间发生变化,例如,当在给定序列的视频帧中较大运动导致较高的比特率以便保持该序列与视频的其他部分相比的视觉一致性时;因此,当将可变方式编码的视频分成分段时,与相同持续时间的一个以上的其他分段相比,给定持续时间的分段可以具有不同的文件大小、更大或更小的文件大小。并非所有的自适应流式传输视频规范和/或实施例都支持可变方式编码的视频文件或与其正常工作,但有一些则是可能的。
[0022] 通常,为了获得用于回放的视频分段文件,视频播放器首先通过发出对主清单统一资源定位器(URL)的HTTP GET请求来请求主清单文件,有时也称为索引文件或播放列表。主清单通常是包括多个URL的文本文件,其中的每一个识别变体清单;这些URL能够是绝对或相对URL且通常为相对URL。然后,视频播放器通过发出对所要求的变体清单的URL的HTTP GET请求来请求变体清单文件中的一些或全部。视频播放器还可以发出对未完全请求(如果有的话)的变体清单中的一些或所有的URL的HTTP头请求;这使得视频播放器能够确认清单文件可用于之后的下载且获得关于包含在头中的文件的信息。每个变体清单通常是包括多个URL的文本文件,其中的每一个识别视频分段文件;这些URL还能够是绝对或相对URL且通常为相对URL。除了URL之外,清单文件能够包含其他信息,例如,元数据或其他描述性或控制信息。在直播或线性视频的情况下,由于视频播放器是通过在当前的变体清单中识别的分段的回放而进行的,其将请求应包含额外的视频分段URL的更新的变体清单;在正常运行中,更新的变体清单文件将继续由视频播放器进行请求且可用于其,直到包含视频流已达到其列表结束标记或可比较的指示符的清单文件到达为止。

发明内容

[0023] 本文描述了用于产生和提供用于自适应流式传输视频的清单文件的各种技术(例如,系统、方法、在非临时性机器可读存储介质中有形地进行具体化的计算机程序产品等)。在某些实施例中,一种用于产生和提供清单文件的系统可以包括一个以上的分段文件服务器以及用于提供自适应流式传输视频的清单文件的清单文件服务系统。
[0024] 一个以上的实施例可以包括用于至在网络化环境中的用户装置的点播视频的传送、性能测量和性能管理的技术,其利用自适应流式传输视频传送协议并利用存在于用户装置上的标准视频回放组件,其不具有添加至用户装置应用或用户装置浏览器的额外的软件或软件扩展程序。这种实施例中的任一个可以在本文称为主要的实施例,然而应理解的是这仅用于参考,且主要的实施例不是必要的或固有地比任何本文所述的其他实施例更重要。
[0025] 一个以上的额外的或替代的实施例可以包括用于至在网络化环境中的用户装置的线性视频的传送、性能测量和性能管理的技术,其利用自适应流式传输视频传送协议并利用存在于用户装置上的标准视频回放组件,其不具有添加至用户装置应用或用户装置浏览器的额外的软件或软件扩展程序。这些实施例中的任一个可以在本文称为次要的实施例,然而应理解的是这仅用于参考。
[0026] 主要实施例和次要实施例可以包括根据其的系统和方法:基础设施组件网络的运营商管理字符串集合,其中每个字符串指定被授权使用基础设施组件网络的数字服务;基础设施组件网络解析主机名称DNS解析请求以将对清单文件的URL请求引至网络基础设施组件网络内的特定基础设施组件;基础设施组件网络接收对清单文件的初始装置请求,其中每个清单文件与请求装置寻求播放的特定视频相关联;基础设施组件网络配置一个以上的能够使装置请求播放视频所必需的视频分段文件且能够使基础设施组件网络向视频分段文件的传送分配基础设施资源和/或基础设施服务提供商、测量所分配的基础设施资源和/或基础设施服务提供商的性能以及管理所分配的基础设施资源和/或基础设施服务提供商的性能的清单文件并将其返回到每个请求装置。
[0027] 在其他实施例中,基础设施组件网络的运营商管理字符串集合,其中每个字符串指定被授权使用基础设施组件网络的数字服务;基础设施组件网络通过将主机名称解析至与集群相关联的一个以上的交换机的IP地址来解析主机名称DNS解析请求以将对清单文件的URL请求引至在基础设施组件网络内的基础设施组件集群;与每个基础设施组件集群相关联的一个以上的交换机将用于清单文件的URL请求引至特定基础设施组件;基础设施组件网络接收对清单文件的初始装置请求,其中每个清单文件与请求装置寻求播放的特定视频相关联;基础设施组件网络配置一个以上的能够使装置请求播放视频所必需的视频分段文件且能够使基础设施组件网络向视频分段文件的传送分配基础设施资源和/或基础设施服务提供商、测量所分配的基础设施资源和/或基础设施服务提供商的性能以及管理所分配的基础设施资源和/或基础设施服务提供商的性能的清单文件并将其返回到每个请求装置;以及返回到请求装置的配置的清单文件含有一个以上的包含与基础设施组件网络相关联的主机名称的视频分段传送URL,将其中的每一个解析至一个以上的分段文件服务器的IP地址。
[0028] 在其他实施例中,基础设施组件网络的运营商管理字符串集合,其中每个字符串指定被授权使用基础设施组件网络的数字服务;基础设施组件网络通过将主机名称解析至与集群相关联的一个以上的交换机的IP地址来解析主机名称DNS解析请求以将对清单文件的URL请求引至在基础设施组件网络内的基础设施组件集群;与每个基础设施组件集群相关联的一个以上的交换机将用于清单文件的URL请求引至特定基础设施组件;基础设施组件网络接收对清单文件的初始装置请求,其中每个清单文件与请求装置寻求播放的特定视频相关联;基础设施组件网络配置一个以上的能够使装置请求播放视频所必需的视频分段文件且能够使基础设施组件网络向视频分段文件的传送分配基础设施资源和/或基础设施服务提供商、测量所分配的基础设施资源和/或基础设施服务提供商的性能以及管理所分配的基础设施资源和/或基础设施服务提供商的性能的清单文件并将其返回到每个请求装置;在与分段文件服务器集群相关联的每种情况下,返回到请求装置的配置的清单文件含有一个以上的包含与基础设施组件网络相关联的主机名称的视频分段传送URL,将其中的每一个解析至一个以上的交换机的IP地址;且与分段文件服务器的每个集群相关联的一个以上的交换机将对视频分段文件的URL请求引至特定分段文件服务器。
[0029] 在其他实施例中,清单文件是由基础设施组件网络进行配置的但并不是直接返回至请求装置。额外的实施例包括用于按除了自适应流式传输视频协议以外的协议传送视频,传送不是视频的数据、图像、文本、音频和其他内容以及提供其他基础设施资源,诸如计算资源的系统和方法。
[0030] 本发明的适用性的进一步的区域将根据之后提供的详细描述而变得显而易见。应理解的是详细描述和特定实施例虽然指示了各种实施例,但却仅用于说明而并不一定旨在限制本发明的范围。附图说明
[0031] 可以通过参考以下附图来实现对各种实施例的性质和优点的进一步的理解。在附图中,类似的组件或特性可以具有相同的参考标记。进一步地,相同类型的各种组件可以通过遵循划线表示的参考标记以及在类似的组件中进行区分的第二标记进行区分。如果在本说明书中仅使用了第一个参考标记,描述则适用于具有相同的第一个参考标记而无论第二个参考标记如何的类似组件中的任一个。
[0032] 图1为用于实施用于测量和管理自适应流式传输视频传送的性能的系统的一个实施例的实施例性环境的图示。
[0033] 图2为用于测量和管理自适应流式传输视频传送的性能的系统的一个实施例的方框图
[0034] 图3为用于测量和管理自适应流式传输视频传送的性能的过程的一个实施例的交互流程图
[0035] 图4为用于产生发出的清单文件的过程的一个实施例的流程图。
[0036] 图5为所产生的用于自适应流式传输视频的实施例性发出的变体清单文件的图示。
[0037] 图6为用于测量自适应流式传输视频传送的性能的过程的一个实施例的流程图。
[0038] 图7A和7B为示出用于确定基础设施服务提供商的自适应流式传输视频传送的性能度量并基于所确定的性能度量配置所请求的清单文件的过程的实施例的流程图。
[0039] 图8A和8B为示出用于确定分段文件服务器的服务器、集群或节点的自适应流式传输视频的传送性能度量并基于所确定的性能度量配置所请求的清单文件的过程的实施例的流程图。
[0040] 图9为当请求和播放与清单文件相应的自适应流式传输视频时用于检测和分析故障切换URL的变化的过程的一个实施例的流程图。
[0041] 图10为能够用于实施测量和管理自适应流式传输视频传送的性能的系统的专用计算机系统和计算装置的实施例。

具体实施方式

[0042] 接下来的描述仅提供优选的实施例性实施例且并不旨在限制本发明的范围、适用性或配置。相反地,接下来对优选实施例性实施例的描述将向本领域的技术人员提供能够用于实施优选实施例性实施例的描述。要理解的是,在不脱离如在所附权利要求中阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。此外,当特定特性、结构或特征是结合一个实施例进行描述时,无论是否明确地进行描述,均认为结合其他实施例以影响这种特性、结构或特征是在本领域的技术人员的知识范围内的。
[0043] 介绍
[0044] 流式传输是指随着通过电信网络传送内容呈现多媒体内容,而不是在呈现内容之前等待传送整个内容的过程。虽然视频和音频是最流行形式的流式传输媒体,但也能够流式传输其他传输的媒体,包括文本、图像和其他数据。流式传输提供了优于其他传送方法的优点,诸如立即呈现内容而无需等待下载整个内容。然而,流式传输还具有其局限性。流式传输的主要缺点之一就是用户体验的质量高度依赖于网络性能和带宽。例如,在视频流式传输的情况下,如果视频数据不能按比渲染视频数据的速率更快的传输速率传输到用户装置,视频的回放则可能冻结且视频的用户体验可能会中断。
[0045] 为了提高用户体验,分布多媒体内容的内容提供商将经常利用一个以上的基础设施服务提供商,例如,云计算服务提供商和/或内容传送网络(CDN)以分布内容。基础设施服务提供商可以使用多种技术来提高传送性能和内容可用性。例如,CDN,诸如Akamai Technologies和Limelight Networks通过维护跨多个位置进行分布的大量服务器来提供内容传送服务。当接收到对内容的请求时,将请求引向位于接近请求点(网络术语)且表现良好(通常,不处于严重负载条件下)的服务器。
[0046] 技术环境进一步复杂化,为了冗余的目的,内容提供商可以在两个以上的基础设施服务提供商中分配内容分布,这允许在如果一个服务提供商遭受断供的情况下继续进行分布。额外地,能够从不同的内容提供商供给用于流式传输会话的内容数据。例如,在结合有广告内容的编辑内容的情况下,用于编辑内容的内容提供商能够是发布者且用于广告内容的内容提供商能够是广告服务器或服务提供商。内容提供商和基础设施服务提供商可以利用单独的独立管理的技术基础设施和网络来传送其各自的内容数据。
[0047] 一个基础设施服务提供商可以在一种情况下表现得更好,而另一个服务提供商则可以在不同的情况下表现得更好。能够影响内容传送性能的技术条件包括,例如,请求内容的用户装置,用户装置所连接到的接入网络,接入网络的类型(诸如移动的或宽带的),中间网络,提供内容传送的服务提供商网络或其他基础设施,用户装置的地理位置和内容的类型和大小。特定服务提供商的性能还能够随时间发生变化,规则或不规则地波动且受到异常事件,诸如在需求中的突然变化、断供、设备故障以及安全漏洞的显著影响。当多个服务提供商参与分布或供给内容时,源于单个服务提供商的性能变化能够对用户体验产生显著影响。然而,难以准确、公正和全面地确定基础设施服务提供商的性能。服务提供商的性能也难以在实际使用中进行监控(这与综合检测,例如使用不测量实际用户内容会话的探测器或其他检测点的情况相反)且从用户的角度来看特别难以进行确定。在不进行性能测量和监控的情况下,可能难以识别服务提供商何时产生性能问题以及影响用户体验的技术条件,特别是在允许有效行动的时间框架内。
[0048] 主要实施例和次要实施例中的每一个可以包括用于至在网络化环境中的用户装置的视频的传送、性能测量和性能管理的技术,其利用现代数字视频协议并利用存在于用户装置上的标准视频回放组件,其不具有添加至用户装置应用或用户装置浏览器的额外的软件或软件扩展程序。主要实施例(以及次要实施例)可以聚焦于视频,这是因为视频是许多数字服务的重要部分且因为视频在相对长的时间段内对基础设施资源的持续性能具有敏感性。给定数字视频的回放能够持续几秒钟、几分钟、几小时或更长的时间;且不管视频回放所需的时间长度,为了传送最佳可能的用户体验,可能需要至少在该时间段为该用户维持基础设施资源的性能。其他实施例包括不是视频的数据、图像、文本、音频和其他内容的传送,这些内容类似地对基础设施服务提供商的性能具有敏感性,但通常不需要视频所需的数据量,且通常(除了在音频的情况下)不需要持续与视频内容一样长的时间段;因此,主要实施例和次要实施例中的每一个表示要考虑的最有挑战性的内容环境中的一个,其因此与基础设施资源和基础设施服务提供商环境相关联。
[0049] 主要实施例可以聚焦于点播视频内容的传送,点播视频内容表示进行存储的以使得视频能够非同时地向多个用户进行播放的视频内容;在点播场景中,每个用户能够在需要时开始回放,而不用考虑其他用户的视频回放。点播视频环境的实施例包括点播电影、点播电视节目、上传的用户视频的回放以及类似的存储和回放的视频使用情况。
[0050] 可以被实施为主要实施例的替代方案或额外方案的次要实施例可以聚焦于线性视频内容的传送,线性视频内容表示同时线性地向多个用户进行插入的视频内容;在线性视频场景中,当每个新用户开始观看正在进行的视频节目时,该用户在其他用户同时观看的视频节目中的同一点开始观看,且所有用户均同时观看。线性视频环境的实施例包括直播事件,诸如体育赛事或音乐会;以及线性广播,诸如电视网广播的数字视频流;要注意的是,线性视频内容包括但不限于直播视频内容。还要注意的是,在本上下文中的“同时”并不精确地表示同时,例如,具有亚秒级的容限;就如同当两个用户同时观看电视广播时,一个通过卫星电视且另一个通过有线电视进行,通常由于通过两个不同的电视基础设施进行视频信号的处理和传输可能在两个电视广播到达之间存在有小的差异,这通常是以秒进行测量的且小于1分钟。类似地,使用连接到两个不同的互联网接入网络的两个不同装置经互联网观看相同线性视频节目的两个用户可能会在回放的时序中在他们的两个装置之间经历类似的小差异,其通常是以秒测量的且小于1分钟。
[0051] 在其他原因中,由于在用于在点播与线性环境中传送视频内容的底层协议中的差异,主要实施例和次要实施例可能在一些方面中有所不同。因此,在本文中按适当的详细度描述了主要实施例和次要实施例。
[0052] 主要实施例和次要实施例的技术可以在包括一个以上的清单文件处理程序、一个以上的分段文件服务器、一个以上的集群性能管理器、一个以上的服务提供商管理器、一个以上的性能管理程序、一个以上的DNS授权名称服务器和网络化装置,诸如交换机和路由器的各种系统和/或计算环境上实施;可选地,主要实施例和次要实施例还包括一个以上的非索引文件消息处理程序(在本文也称为NIF消息处理程序)、一个以上的分段重定向处理器和/或一个以上的库存储服务器。包括在主要实施例或次要实施例的实施中的所有这些组件在下文中可以单独地和/或共同地称为基础设施组件。DNS授权名称服务器为授权用于将识别基础设施组件的网络、组或各个的主机名称解析成相应的IP地址的DNS名称服务器。可选地,能够跨地理区域或广域网区域,例如全球互联网在含有一个以上单元的一个以上的集群中布置基础设施组件。
[0053] 例如,现在参考图1,其示出了方框图,其示出了在其中可以实施用于视频至用户装置118的传送、性能测量和性能管理的系统100的实施例的实施例网络环境。在这个实施例中,环境包括系统100的实施例,其包括下列基础设施组件:域名系统(DNS)授权名称服务器102、第一集群网络化装置104、第一清单文件处理程序106、第一分段文件服务器108、第二集群网络化装置110、第二清单文件处理程序112和第二分段文件服务器114。
[0054] 根据下面讨论的各种实施例,当用户装置118(或其他请求装置)使用包括清单文件服务器(和/或清单文件服务系统)106或112或分段文件服务器108或114的主机名称的URL提出对清单文件或视频分段文件的请求时,DNS授权名称服务器102可以根据本文所述的实施例中的任一个将主机名称解析成一个以上的IP地址。可以由清单文件处理程序106或112(例如,清单文件服务器和/或清单文件服务系统)处理对清单文件的请求,该清单文件处理程序106或112可以包括根据本文所述的实施例中的任一个的一个以上的集群性能管理器、服务提供商管理器以及性能管理程序和/或可以被配置成与其协同运行。根据本文所述的实施例中的任一个,可以由分段文件服务器108和114来处理对视频分段文件的请求。
[0055] 系统100的组件可以直接或间接(经另一个组件)地联接到网络116。例如,在这个实施例中,DNS授权名称服务器102可以直接联接到网络116且第一清单处理程序106可以经第一集群网络化装置104间接联接到网络116。网络化装置104和110能够是,例如路由器、交换机或网关。网络116能够是公共网络、私有网络或公共的和私有的组合。网络116可以包括局域网(LAN)、广域网(WAN)、有线网络、无线网络、电话网络诸如蜂窝电话网络、互联网、万维网或任何其他所需的网络。网络116能够使用任何所需的通信和/或网络协议。
[0056] 系统100的每个组件由特定于该组件的一个以上的主机名称进行识别。可选地,能够向给定组件类型的每一组分配唯一的主机名称,其具有增加的特异性水平直到识别出各个组件为止。这在包括布置在多个分布式集群中的大量组件(每个集群具有多个组件)的实施方案中能够是有用的。例如,manifestserver.net能够是寻址系统100的所有清单文件服务器的主机名称,a.manifestserver.net能够是寻址在集群A的所有清单文件服务器的主机名称,且1.a.manifestserver.net能够是寻址在集群A的清单文件服务器号1的主机名称。在这些实施例中,net是主机名称的顶级域名,manifestserver是主机名称的二级域名而a和1.a则是各主机名称的子域名。
[0057] DNS授权名称服务器102是授权用于解析系统100的主机名称的DNS名称服务器。DNS授权名称服务器102可以接收用于解析识别系统100的一个组件、一组组件或组件网络的主机名称的请求。可以将主机名称解析成一个以上的互联网协议(IP)地址,其被分配到由主机名称识别的组件或多个组件,且响应于请求将IP地址传输回来。
[0058] 在这个示例中,还存在有不是系统100的一部分的联接到网络116的组件,其包括用户装置118、内容提供商服务器120、第一基础设施服务提供商服务器122和第二基础设施服务提供商服务器124。内容提供商服务器120可以由希望分布自适应流式传输视频的内容提供商来管理和运行。内容提供商服务器120可以是,例如,托管用于内容提供商的网站的网页服务器。第一基础设施服务提供商服务器122可以由分布用于内容提供商的视频的第一基础设施服务提供商来管理和运行,且第二基础设施服务提供商服务器124可以由第二基础设施服务提供商来管理和运行。为了分布视频,内容提供商可以在网站上发布用于视频的清单文件的URL。在发布URL之后,用户能够利用用户装置118来访问网站并观看视频。当用户导航到网站时,将所发布的URL从内容提供商服务器120传输到用户装置118。然后,用户装置118可以使用发布的URL请求视频的清单文件。为了将特定的传送分配到基础设施服务提供商,内容提供商可以发布URL,其含有直接或间接地(诸如通过使用CNAME)引用所分配的服务提供商而非其本身的网站的主机名称,且随后,用户装置118从基础设施服务提供商请求视频的清单文件。
[0059] 现在参考图2,示出了用于测量和管理自适应流式传输视频传送的性能的系统200的一个实施例的方框图。系统200包括网络化装置202、清单文件处理程序204和分段文件服务器212。如在这个示例中所示,在一些实施例中,清单文件处理程序204可以被实施为单个清单服务器204,而在其他实施例中,清单文件处理程序204可以对应于包括一个以上的单独的服务器的清单文件服务系统204,其中单独的服务器被设计和配置成进行与配置和提供用于自适应流式传输视频的清单文件相关的单独任务。清单文件处理程序204和分段文件服务器212可以经网络化装置202连接到互联网218。为了清楚起见,在该图中仅示出了每种类型的一个服务器;然而,要理解的是,系统200能够包括被布置成任何数量集群的任何数量的服务器。
[0060] 在这个示例中,清单文件处理程序(例如,清单文件服务器/服务系统204)还包括一个以上的集群性能管理器206、一个以上的服务提供商管理器208以及一个以上的清单文件数据存储器210。清单文件处理程序204可以处理对主清单文件和变体清单文件的请求,如下面所述。为了处理请求,清单文件处理程序204可以产生和/或配置发出的清单文件并将发出的清单文件传输到请求装置。
[0061] 集群性能管理器206可以为包括在发出的清单文件中的URL选择系统200的服务器或集群的主机名称。例如,为了产生发出的主清单文件,清单文件处理程序204可以配置引用变体清单文件的URL。对于每个URL而言,集群性能管理器206可以选择清单文件服务器或集群以处理变体清单文件请求。可以根据本文所述的实施例中的任一个执行选择以提高网络性能。选定的清单文件服务器或集群的主机名称包括在处于发出的主清单文件中的URL的主机字段中。
[0062] 对于发出的变体清单文件而言,每个URL的主机字段能够含有系统200的分段文件服务器或集群的主机名称或与服务提供商相关联的主机名称。在一个实施例中,服务提供商管理器208基于分布策略、分布模型以及从性能管理员214接收的性能和利用信息来确定用于在发出的变体清单文件中的每个URL的URL类型(即,URL是否指定分段文件服务器/集群或服务提供商)。
[0063] 对于在发出的变体清单文件中指定系统200的分段文件服务器/集群的URL而言,集群性能管理器206可以选择使用类似于清单文件服务器或集群的选择的过程来处理视频分段文件请求的分段文件服务器/集群。对于引用基础设施服务提供商的URL而言,服务提供商管理器208可以选择用于处理视频分段文件请求的基础设施服务提供商。在一个实施例中,基于分布策略和从性能管理员214接收的性能信息来选择基础设施服务提供商,如下面所讨论的。
[0064] 源清单文件数据存储器210是存储源清单文件的数据库或存储库。可以基于源清单文件产生和/或配置每个发出的清单文件。当接收到对清单文件的请求时,能够基于包括在请求中的请求的清单文件的URL识别源清单文件。如果源清单文件的未过期版本不存储在源清单文件数据存储器210中,清单文件处理程序204能够从内容提供商或服务提供商的服务器请求源清单文件。
[0065] 分段文件服务器212还可以包括性能管理员214和视频分段文件数据存储器216。在一些实施例中,性能管理员214和/或视频分段文件数据存储器可能并不包括在分段文件服务器212内,反而可以被实施为与分段文件服务器212分开运行的服务器和/或系统。视频分段文件数据存储器216可以是被配置成存储视频分段文件的数据库或存储库。分段文件服务器212可以处理对视频分段文件的请求。为了处理请求,分段文件服务器212基于包括在请求中的URL来识别存储在视频分段文件数据存储器216中的视频分段文件。如果视频分段文件的未过期版本不存储在视频分段文件数据存储器216中,分段文件服务器212能够从内容提供商或其基础设施服务提供商的服务器请求视频分段文件。在某些实施例中,当发出的变体清单文件被配置成用于变体清单文件请求时,集群性能管理器206、清单文件服务器204或另一个基础设施组件可以将通知传输至分段文件服务器212或视频分段文件数据存储器216。该通知可以告知分段文件服务器212或视频分段文件数据存储器216已选择了其或与其相关联的另一个分段文件服务器212或视频分段文件数据存储器216以用于传送在发出的变体清单文件中的视频分段文件。响应于接收到该通知,如果视频分段文件的未过期版本已经不可用于为其提供服务,分段文件服务器212或视频分段文件数据存储器216则可以立即请求视频分段文件。因此,在用户装置对视频分段文件提出请求之前或在分段文件服务器212接收到由用户装置发送的请求之前的任何情况下,能够从内容提供商或服务提供商请求视频分段文件。这能够有助于减少或消除在处理对需要从内容提供商或服务提供商检索的视频分段文件的分段文件请求中的延迟。类似地,当分段文件服务器212接收到对将从给定的发出的清单提供服务的第一视频分段文件的请求时,其能够确定将从给定的发出的清单提供服务的下一个视频分段文件并在如果视频分段文件的未过期版本不可用的情况下立即请求下一个视频分段文件。
[0066] 性能管理员214可以记录分段文件请求的请求属性以及视频分段文件传输的传输测量。请求属性包括信息,诸如所请求的视频分段文件、所请求的视频分段文件的编码比特率、传送用于会话的视频的其他分段的服务提供商、识别从其接收到请求的接入网络的信息(诸如IP地址)、接入网络的类型以及装置类型、装置模型、提出请求的用户装置的用户代理、包括在请求中的其他消息头以及与请求相关联的其他信息。传输测量包括视频分段文件传输到用户装置的传输速率、传输的包级统计测量(诸如,包丢失、包重传等)、传输的日期和时间以及传输的持续时间。基于为每个会话记录的该数据,能够为特定的会话、视频、视频类别、内容提供商、服务提供商、接入网络、用户代理或用户装置类型产生性能统计资料、趋势和报告,这里仅仅列出了几个示例。
[0067] 在其他实施例中,能够在与清单文件处理程序204和分段文件服务器212相分离的一个以上的物理服务器上实施集群性能管理器206、服务提供商管理器208和性能管理员214。源清单文件210和视频分段文件216还能够存储在与清单文件处理程序204和分段文件服务器212相分离的一个以上的存储装置上。例如,源清单文件210和视频分段文件216能够存储在联接到多个清单文件处理程序(例如,清单文件服务器/集群/服务系统)和多个分段文件服务器/集群/节点的网络附加存储器(NAS)。
[0068] 可选的主机名称方案
[0069] 在主要实施例和次要实施例中,DNS授权名称服务器可以基于在整个本发明中讨论的各种因素来将主机名称解析成IP地址。在主要实施例和次要实施例的可选方面中,经DNS授权名称服务器实施主机名称方案,其中给定的基础设施组件类型的每一组能够由特定于该组的主机名称以增加的特异性水平进行识别,该主机名称包括特别地识别各个基础设施组件单元的各个主机名称;该主要实施例和次要实施例的可选方面可用于包括大量的基础设施组件单元的实施方案中,该基础设施组件单元布置在每一个均包括多个个别单元的多个分布式集群中,但这不是必需的。还要注意的是,尽管本文中所提供的示例对于人类读者来说将是有意义的,但DNS授权名称服务器仍能够将任何主机名称解析成IP地址,该主机名称可以是完全抽象的且不包括有义字符,且因此,在许多情况下为合宜的主机名称字符串的人类可读的意义也是可选的且不是必需的。
[0070] 例如,对于部分地包括布置在每4个清单文件处理程序单元的8个集群中的32个清单文件处理程序的实施方案而言,其中在给定集群中的所有单元都位于一起且每个这样的集群位于与其他集群不同的网络位置上,且所实施的主机名称方案可能是:
[0071] o indexhandler.net是寻址所有清单文件处理程序的主机名称
[0072] o a.indexhandler.net是寻址在位置A的所有清单文件处理程序的主机名称[0073] o 1.a.indexhandler.net是寻址在位置A的清单文件处理程序号1的主机名称[0074] 在正常运行中,当由DNS授权名称服务器返回多个IP地址以用于主机名称解析时,请求装置可以将对含有主机名称的URL的请求仅发送到单个IP地址,只要该IP地址对针对含有该主机名称的URL的所有请求做出响应即可。然而,作为ISP本地名称服务的行为结果,不同的请求装置倾向于使用不同的IP地址,每当ISP本地名称服务使用缓存的主机名称解析时,其均旋转从授权名称服务器接收的IP地址的顺序。作为该行为的结果,将主机名称解析成含有多个IP地址的相对静态集可能倾向于跨在该相对静态集中的所有IP地址相对均匀地分布含有该主机名称的URL的请求。因此,与集群性能管理器协同工作的清单文件处理程序能够基于相对静态的主机名称解析来使用主机名称方案以使用从特定于至不太特定于集群至多集群至网络的灵活的主机名称系列来按任何请求量水平执行分段文件服务器的分配。
[0075] 基于HTTP的自适应流式传输视频传送协议的利用
[0076] 在一些情况下,主要实施例和/或次要实施例可以利用基于HTTP的自适应流式传输视频传送协议,诸如Apple的HTTP直播流式传输(HLS)协议、Adobe的HTTP动态流式传输(HDS)协议、运动图像专家组(MPEG)工作组开发的基于HTTP的动态自适应流式传输(DASH)和/或其他类似的协议,其已被设计为通过大型分布式HTTP网络,诸如互联网有效地工作。
[0077] 使用自适应流式传输协议,以多个比特率(例如,200Kbps、400Kbps、600Kbps等)将视频内容(文件或流)编码成数字文件;随后,将每个这样的带宽特定的数字文件一致地分段成小的连续的分段,通常为多秒分段(例如,每个分段可能是10秒长);在一组这样的与相同的视频内容项目相关的带宽特定的文件内,所有这样的带宽特定的文件均一致地进行分段,至少是在时间方面,以使得每个这样的带宽特定的文件的每个第n个分段表示原始视频文件或流的相同的时间部分(例如,每个带宽特定的文件的第一分段表示视频文件或流的前10秒)。终端用户装置设有一个以上的清单文件,有时称为清单文件或播放列表,其含有识别分段的URL或其他地址信息或以其他方式得知识别分段的URL或其他地址信息。分段通常是单独的文件或文件内的单独字节范围,且能够个别地进行请求和/或传送;共同地,分段在点播视频的使用情况下表示完整的视频文件或在线性视频的使用情况下表示连续的视频流。
[0078] 在终端用户装置上的视频回放组件相继地请求分段,其从给定的带宽版本开始,但随后则从一个带宽版本转换到另一个(如所请求的分段或在分段内,如由协议和视频回放组件提供的),其可以是更高或更低的带宽,如在到达包括分段的数据包的用户装置处测量的实际性能特征所允许或要求的。从一个带宽到另一个带宽的转换发生在所有带宽内相协调的预定点,其称为关键帧;这确保了当发生转换时,其发生在从一个带宽协调到另一个的点且因此改变了所显示视频的编码带宽,但并不改变所显示的实际视频内容。
[0079] 所请求的带宽分段的这种升档或降档使得视频回放组件利用能够有效地传送到用户装置的视频的最高带宽版本,如随着传送进行而在用户装置所测量的。使用最高带宽版本向用户提供了在该条件下可实现的最高视频清晰度;使用在该条件下能够有效地传送到用户装置的带宽版本确保了视频回放组件至少按播放视频的速率接收数据,以使得在等待需要继续进行回放的下一数据量的同时视频回放不会停止(或冻结)。因此,自适应流式传输协议被设计成向用户提供能够在回放视频时可用的条件(网络性能、服务器性能、服务提供商性能、其他基础设施资源性能和/或基础设施资源服务提供商性能)下连续(不会异常冻结)地进行播放的视频的最高清晰度。最高可传送带宽和连续的回放的这种组合表示在视频回放期间存在的条件下可获得的最佳整体质量的视频用户体验。因此,自适应流式传输协议也被设计成适应于发生在视频回放期间的条件下所发生的任何变化,例如,对在视频数据包的到达速率减慢的情况下所请求的视频带宽进行降档。总而言之,自适应流式传输协议提供了在视频回放时存在的条件下可能的视频用户体验的最佳整体质量并适应于随着视频回放发生时在该条件下的变化(如果有的话)。
[0080] 一旦(在点播视频的使用情况下)或随着(在线性视频的使用情况下)对视频进行编码和分段以及创建或更新清单文件,将清单文件提供给用户装置。通常,清单文件本身是由URL进行识别的。清单文件通常是文本文件,其含有用于其他清单文件的URL或用于视频分段文件的URL连同元数据(控制和描述性信息)。清单文件能够是可缓存的,这意味着其是静态的或相对静态的以及识别其的URL应导致在持续的时间段从数字服务或其服务提供商返回相同的清单文件;或清单文件可以是动态的,这意味着识别其的URL应导致从数字服务或其服务提供商返回能够根据一个请求至下一个而改变的清单文件。
[0081] 在Apple的HLS视频协议的背景下的描述
[0082] 现在将在Apple的HLS视频协议的背景下描述主要实施例和次要实施例。因此,下面所讨论的几个示例可以包括对HLS清单文件的引用。然而,应当理解,在主要实施例和次要实施例中也可以支持其他自适应流式传输协议,包括(但不限于)DASH、HDS和利用含有分段URL的清单文件的其他自适应流式传输协议,然而一些细节(例如,清单文件或分段文件的文件类型)可以根据用于HLS的那些而发生改变。其他实施例使用利用含有文件字节范围的清单文件的自适应流式传输协议,除了自适应流式传输协议之外的视频传送协议以及除了在本发明中稍后进行描述的视频流式传输协议之外的协议。
[0083] 在主要实施例和次要实施例中,为M3U8播放列表文件(且以文件扩展名.m3u8结束)的HLS清单文件以及为MPEG传输文件(且以文件扩展名.ts结束)的视频分段文件最初是照常进行制备的,通常是由数字服务或由为数字服务工作的基础设施服务提供商,例如,视频编码服务制备的。
[0084] HLS清单文件能够包括URL或其他HLS清单文件或能够包括视频分段文件的URL,在任一种情况下均还包括元数据;例如,用于给定视频的整体HLS清单文件可以含有用于给定视频的六个其他HLS清单文件的URL,那么其中的每一个则含有在给定的比特率下的用于该视频的分段URL。还可以有与相同的给定视频相关联的多个HLS清单文件或HLS清单文件集;例如,用于将视频传送到经移动无线网络连接的装置的用于给定视频的HLS清单文件可能含有三个HLS清单文件URL的集合,其中三个HLS清单文件中的第一个含有200Kbps的用于视频分段文件的URL,三个HLS清单文件中的第二个含有400Kbps的用于视频分段文件的URL,且三个HLS清单文件中的第三个含有600Kbps的用于视频分段文件的URL,而用于将相同的给定视频传送到经社区宽带网络连接的装置的用于相同的给定视频的第二HLS清单文件可能含有四个HLS清单文件URL的集合,其中四个HLS清单文件中的第一个含有200Kbps的用于视频分段文件的URL,四个HLS清单文件中的第二个含有600Kbps的用于视频分段文件的URL,四个HLS清单文件中的第三个含有1000Kbps的用于视频分段文件的URL,且四个HLS清单文件中的第四个含有1800Kbps的用于视频分段文件的URL。
[0085] 多个URL能够寻址相同的HLS清单文件、视频分段文件或其他对象
[0086] 在主要实施例和次要实施例中,给定的HLS清单文件(或其他对象,诸如视频分段文件)能够由多于一个的URL进行寻址,例如,当对清单文件处理程序提出对HLS清单文件(或其他对象,诸如视频分段文件)的请求时由第一URL进行寻址,当对数字服务所使用的内容传送网络提出对HLS清单文件(或其他对象)的请求时,由第二URL进行寻址,且当直接对数字服务提出对HLS清单文件(或其他对象)的请求时由第三URL进行寻址。
[0087] 要注意的是,当任何中介服务,例如清单文件处理程序的网络或数字服务的内容传送网络用于提供对任何对象或事物(包括HLS清单文件或视频分段文件)的请求时,对中介服务的URL请求通常将不同于中介服务能够用其直接从数字服务或从能够接收到其的另一个服务请求对象或事物的URL请求。这是因为当中介服务没有对象或事件时,其将需要提出请求,且在主要实施例和次要实施例中,这至少将发生在第一次从清单文件处理程序的网络请求HLS清单文件以及第一次从分段文件服务器的网络请求视频分段文件时。在这一点上,清单文件处理程序或清单文件处理程序的网络将请求HLS清单文件或(分别地)分段文件服务器或分段文件服务器的网络将请求视频分段文件,这是从数字服务或从另一个服务进行的(例如,如将看到的,在主要实施例和次要实施例中,向数字服务的内容传送网络而非数字服务本身提出一些URL请求)。如果对象,诸如HLS清单文件或视频分段文件仅能由单个URL进行寻址,基础设施组件的网络(包括其组件)则无法从另一个服务请求对象,这是因为所有对给定的URL的请求均来到基础设施组件的网络-基础设施组件的网络将从其本身请求对象,这是循环无限地进行而没有获得成功,这是非功能性的条件。
[0088] 在其他实施例中,使用不需要互联网标准URL的请求来由网络基础设施组件请求对象(包括但不限于HLS清单文件和视频分段文件)或将对象上传到基础设施组件网络,在任一种情况下均使得能够由单个URL来寻址对象。然而,这些实施例通常(但并不总是)在实践中没有其中能够由多于一个的URL来寻址对象且基础设施组件的网络能够使用第二URL来请求对象的实施例那么有效,在后者的实施例中接收到对该对象的包括第一URL的请求,这至少是因为(a)使用非互联网标准寻址方案的实施例对于数字服务提供商及其基础设施服务提供商而言通常没有使用互联网标准URL的实施例那么灵活,且(b)需要在能够通过基础设施组件的网络传送对象之前将对象上传到基础设施组件的网络的实施例需要(i)数字服务在发布URL之前完成和确认至基础设施组件的网络的对象上传,或(ii)在完成至基础设施组件的网络的对象上传和终端用户装置接收到发布的URL并发出对其的请求之间建立“竞争条件”;对于其中对URL的装置请求比对象至基础设施组件的网络的上传更快发生的所有终端用户而言,竞争为“丢失的”,其不良的结果是在基础设施组件的网络上找不到对象且因此用户体验不太令人满意。
[0089] URL的描述
[0090] 返回至主要实施例和次要实施例,对于给定的视频而言,用于HLS清单文件的发布的URL(即,用于提供给终端用户装置,例如提供给在装置上运行的应用的清单文件的URL,其是作为提供给在装置上的浏览器的HTML页面上的网页对象发布的,作为提供给在装置上的浏览器的网页对象目标发布的等)在发布的URL的主机名称字段中含有与清单文件处理程序的网络直接或间接相关联的主机名称。这通常将是与包含在寻址与相同的给定视频相关联的HLS清单文件的其他实例的其他URL,例如用于从数字服务直接请求给定的视频的URL(用于直接向数字服务提出任何种类的请求的URL将在下文中称为“数字服务请求URL”)中的主机名称字段中的主机名称不同的主机名称。在下列的段落中描述了用于HLS清单文件的URL结构的几个示例。
[0091] 对于使用互联网域digserv.com的数字服务而言,用于请求给定的HLS清单文件的数字服务请求URL(在此提醒,这是用于直接从数字服务请求给定的HLS清单文件的URL)可能是:
[0092] http://indexfiles.digserv.com/firstindexfile.m3u8
[0093] 对于使用互联网域indexhandler.net的清单文件处理程序的网络而言,为了从清单文件处理程序的网络请求给定的HLS清单文件,发布的URL包含与清单文件处理程序的网络相关联的主机名,其在本示例中为:
[0094] http://digserv.indexhandler.net/firstindexfile.m3u8
[0095] 主机名称digserv.indexhandler.net位于域indexhandler.net内,且(为了示出主要实施例和次要实施例的可选方面)包括指定数字服务或与其相关联的字符串,以便在与清单文件处理程序的网络相关联的域内创建被指定用于数字服务的子域。
[0096] 然而,指定数字服务的字符串不需要包括在主机名称中;可选地,其能够包括在URL中的其他地方,例如在路径中。这种发布的URL的示例为
[0097] http://indexhandler.net/digserv/firstindexfile.m3u8
[0098] 阐明主要实施例和次要实施例的另一可选方面,在发布的URL中指定数字服务的字符串也能够是包含在数字服务请求URL中的主机名称(在此提醒,URL用于直接从数字服务请求给定的HLS清单文件)。这种发布的URL的示例为
[0099] http://digserv.indexhandler.net/indexfiles.digserv.com/firstindexfile.m3u8
[0100] 这个URL可能看起来令人困惑,这是因为其看起来具有两个主机名称;然而,在URL中仅有一个主机名称;在主机名称之后的所有字符,无论其对于人眼来说看起来如何,其均为URL路径的一部分;因此,在这个示例中,digserv.indexhandler.net为URL中的主机名称,且紧跟其后的字符串indexfiles.digserv.com是URL路径的一部分,正如字符firstindexfile是URL路径的一部分一样。然而,要注意的是,该示例发布的URL在其中含有字符串,其包括用于直接从数字服务请求给定的HLS清单文件的完整URL;该“在第一URL内的第二URL字符串”在一些实施例中能够是有用的。
[0101] 作为发布的主机名称,使用这个结构并使用清单文件处理程序域而不使用子域的另一个示例发布的URL为
[0102] http://indexhandler.net/indexfiles.digserv.com/firstindexfile.m3u8[0103] 可选地,发布的URL能够间接地与清单文件处理程序的网络相关联,例如,通过使用CNAME来进行。
[0104] 在发布的URL中的主机名称能够直接地与清单文件处理程序的网络相关联(在上述的示例中,为digserv.indexhandler.net和indexhandler.net)或在主要实施例和次要实施例的另一个可选方面中,其能够间接地与清单文件处理程序的网络相关联,例如,通过使用为用于与清单文件处理程序的网络相关联的互联网域的别名的主机名称来进行。通常,这是通过使用作为用于使用别名主机名称来表示标准主机名称的互联网DNS标准方法的CNAME(发音为“see-name”)来实施的。下面示出了与上述示例相一致且使用CNAME的示例。
[0105] 用于从清单文件处理程序的网络请求给定的HLS清单文件的发布的URL可能是:
[0106] http://alias.digserv.com/firstindexfile.m3u8
[0107] 在这个示例中,主机名称alias.digserv.com不直接与清单文件处理程序的网络相关联。当由授权用于该主机名称的DNS名称服务器(其通常是由数字服务或DNS服务提供商运行的)从本地DNS名称服务器接收对alias.digserv.com的DNS解析请求时,授权DNS名称服务器返回在数据字段中含有标准主机名称的CNAME记录,且标准主机名称为digserv.indexhandler.net。然后,请求的本地名称服务器发出用于标准主机名称解析的新的DNS请求;一旦本地名称服务器接收到含有一个以上的IP地址的响应,其将把对发布的URL的请求发送到这些IP地址中的一个。因此,用于发布的URL中的主机名称alias.digserv.com虽然并不直接与清单文件处理程序的网络相关联,但却间接地与清单文件处理程序的网络相关联。
[0108] 要注意的是,未将标准主机名称代入发布的URL中以替换别名主机名称;在对HLS清单文件的最终URL请求中,发布的URL是由请求装置发送的,如已进行了发布;标准主机名称仅用于DNS解析(由本地名称服务器进行;在典型的运行中,本地名称服务器决不会将标准主机名称发送到请求装置)。
[0109] CNAME过程至少部分是有用的,这是因为(a)当数字服务发布含有别名主机名称的URL时,如果且当发布的URL对于人类用户来说是可见的(例如,如果且当其在网页上是可见的),发布的URL对于人类用户来说看起来是指代数字服务及其服务器而不是清单文件处理程序的网络,而同时,对发布的URL的请求实际上将被发送到清单文件处理程序的网络,以及(b)发布含有别名主机名称的URL的数字服务能够从清单文件处理程序的一个网络快速且容易地变成清单文件处理程序的另一个网络,而不会改变其所有发布的URL,这是简单地通过改变其(或其DNS服务提供商)响应于对别名主机名称的DNS解析请求而返回的标准主机名称而进行的。例如,使用上述与CNAME相关的示例,数字服务可能会改变其在CNAME记录中从digserv.indexhandler.net返回到digserv.alternative.net的标准主机名称;在不改变任何发布的URL的情况下,随后将使用互联网域alternative.net将对发布的URL的请求引向清单文件处理程序的网络。
[0110] 名称空间冲突
[0111] 如在这些示例中所示,发布的URL包括指定数字服务的字符串,其位于发布的URL中的主机名称中或在URL路径中或在URL的另一部分中,例如在URL中的查询字符串中。包括在发布的URL中指定数字服务的字符串消除了跨向多个数字服务提供服务的基础设施组件的运行网络偶然或随机地复制URL(有时称为“名称空间冲突”)的任何风险;通过包括在其发布的URL中指定其本身的字符串,使用基础设施组件的网络的每个数字服务自由地使用其在发布的每个URL的剩余部分中选择的任何其他字符串。
[0112] 因此,每个数字服务负责在由指定其的字符串划界的名称空间内避免名称空间冲突,而基础设施组件的网络的运营商则负责确保在指定数字服务的字符串中没有冲突。由于使用基础设施组件的网络的数字服务的数量通常不是难以管理的大量,在主要实施例和次要实施例中,基础设施组件的网络的运营商管理指定数字服务的字符串,其将字符串分配至每个数字服务或批准由每个数字服务选择的字符串。在其他实施例中,指定数字服务的字符串为GUID,或使用其他技术以在单独的数字服务使用的字符串中避免冲突。
[0113] 清单文件处理程序
[0114] 在主要实施例和次要实施例中,存在有清单文件处理程序的多个分布式实例,其可选地被组织成集群,其中每个集群包括多个清单文件处理程序实例;与清单文件处理程序的网络相关联的主机名称由DNS授权名称服务器基于下列中的任一个或其任何组合来解析成一个以上的清单文件处理程序集群或一个以上的特定清单文件处理程序的IP地址:
[0115] ·清单文件处理程序或清单文件处理程序集群的网络位置,例如相对接近于(网络术语)(意味着能够通过网络快速进行通信的清单文件处理程序或清单文件处理程序集群,例如具有比至少一些其他清单文件处理程序或清单文件处理程序集群能够实现的总延迟更少的总延迟)提出主机名称解析请求的本地名称服务器的网络位置,或请求用户装置的估计的网络位置,或清单文件处理程序或清单文件处理程序集群能够从其接收请求的HLS清单文件、与数字服务相关联的HLS清单文件或一般的HLS清单文件的网络位置,或数字服务的网络位置,或与数字服务相关联的广告装置或服务器的网络位置,或与数字服务相关联的另一个网络位置中的任一个或其任何组合;
[0116] ·清单文件处理程序或清单文件处理程序集群的地理位置;
[0117] ·清单文件处理程序或清单文件处理程序集群与特定网络,例如,提出主机名称解析请求的本地名称服务器所连接到的接入网络的关联,前者(直接或间接)至后者的连接或前者在后者内的位置;
[0118] ·在清单文件处理程序或清单文件处理程序集群和下列中的任一个或其任何组合之间的网络性能:提出主机名称解析请求的本地名称服务器,请求用户装置的估计的网络位置,与请求用户装置或提出主机名称解析请求的本地名称服务器相关联的网络位置,清单文件处理程序或清单文件处理程序集群能够从其接收请求的HLS清单文件中的一些或所有、与数字服务相关联的HLS清单文件中的一些或所有或一般的HLS清单文件的网络位置,数字服务的网络位置,与数字服务相关联的广告装置或服务器的网络位置,或与数字服务相关联的另一个网络位置;
[0119] ·清单文件处理程序或清单文件处理程序集群的当前和预期的可用性和利用性,包括(但不限于)用于处理HLS清单文件请求的足够容量的可用性;
[0120] ·具有先前已处理的对请求的HLS清单文件的请求,对与相同的视频对象相关联的HLS清单文件的请求,对与相同数字服务相关联的HLS清单文件的请求或对类似的HLS清单文件的请求的清单文件处理程序或清单文件处理程序集群;
[0121] ·与和点播视频相关联的HLS清单文件,和线性视频相关联的HLS清单文件或和点播视频和线性视频的组合相关联的HLS清单文件相关联或为其进行优化的清单文件处理程序或清单文件处理程序集群;
[0122] ·清单文件处理程序或清单文件处理程序集群与包含在主机名称中的子域或与和主机名称相关联的数字服务的关联;
[0123] ·由提出主机名称解析请求的本地名称服务器使用的接入网络;
[0124] ·提出主机名称解析请求的本地名称服务器的网络位置或地理位置。
[0125] 在其他实施例中,存在有清单文件处理程序的多个分布式实例,其可选地被组织成集群,其中每个集群包括多个清单文件处理程序实例,且与清单文件处理程序的网络相关联的主机名称由DNS授权名称服务器使用下列中的任一个或其任何组合被解析成一个以上的特定清单文件处理程序或清单文件处理程序集群的IP地址:循环DNS解析,互联网任播IP地址编号方案,循环DNS解析连同互联网任播IP地址编号方案,随机DNS解析,或将与清单文件处理程序的网络相关联的主机名称解析成特定清单文件处理程序或清单文件处理程序集群的IP地址并在一组清单文件处理程序中分布连接的另一种技术。在其他实施例中,存在有位于单个位置中的清单文件处理程序的多个实例,且由DNS授权名称服务器使用下列中的任一个或其任何组合将与清单文件处理程序的网络相关联的主机名称解析成特定清单文件处理程序的IP地址:在主要实施例和次要实施例中所公开的用于将与清单文件处理程序相关联的主机名称解析成特定清单文件处理程序或清单文件处理程序集群的IP地址的技术或具有清单文件处理程序的多个分布式实例的其他实施例。在其他实施例中,仅存在有清单文件处理程序的单个实例,且由DNS授权名称服务器将与清单文件处理程序的网络相关联的主机名称解析成与该实例相关联的IP地址。
[0126] 在其他实施例中,清单文件处理程序是通过其他方法调用的,其他方法包括解析在发布的URL中的主机名称的替代方法(诸如最初返回DNS名称服务器记录[其中DNS记录类型被设置为“NS”],其识别随后将把主机名称直接解析成清单文件处理程序或可选的清单文件处理程序集群的名称服务器),这是通过发出HTTP 302重定向消息(指示装置请求在第一请求的URL处请求第二URL的标准HTTP消息)或其他HTTP消息,通过使用直接或间接寻址清单文件处理程序的网络、清单文件处理程序的集群或组或在发布的URL中的特定清单文件处理程序(例如,通过将与清单文件处理程序相关联的IP地址放置在URL的主机字段中)的另一种方法,通过使用除了URL以外的方法寻址HLS清单文件,通过把请求代理至清单文件处理程序,通过使用网交换机以将对HLS清单文件的请求切换到清单文件处理程序(包括基于请求HLS清单文件的URL的内容),通过拦截请求和将其转移至清单文件处理程序,通过将清单文件处理程序直线地放置在请求装置和清单文件源之间或通过将HLS清单文件请求引向清单文件处理程序的其他方法来进行的。在这些其他实施例中,被选择用于接收HLS清单文件请求的清单文件处理程序是基于下列中的任一个或其任何组合:如在主要实施例和次要实施例中公开的用于选择清单文件处理程序的基础;在HLS清单文件请求消息中识别的用户代理;请求用户装置所使用的接入网络;与请求用户装置相关联的IP地址或IP地址的一部分;或请求用户装置的网络位置、地理位置或全球定位系统(GPS)坐标。
[0127] 在其他实施例中,这些公开的技术中的一个(如在主要实施例和次要实施例中所公开的,具有清单文件处理程序的多个分布式实例的其他实施例,具有位于单个位置上的清单文件处理程序的多个实例的其他实施例,具有清单文件处理程序的单个实例的其他实施例以及其中通过其他方法调用清单文件处理程序的其他实施例)与这些技术中的一个以上的其他技术相结合以将请求引向清单文件处理程序。例如,这些其他实施例中的一些包括:清单文件处理程序的多个分布式实例,其具有在每个位置上的清单文件处理程序的多个实例以及在每个位置上的交换机;这些示例性其他实施例的名称服务器将与清单文件处理程序的网络相关联的主机名称解析成一个以上的交换机的IP地址,其选择与相对接近(网络术语)本地名称服务器的清单文件处理程序的集群的位置相对应的交换机并提出主机名称的解析请求;以及随后从请求用户装置接收HLS清单文件请求的交换机基于下列中的任一个或其任何组合选择清单文件处理程序(并将请求切换至所选的清单文件处理程序):
[0128] ·清单文件处理程序与交换机所关联的基础设施组件的相同集群的关联;
[0129] ·清单文件处理程序与交换机所关联的基础设施组件的不同集群的关联,且与清单文件处理程序相关联的集群更接近(网络术语)请求用户装置的网络位置;
[0130] ·清单文件处理程序与交换机所关联的基础设施组件的不同集群的关联,且与清单文件处理程序相关联的集群对于请求用户装置的网络位置或与请求用户装置相关联的网络位置来说表现得更好(网络术语);
[0131] ·清单文件处理程序的当前和预期的可用性和利用性,包括(但不限于)用于处理HLS清单文件请求的足够容量的可用性;
[0132] ·具有先前已处理的对请求的HLS清单文件的请求,对与相同的视频对象相关联的HLS清单文件的请求,对与相同数字服务相关联的HLS清单文件的请求或对类似的HLS清单文件的请求的清单文件处理程序;
[0133] ·清单文件处理程序与包含在主机名称中的子域或与和主机名称相关联的数字服务或与请求的HLS清单文件的关联;
[0134] ·清单文件处理程序与HLS清单文件请求URL的一部分或HLS清单文件请求消息的内容,诸如在HLS清单文件请求消息中识别的用户代理的关联;
[0135] ·清单文件处理程序与和点播视频相关联的HLS清单文件,和线性视频相关联的HLS清单文件或和点播视频和线性视频的组合相关联的HLS清单文件的关联或为其进行的优化;
[0136] ·请求用户装置或用户代理;
[0137] ·请求用户装置所使用的接入网络;
[0138] ·在清单文件处理程序中的HLS清单文件请求的循环轮转;
[0139] ·HLS清单文件请求在清单文件处理程序中的确定性分布,例如使用协议,诸如将HLS清单文件请求URL或其一部分作为输入的缓存阵列路由协议(CARP);或(m)HLS清单文件请求在清单文件处理程序中的随机分布。
[0140] 确定接近(网络术语)另一个位置的位置或确定网络距离
[0141] 在主要实施例和次要实施例(以及除了主要实施例和次要实施例之外的本文所述的其他实施例)中,各种实体被描述、选择、指定或认为是“接近(网络术语)”另一个实体;这种实体包括但不限于:基础设施组件网络的组件;基础设施服务提供商、ISP或其他接入网络、中间网络、互联网、包括互联网的网络和移动网络的组件或与其相关的组件;以及其他与网络相关的组件和位置。可以按这种方式描述、选择、指定或认为的与基础设施组件的网络相关的实体包括但不限于清单文件处理程序、分段文件服务器、DNS授权名称服务器、集群性能管理器、服务提供商管理器、性能管理程序、网络化装置诸如交换机和路由器、可选的NIF消息处理程序、可选的分段重定向处理器、可选的库存储服务器、其他基础设施组件、这些中的任一种的组或集群、一般的基础设施组件、路由器、交换机和与基础设施组件的网络相关的其他基础设施元件。
[0142] 确定接近(网络术语)第二位置或比其他位置更接近(网络术语)第二位置的位置或确定在第一网络位置和第二网络位置(例如,请求装置和一个以上的基础设施组件)之间的距离(网络术语)能够通过使用下列全部或部分中的任一个或其任何组合来实施:两个网络位置中的一个或两个的IP地址;与两个网络位置中的一个或两个相关的其他互联网地址信息,诸如IP地址块、IP地址范围或自治系统号码;与两个网络位置中的一个或两个相关的互联网路由信息,诸如AS间或AS内的路由表;与两个网络位置中的一个或两个相关的连接或利用信息(例如,与两个网络位置中的一个或两个相关的一个以上的路由器端口的容量或一个以上的路由器端口的利用);两个网络位置之间的性能测量,包括速度、吞吐量、延迟、抖动或其他网络性能特征,其中包括所测量的一对位置的两个位置中的每一个为确定在其之间的距离或确定其接近度的位置中的任一个或为与确定在其之间的距离或确定其接近度的位置中的一个相关的位置;网络地图;网络数据库,其包括网络地址、地址范围或其他网络信息连同位置信息、距离信息、性能信息或能够用于确定在两个位置之间的距离或一个位置与另一个接近度的其他信息。
[0143] 网络性能测量能够包括下列中的任一个或其任何组合:当前、近期或过去的网络性能测量;在相当时间段,诸如小时、星期几、周或月份内的网络性能测量;或在相当的网络条件限定的周期内的网络性能测量,诸如对网络上的总负载的测量或对网络的给定区域或网络中的点上的负载的测量;或在由相当的其他条件限定的周期内的网络性能测量,诸如“感恩节之后的星期五”、“超级碗星期天”、“FIFA世界杯足球赛期间”或“与主要软件更新发行同时发生”。
[0144] 除了请求HLS清单文件的URL之外的URL请求
[0145] 返回到主要实施例和次要实施例,主要实施例和次要实施例的可选方面为处理除了请求HLS清单文件的URL之外的URL请求,诸如在请求HLS清单文件的URL之前的URL请求或不直接请求HLS清单文件的其他URL的能。主要实施例和次要实施例的这个可选方面的重要示例为由装置检测的数字服务进行的使用。在一些设置中,一些数字服务发布单个URL,其将跨所有装置类型和视频协议提供至给定视频的接入,这由通过数字服务、基础设施服务提供商或另一个实体所提供的装置检测服务所支持。例如,对于许多数字服务提供商而言,需要发布移动网站,其中可从多个不同的移动装置类型及其各自的浏览器接入给定的移动网站页面(以这种方式,数字服务仅需要开发、维护和更新单个移动网站而不是多个移动网站,其中的一个用于每个不同的装置类型);这在技术上来说可以简单地在HTML和HTML5中执行且在本领域中是很好理解的。然而,跨装置的网站页面可能含有当被请求时将导致视频回放的URL;然而,虽然网站页面可以很容易地由跨不同装置为可用的各种浏览器进行渲染,但不同的装置通常使用不同的视频协议。那么,问题则是如何发布能够跨多个装置进行渲染且含有使用那些多个装置中的每一个的特定视频协议而导致给定视频的回放的URL的网页。
[0146] 对这种问题的一个解决方案是发布接入装置检测服务的单个URL,该装置检测服务随后检测装置类型(通常是通过检查与其中发送URL的HTTP请求一起包括在内的用户代理标识符来进行的)并返回指示装置请求另一个URL的HTTP 302重定向消息(该返回的URL有时称为“重定向URL”以将其与最初请求的URL区分开);重定向URL通常是特定于装置的视频协议的(重定向URL不一定是,例如,可以导致另一个HTTP 302重定向消息的,然而,目前多个按顺序的HTTP 302重定向不是跨所有装置受到支持的或被所有制造商支持的,且因此通常在此时不进行实施)。在Apple HLS视频协议的背景下进行描述的情况下,那么在这种场景下,初始URL则不会用于HLS清单文件且不会以文件扩展名.m3u8结束。
[0147] HLS清单文件
[0148] 继续讨论主要实施例和次要实施例,在此提醒(且如之前所讨论的),HLS清单文件可以包括其他HLS清单文件的URL或可以包括视频分段文件的URL(在任一情况下,连同元数据)。为了清楚和可读性,本发明将使用下列指定:
[0149] ·从数字服务(或从数字服务的基础设施服务提供商或另一个清单文件提供商)获得的HLS清单文件将称为“源”HLS清单文件;
[0150] ·由清单文件处理程序配置的(通常是响应于源于用户装置的请求且通常将响应于请求而返回到装置的)HLS清单文件将称为“发出的”HLS清单文件;
[0151] ·包括其他HLS清单文件(连同控制、描述性和其他信息)的URL的HLS清单文件将称为“主”HLS清单文件;
[0152] ·包括视频分段文件(连同控制、描述性和其他信息)的URL的HLS清单文件将称为“变体”HLS清单文件;
[0153] ·为变体HLS清单文件的URL的包含在主HLS清单文件内的URL将称为“变体HLS清单文件URL”。
[0154] 继续讨论主要实施例和次要实施例,为了发起HLS视频的回放,请求装置发送对HLS清单文件的初始装置请求;为了清楚起见,这是对与请求装置发送的特定视频相关联的HLS清单文件的第一请求。清单文件处理程序通过(a)确定其是否可用于处理与包含在对HLS清单文件的初始装置请求中的URL相关联的源HLS清单文件的完整当前集合,以及(b)分配会话ID来开始处理该初始装置请求。现在将更详细地描述这些中的每一个。
[0155] 源HLS清单文件
[0156] 当清单文件处理程序接收到对HLS清单文件的初始装置请求时,如果清单文件处理程序具有可用的与初始HLS清单文件请求相关的源HLS清单文件的完整当前集合,清单文件处理程序将把HLS清单文件配置成响应于请求进行返回。与对HLS清单文件的初始装置请求相关的源HLS清单文件集合包括作为对HLS清单文件的初始装置请求的结果而能够(从数字服务、其基础设施服务提供商或另一个清单文件提供商)获得的所有HLS清单文件,其包括直接或间接引用的任何和所有变体HLS清单文件(例如,通过其他清单文件进行;HLS当前仅支持变体清单文件的单个集合以及含有不支持的其他变体HLS清单文件的URL的变体HLS清单文件;然而,这在将来和/或在除了HLS以外的自适应流式传输视频协议的背景下可能发生改变)。例如,能够通过解析最初请求的HLS清单文件并请求本文所引用的变体HLS清单文件(如果有的话)来确定与对HLS清单文件的初始装置请求相关的源HLS清单文件的集合。
[0157] 在主要实施例和次要实施例的可选方面中,可以通过发起对初始请求的HLS清单文件和/或在对HLS清单文件的初始装置请求之前的非索引文件URL的额外请求;并指定在那些额外的请求中的HTTP X-Forwarded-For头中的替代的用户代理和IP地址,从而确定用于不同装置类型和不同接入网络或接入网络类型或装置类型和接入网络类型的组合的初始请求的HLS清单文件的其他可用版本(如果有的话)的可用性并进行检索;随后解析返回的主HLS清单文件并请求包含在第一返回的主HLS清单文件中的任何另外的变体HLS清单文件,再次指定在那些请求中HTTP X-Forwarded-For头中的替代用户代理和IP地址并继续该过程直到不再发现变体HLS清单文件为止来由清单文件处理程序(或在其他实施例中,由另一个基础设施组件,诸如NIF消息处理程序)执行请求HLS清单文件的完整当前集合的过程。
[0158] 在主要实施例和次要实施例的可选方面中,也可以通过发起对初始请求的HLS清单文件的额外请求并在这些额外的请求中指定向数字服务提供基础设施资源服务或以其他方式与其相关联的额外的基础设施服务提供商来由清单文件处理程序(或在其他实施例中,由另一个基础设施组件,诸如NIF消息处理程序)来执行该过程。
[0159] 可替代地或额外地,在完成自适应流式传输视频协议的编码和分段过程(如前所述)之后,还能够立即将源HLS清单文件的完整集合,例如从数字服务、其基础设施服务提供商或另一个清单文件提供商提供到清单文件处理程序。
[0160] 如果清单文件处理程序尚未具有可用的与对HLS清单文件的初始装置请求相关的源HLS清单文件的完整当前集合,例如,如果这是对请求的HLS清单文件的第一请求且因此清单文件处理程序之前从未请求或接收到源HLS清单文件的集合,或作为另一个示例,如果清单文件处理程序在存储器中具有源HLS清单文件的集合,但所存储的源HLS清单文件的集合含有已过期的、尚未更新的或别的不是最新的至少一个HLS清单文件,那么清单文件处理程序(或另一个基础设施组件)将提出对源HLS清单文件的集合中的所有或所需的部分的请求,该源HLS清单文件的集合与对HLS清单文件的初始装置请求相关。当清单文件处理程序具有和/或已接收到源HLS清单文件中的足够部分以继续处理时,处理继续进行;因此,能够在处理继续进行的同时完成对源HLS清单文件的集合中的所有或所需部分的请求的集合。可选地,清单文件处理程序能够等待直到其在处理继续进行之前接收到源HLS清单文件集合中的所有。
[0161] 为了提出对源HLS清单文件的集合中的所有和所需部分的数字服务URL请求,清单文件处理程序将为每个这样的请求确定要在数字服务URL请求中使用的URL(该URL之后将称为“数字服务URL”)。为了向与数字服务相关联的基础设施服务提供商提出对源HLS清单文件的集合中的所有和所需部分的URL请求,清单文件处理程序将为每个这样的请求确定要在服务提供商URL请求中使用的URL(该URL之后将称为“服务提供商URL”)。为了组成数字服务URL和服务提供商URL,清单文件处理程序(和其他基础设施组件)使用一个以上的主机名称权限记录,其包含在主机名称权限文件中。
[0162] 在对HLS清单文件的初始装置请求的情况下,清单文件处理程序使用与包含在请求的URL中识别数字服务的字符串相关的主机名称权限记录(包含在主机名称权限文件中);在此提醒,该字符串能够是包含在请求的URL中的主机名称或可选地,该字符串能够包括在URL路径中或能够包括在URL中的其他地方。清单文件处理程序在主机名称权限文件中查找该字符串,读取匹配的主机名称权限记录,从主机名称权限记录检索要在数据服务URL中使用的主机名称且随后组成用于数字服务URL请求的URL并提出请求。如果包含在对HLS清单文件的初始装置请求中的URL是之前所讨论的含有“在第一URL内的第二URL字符串”的类型,那么所请求的URL已含有组成数字服务请求URL(其通常是在“第一URL”内的“第二URL字符串”加上HTTP方法,“http://”)所需的所有字符串;在这种情况下,虽然不需要额外的字符串,但主机名称权限记录仍用于验证数字服务被授权使用清单文件处理程序的网络(如果在用于识别数字服务的字符串的主机名称权限中没有条目,则不授权数字服务使用清单文件处理程序的网络,不执行对HLS清单文件的初始装置请求的进一步的处理,且将HTTP 404未找到文件的错误代码返回到请求装置)。
[0163] 在HLS清单文件为变体HLS清单文件的情况下,对变体HLS清单文件的数字服务URL通常将是源变体HLS清单文件URL(如前所述,其包含在从数字服务、其基础设施服务提供商或另一个清单文件提供商直接接收的主HLS清单文件中);在其他情况下,主HLS清单文件将包括服务提供商URL而不是数字服务URL。如果主HLS清单文件包含数字服务URL,但却从数字服务的基础设施服务提供商(而不是直接从数字服务)检索源变体HLS清单文件的,那么服务提供商URL可以改为部分地从包含在源HLS清单文件中的数字服务URL派生,这通常是通过改变在源变体HLS清单文件URL中的主机名称来进行的。
[0164] 例如,为了将数字服务URL请求引向数字服务所使用的内容传送网络,如果源变体HLS清单文件URL是能够用于从数字服务直接请求变体HLS清单文件的URL,那么则可以对其进行修改以用识别内容传送网络(也可能需要对URL路径进行一个以上的添加或修改;通常,派生将数字服务请求引向基础设施服务提供商诸如内容传送网络所需的所有这样的修改是预先已知的,可重复的且可适应于URL组,其可能包括与给定的数字服务相关的所有服务提供商URL)或与其直接或间接相关联的主机名称替换数字服务的主机名称。
[0165] 在主要实施例和次要实施例中,清单文件处理程序使用与数字服务相关的主机名称权限记录(其通常在主机名称权限文件内由识别数字服务的字符串进行识别)以确定要包括在服务提供商URL内的主机名称,确定正确配置数字服务URL(包括数字服务URL的路径部分)所需的任何额外的信息以及正确配置数字服务URL请求消息。在主要实施例和次要实施例中,识别数字服务的字符串包含在请求的URL中或包含在源变体HLS清单文件URL中,而在其他实施例中,识别数字服务的字符串可以是另一个字符串。
[0166] 主机名称权限记录和主机名称权限文件
[0167] 更详细地描述如在主要实施例和次要实施例中实施的主机名称权限记录和主机名称权限文件,提出数字服务URL请求的基础设施组件(包括清单文件处理程序和分段文件服务器)可以使用一个以上的主机名称权限记录连同提出数字服务URL请求。在主要实施例和次要实施例中,主机名称权限记录是在主机名称权限文件中进行维护的,其是跨使用主机名称权限记录的基础设施组件同时进行更新的。能够按至少三种方式使用主机名称权限记录:(a)当需要一个时,建立与发布的URL主机名称和/或插入URL中且能够用于构建与接收的发布的URL请求相对应的用于数字服务URL请求的适当的URL的字符串相对应的数字服务URL主机名称;(b)确立给定的数字服务被授权使用基础设施组件的网络,且在清单文件处理程序的情况下,确定给定的数字服务被授权使用清单文件处理程序的网络,这在前述的主要实施例和次要实施例的可选方面中是特别重要的,在该可选方面中,包含在用于HLS清单文件的初始装置请求中的URL具有如之前所讨论的含有“在第一URL内的第二URL字符串”的类型,其中由基础设施组件接收的发布的URL在其中含有完整的字符串,其包括用于数字服务URL请求中的数字服务URL;以及(c)作为用于非清单文件URL请求和其他类似的URL请求的额外的主机名称和字符串的存储库和来源。
[0168] 要注意的是包含在主机名称权限文件中的主机名称权限记录可以连同在URL请求,例如对从终端用户装置接收的HLS清单文件的初始装置请求中接收的发布的URL一起使用。当数字服务使用CNAME技术连同其发布的URL,如之前所描述的,出现在发布的URL中的主机名称不是由DNS授权名称服务器解析的主机名称;然而,清单文件处理程序的网络可以知道在数字服务的URL中发布的主机名称或可替代地可以知道识别数字服务并存在于数字服务的发布的URL中的另一个字符串,这是因为这些中的至少一个将用于与该数字服务相关联的主机名称权限记录中。
[0169] 可选地,主机名称权限文件能够进行加密、数字签名、与哈希值结合使用或类似地受到未授权方的保护以免发生窜改。考虑到主机名称权限文件在视频传送过程中的作用-至少是授权,以及在使用识别不是主机名称的识别字符串的情况下,在功能上启用源清单文件和视频分段文件的检索-这个增加的安全级别进一步增加了获得至基础设施组件的网络的未授权接入以及使用该网络的难度。
[0170] 在其他实施例中,主机名称权限记录是在多个主机名称权限文件中进行维护的,其中主机名称权限文件中的每一个是跨使用主机名称权限文件的基础设施组件同时进行更新的且包括那些基础设施组件所使用的主机名称权限记录;例如,单独的主机名称权限文件可以为每个单独类型的基础设施组件进行维护(例如,用于清单文件处理程序的主机名称权限文件以及用于分段文件服务器的单独的主机名称权限文件等),或作为另一个示例,单独的主机名称权限文件可以为其中运行基础设施组件的网络的每个单独区域进行维护(例如,用于北美的区域性主机名称权限文件,用于欧洲的单独的主机名称权限文件,用于中国的单独的主机名称权限文件以及用于世界其他地方的单独的主机名称权限文件)。
[0171] 在其他实施例中,主机名称权限记录是在按另一种方式管理的多个主机名称权限文件中进行维护的;是作为单独的记录进行维护的而不是汇总到文件中;是经一个以上的运行在其中的API接入的或是由基础设施组件网络的运营商提供的;是经由使用基础设施组件的网络的数字服务运行的一个以上的API接入的;和/或是经由除了使用基础设施组件的网络的数字服务之外的各方所运行的一个以上的API接入的。
[0172] 在其他实施例中,根本未使用主机名称权限记录。然而,要注意的是这些其他的实施例将需要(a)不限制对被授权使用基础设施组件网络的数字服务的使用,或(b)使用其他认证技术,诸如数字签名的URL、对私有网络地址空间的运行限制、接入控制列表以及其他认证技术。一个示例为支持之前所讨论的含有“在第一URL中的第二URL字符串”但却不使用主机名称权限记录或其等同物以确认数字服务被授权使用清单文件处理程序的网络的URL的类型的基础设施组件的网络;这种系统将(a)不限制对授权的数字服务的使用,这是因为任何数字服务可以简单地按之前描述的创建“在第一URL中的第二URL字符串”的方式将清单文件处理程序的主机名称插入至其URL中,如已注意到的,其含有在不使用额外的输入且因此不使用将导致被处理的URL以及由基础设施组件的网络提供服务的视频请求的授权机制的情况下创建数字服务URL所需的所有字符;或(b)需要另一种认证技术。
[0173] 在其他实施例中,一些基础设施组件使用所述的主机名称权限记录,而其他基础设施组件则不使用主机名称权限记录,且因此所述的不使用主机名称权限记录的基础设施组件使用一个以上的其他认证技术或不限制对授权数字服务的使用。
[0174] 源HLS清单文件(续)
[0175] 可选地,请求与对HLS清单文件的初始装置请求相关的源HLS清单文件的完整当前集合中的所有或所需部分的过程可以进一步进行扩展以寻址对HLS清单文件的初始装置请求的已知、预期或可能的变化。如前面已描述的,在一些情况下,可能有与相同的给定视频相关联的多个HLS清单文件集,例如,用于寻址在装置和连接中的变化,诸如之前提供的示例,其中与相同的给定视频相关联的不同HLS清单文件集用于将给定的视频在第一种情况下传送至经移动无线网络连接的装置且在第二种情况下传送至经社区宽带网络连接的装置。在主要实施例和次要实施例的这个可选的方面中,清单文件处理程序、NIF消息处理程序或其他基础设施组件还提出了一个以上的额外的HTTP请求,其包括适当地进行格式化的请求URL,其结合下列中的一个或两个:(a)指定除了在对HLS清单文件的初始装置请求中指定的用户代理之外的用户代理,和/或(b)指定除了与请求用户装置相关联的网络之外的一个以上的其他网络,包括通过利用一个以上的其他HTTP头(诸如HTTP X-Forwarded-For头)并包括与这种其他网络或其他网络识别信息相关联的IP地址。
[0176] 可选地,与对HLS清单文件的初始装置请求相关的或与对HLS清单文件的初始装置请求的所有可能的有意义的变化相关的源HLS清单文件的完整当前集合能够规则、定期或按需地进行请求,这是与对HLS清单文件的任何装置请求,诸如对HLS清单文件的初始装置请求或对更新的HLS清单文件的装置请求分开地,诸如提前进行请求的。例如,在次要实施例中(在此提醒,其聚焦于线性视频内容的传送),相对于对更新的HLS清单文件的任何装置请求提前地请求对HLS清单文件的更新可能是有利的。
[0177] 可替代地或额外地,在完成编码和分段过程(如前面为自适应比物率流式传输所述的)之后,还能够立即将源HLS清单文件的完整当前集合,例如从数字服务、其基础设施服务提供商或另一个清单文件提供商提供到清单文件处理程序。
[0178] 在其他实施例中,清单文件处理程序通过确定其是否可用于处理源HLS清单文件的完整当前集合的所需部分(与包含在对HLS清单文件的初始装置请求中的URL相关联)来开始处理对HLS清单文件的初始装置请求,且如果是的话,则继续下一步而不用请求源HLS清单文件的完整当前集合的任何其他部分;在这些实施例中,仅根据需要请求源HLS清单文件的完整当前集合中的部分。
[0179] 分配会话ID
[0180] 返回至主要实施例和次要实施例,如前所述,清单文件处理程序可以通过(a)确定其是否可用于处理与包含在对HLS清单文件的初始装置请求中的URL相关联的源HLS清单文件的完整当前集合,以及(b)分配会话ID来开始处理对HLS清单文件的初始装置请求。现在转向分配会话ID,清单文件处理程序接收对HLS清单文件的初始装置请求并将全球唯一标识符(GUID)分配到会话;一旦分配到会话,这就将称为会话ID。
[0181] 在第一实施例和第二实施例中,清单文件处理程序可以通过产生GUID而获得GUID。在其他情况下,当清单文件处理程序接收到对HLS清单文件的初始请求时,清单文件处理程序可以通过下列中的任一个或其任何组合或其任何连接来获得要分配到会话的GUID:记录在URL请求或消息中提供的GUID;在表或文件中执行查找;与API,其包括(但不限于)数字服务、基础设施服务提供商、GUID产生服务或另一个实体的API进行交互;或以其他方式获得GUID。在其他实施例中,当清单文件处理程序接收到对HLS清单文件的初始请求时,清单文件处理程序将把除了GUID之外的会话标识符分配给会话(从而创建会话ID的可选的替代形式),通过下列中的任一个或其任何组合或其任何连接来获得会话标识符:产生、查找或获得除了GUID之外的会话标识符;记录GUID或在URL请求或消息中提供的其他会话标识符;从与URL请求或消息相关的数据、时间、位置或其他当前或之前的信息派生会话标识符;从与URL请求或消息相关或包含在其中的一个以上的项目,诸如IP地址或从其发送请求的接入网络,所请求的视频内容或与所请求的视频内容相关联的信息,或TCP序列号,TCP确认号,TCP校验和,其他TCP或源于底层TCP连接的其他协议信息或与URL请求或消息的传输相关的其他协议派生会话标识符;或与数字服务的API、基础设施服务提供商、接入网络或另一个实体进行交互以产生、派生或获得会话标识符。
[0182] 在其他实施例的可选方面中,会话ID可以可选地额外包括子会话标识符。在其他实施例的另一个可选方面中,会话ID可以额外地与包含在URL请求或消息中,从其派生或与其相关的或通过与数字服务、基础设施服务提供商、接入网络或另一个实体进行交互而获得的对于会话来说可能或可能不是唯一的其他参数或信息相关联;例如,会话ID可以与包括在作为参数的查询字符串中的用户标识符相关联。在会话ID中包括子会话标识符和/或以这种方式使会话ID与其他信息相关联使得能够根据一个以上的相关联的信息值或参数跨多个视频(例如,由用户选择的且在用户装置上回放的多个离散的点播短视频)并跨所有会话或包括多于一个会话的任何组来进行后续的资源分配和优先化,基础设施服务提供商分配和其他视频传送资源决策,以及会话信息的汇总和其他统计操纵。
[0183] 处理对HLS清单文件的初始装置请求
[0184] 继续讨论清单文件处理程序对用于HLS清单文件的初始装置请求的处理,清单文件处理程序可以将HLS清单文件配置成返回至请求装置(在下文称为发出的HLS清单文件)。一般来说,可以基于与包含在HLS清单文件请求中的RUL相对应的源HLS清单文件来配置发出的HLS清单文件;基于在源HLS清单文件中相应的URL来配置在发出的HLS清单文件中的每个URL。所发出的HLS清单文件配置的细节部分地取决于所请求的HLS清单文件是否是主HLS清单文件(在此提醒,其包括变体HLS清单文件URL)或变体HLS清单文件(在此提醒,其包括视频分段文件URL)。
[0185] 主HLS清单文件:包括变体HLS清单文件URL的HLS清单文件
[0186] 如果所请求的HLS清单文件是主HLS清单文件,清单文件处理程序则将配置也是主HLS清单文件且包括变体HLS清单文件URL的发出的HLS清单文件,其中(a)在每个变体HLS清单文件URL中配置的主机名称与清单文件处理程序、另一个清单文件处理程序、清单文件处理程序集群或清单文件处理程序的网络相关联;(b)在每个变体HLS清单文件URL中配置的URL路径包括分配的会话ID;(c)在每个变体HLS清单文件URL中配置的URL路径还包括数字服务的主机名称(包含在对HLS清单文件的初始请求中)或指定与对HLS清单文件的初始请求相关联的数字服务的字符串,其中在任一种情况下,数字服务被授权使用基础设施组件的网络;以及(d)在每个变体HLS清单文件URL中配置的URL路径包括在源主HLS清单文件中相应URL的路径。
[0187] 在主要实施例和次要实施例中,所发出的变体HLS清单文件URL的这些方面是通过基于相应的源变体HLS清单文件URL(包含在源主HLS清单文件中)来配置每个发出的变体HLS清单文件URL,结合这四个元素并使用主机名称权限文件以确认对数字服务使用基础设施组件的网络和/或查找指定与对HLS清单文件的请求相关联的数字服务的字符串的授权来实施的。可选地,当适用时,对数字服务使用基础设施组件的网络的授权能够随后进行确认,例如,在从清单文件处理程序的网络请求发出的变体HLS清单文件的时候或在从分段文件服务器的网络请求视频分段文件URL的时候进行。
[0188] 例如,发布的URL http://digserv.indexhandler.net/firstindexfile.m3u8调用清单文件处理程序的网络来接收和处理由在其源数字服务“digserv.com”的URL http://indexfiles.digserv.com/firstindexfile.m3u8识别的主HLS清单文件的传送(这个示例与这个方面中之前的示例是一致的)。
[0189] 清单文件处理程序接收对发布的URL的请求并使用源HLS清单文件URL请求源HLS清单文件;由数字服务返回的主HLS清单文件包括三个源变体HLS清单文件URL,如下所示:
[0190] http://indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-200.m3u8
[0191] http://indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-400.m3u8
[0192] http://indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-600.m3u8
[0193] 在这个示例中,接收清单文件处理程序是多个清单文件处理程序中的一个,其序列号为1,但是对于该请求而言,其分配不同的清单文件处理程序以接收对发出的变体HLS清单文件的请求且因此其插入与被指定为集群“B”的清单文件处理程序集群相关联的主机名称;此外,接收清单文件处理程序分配会话ID“XYZ789”(在本文包含的示例中缩短其实际的GUID长度以简化示例URL并使其更易于读取)至该请求。因此,接收清单文件处理程序配置发出的主HLS清单文件(并将其返回至请求装置),该发出的主HLS清单文件包括三个发出的变体HLS清单文件URL,如下所示:
[0194] http://b.indexhandler.net/XYZ789/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-200.m3u8
[0195] http://b.indexhandler.net/XYZ789/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-400.m3u8
[0196] http://b.indexhandler.net/XYZ789/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-600.m3u8
[0197] 在此提醒,除了URL之外,包括主HLS清单文件的HLS清单文件还可以包含控制、描述性和其他信息。为了可读性和清晰性,在本文包含的任何示例HLS清单文件中未示出元数据。
[0198] 如能够看到的,发出的主HLS清单文件是用变体HLS清单文件URL进行配置的,每个变体HLS清单文件URL是用下列进行配置的:与在集群“B”中的一个以上的清单文件处理程序(或通常与集群“B”)相关联的主机名称b.indexhandler.net;分配的会话ID XYZ789;以及字符串(在这种情况下,为完整的源变体HLS清单文件URL减去方法“http://”,例如,indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-400.m3u8),当其接收到对该发出的变体HLS清单文件URL的请求时,其使得在集群“B”中的任何清单文件处理程序使用接收的URL连同主机名称权限文件以确认对使用基础设施组件的网络的授权并确定和配置与接收的URL相关联的源变体HLS清单文件URL。
[0199] 下列示例示出了指定授权数字服务而不是使用完整的数字服务主机名称的字符串的使用。
[0200] 如在之前的示例中,发布的URL  http://digserv.indexhandler.net/firstindexfile.m3u8调用清单文件处理程序的网络来接收和处理由数字服务URL http://indexfiles.digserv.com/firstindexfile.m3u8来识别的主HLS清单文件的传送(这个示例与这个方面中之前的示例是一致的)。
[0201] 如在之前的示例中,清单文件处理程序接收对发布的URL的请求并使用源HLS清单文件URL请求源HLS清单文件;由数字服务返回的主HLS清单文件包括三个源变体HLS清单文件URL,如下所示:
[0202] http://indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-200.m3u8
[0203] http://indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-400.m3u8
[0204] http://indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-600.m3u8
[0205] 如在之前的示例中,接收清单文件处理程序是多个清单文件处理程序中的一个,其序列号为1,但是对于该请求而言,其分配不同的清单文件处理程序以接收对发出的变体HLS清单文件的请求且因此其插入与被指定为集群“B”的清单文件处理程序集群相关联的主机名称;此外,接收清单文件处理程序分配会话ID“XYZ789”至该请求;然而,在这个示例中,在发出的URL中包括字符串“digserv”而不是包含在原始请求中的数字服务主机名称。
[0206] 因此,在这个示例中,清单文件处理程序配置HLS清单文件(并将其返回至请求装置),该HLS清单文件包括三个发出的变体HLS清单文件URL,如下所示:
[0207] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-200.m3u8
[0208] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-400.m3u8
[0209] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-600.m3u8
[0210] 如能够看到的,发出的主HLS清单文件是用变体HLS清单文件URL进行配置的,每个变体HLS清单文件URL是用下列进行配置的:与在集群“B”中的一个以上的清单文件处理程序(或通常与集群“B”)相关联的主机名称b.indexhandler.net;分配的会话ID XYZ789;以及字符串(在这种情况下,为字符串digserv),当其接收到对该发出的变体HLS清单文件URL的请求时,其使得在集群“B”中的任何清单文件处理程序(或任何其他基础设施组件,包括任何清单文件处理程序)使用接收的URL连同主机名称权限文件以确认对使用基础设施组件的网络的授权并确定和配置与接收的URL相关联的源变体HLS清单文件URL。
[0211] 在创建HLS清单文件并配置包括其的URL的主要实施例和辅助实施例中所遵循的该URL配置结构允许清单文件处理程序的网络以及如将看到的,还有分段文件服务器、性能管理程序、可选的重定向消息处理器、可选的库存储服务器以及其他基础设施组件使用URL和主机名称权限文件来一直工作。
[0212] 这种配置结构在需要的地方提供了灵活性且在必要的地方提供了特定性,以及在处理多个URL请求和包括单个HLS视频传送(或类似地在其他基于HTTP的自适应流式传输视频传送协议中包括单个视频传送)的文件传送中跨基础设施组件的同步运行和测量、高性能以及有效的资源利用,其包括但不限于下列内容:
[0213] ·配置包含与清单文件处理程序相关联的主机名称的变体HLS清单文件URL在那种情况下确保随后将从清单文件处理程序请求(由请求装置进行)变体HLS清单文件URL;
[0214] ·参另一种情况下,配置包含用于另一个清单文件处理程序的主机名称的变体HLS清单文件URL使得接收对HLS清单文件的第一请求的清单文件处理程序能够当且如果适用时识别更好地适于处理对变体HLS清单文件中的所有或任一个的请求的另一个清单文件处理器;
[0215] ·在另一种情况下,配置包含用于清单文件处理程序集群的主机名称的变体HLS清单文件URL使得接收对HLS清单文件的第一请求的清单文件处理程序能够当且如果适用时识别更好地适于处理对变体HLS清单文件中的所有或任一个的请求的清单文件处理程序的集群,但仍不在集群内选择个别的清单文件处理程序,留下该选择以替换稍后的点,例如,在将清单文件处理程序的主机名称解析成一个以上的IP地址时,或作为另一个示例,当(在将清单文件处理程序的主机名称DNS解析成与清单文件处理程序集群相关联的一个以上的交换机IP地址之后)由交换机在清单文件处理程序集群接收到对变体HLS清单文件URL的连接请求且随后由交换机将连接请求引向特定的清单文件处理程序时;
[0216] ·在另一种情况下,配置包含用于清单文件处理程序网络的主机名称的变体HLS清单文件URL使得接收对HLS清单文件的第一请求的清单文件处理程序能够发出变体HLS清单文件URL并将对特定清单文件处理程序或清单文件处理程序集群的选择推迟至该过程中稍后的点,在该点,另一个基础设施组件能够选择很好地适于处理对变体HLS清单文件中的所有或任一个的请求的清单文件处理程序或清单文件处理程序集群;
[0217] ·在发出的URL的URL路径中包括分配的会话ID确保跨与会话相关联的所有URL为通用的,但对于该视频至该请求装置的传送来说是唯一的(或大致是唯一的,见在本说明中的相关描述以及额外的注意事项以获得关于GUID的更多信息)(且不同于在与其他视频至该请求装置的传送相关联或与相同的视频至其他请求装置的传送相关联的URL中的会话ID的)会话ID被通信至在对任何变体HLS清单文件的任何请求中的任何清单文件处理程序。这反过来使得清单文件处理程序能够包括其在其返回的HLS清单文件中配置并包括的URL中的相同会话ID(不管URL是变体HLS清单文件URL、视频分段URL或其他URL)。在作为对HLS清单文件的初始装置请求的结果而发出的所有变体HLS清单文件URL和视频分段URL以及可选地在其他URL中包括分配的会话ID使得能够以精确度以及会话级别的精细度和特异性跨所有相关的基础设施组件以及跨基础设施服务提供商实现同步运行、性能管理和性能测量;
[0218] ·在发出的URL的路径部分中包括在对HLS清单文件的初始请求中含有的数字服务主机名称或指定与对HLS清单文件的初始请求相关联的数字服务的字符串使得对于其接收的URL来说曾需要派生其能够用以直接从数字服务请求该对象的相应的URL的任何基础设施组件能够在不具有除了其接收的URL和主机名称权限表之外的输入的情况下这么做。
[0219] ·在每个发出的URL的路径部分中包括每个相应源URL的路径消除了跨提供多个数字服务的基础设施组件的运行网络而意外或随机复制URL(称为“名称空间冲突”)的任何风险,且额外地使得对于其接收的URL来说曾需要派生其能够用以直接从数字服务请求该对象的相应的URL的任何基础设施组件能够在不具有除了其接收的URL和主机名称权限表之外的输入的情况下这么做。
[0220] 集群性能管理器
[0221] 继续讨论主要实施例和次要实施例,清单文件处理程序可以连同集群性能管理器运行以配置变体HLS清单文件URL,其识别本身以处理对变体HLS清单文件中的所有或任一个的请求,或如果且当适用时识别另一个清单文件处理程序或清单文件处理程序的集群,其更好地适于处理对变体HLS清单文件中的所有或任一个的请求,或如果且当适用时,将对特定清单文件处理程序或清单文件处理程序集群的选择推迟到该过程中稍后的点,在该点,另一个基础设施组件能够选择很好地适于处理对变体HLS清单文件中的所有或任一个的请求的清单文件处理程序或清单文件处理程序集群。
[0222] 要注意的是,当装置从请求装置接收到互联网URL请求时,其包括从请求装置接收对HLS清单文件的初始请求的清单文件处理程序,通常(例如,在通常互联网运行条件下),该装置知道发送请求的网络地址,且该网络地址能够用于确定请求装置的网络位置和/或确定各种其他网络位置与请求装置的网络位置之间的距离(网络术语)。这个一般命题的例外的示例为先由请求装置发送到匿名代理的请求,该匿名代理随后在不附加任何有关原始请求装置的信息,例如在转发请求中不包括HTTP X-Forward-For消息头的情况下转发请求;通过这个和相关技术,匿名代理因此遮掩了原始请求装置的网络地址。然而,这种例外是总的互联网URL请求中的非常小的一部分。
[0223] 这意味着当清单文件处理程序接收到对HLS清单文件的初始装置请求时(在此提醒,自适应流式传输视频传送发生在将任何视频传送至请求装置之前),其具有关于所请求的传送的精确和准确信息,其能够使用本身或能够通信至另一个基础设施组件。清单文件处理程序在大多数情况下知道请求装置的实际网络地址,其能够用于确定任何基础设施组件至请求装置的距离(网络术语)或能够用于选择在将视频分段文件传送至该网络位置中表现良好的基础设施服务提供商。在所有情况下,清单文件处理程序可能知道所请求的确切的HLS视频,其能够按多种方式使用,例如,用于选择具有或可能具有在存储器中的视频分段文件的服务器,将视频分段文件中的所有或部分上传至在一个以上的特定服务器上的存储器中,选择在传送与该特定HLS视频相关的视频分段文件或在传送具有和该特定HLS视频的那些一样或类似的一个以上的属性的视频分段文件中表现良好的基础设施服务提供商。
[0224] 个别地或一起地,这些因素能够用于确定哪些基础设施组件(一般的或具有给定类型的)或基础设施组件的集群应被分配到将所请求的HLS视频传送至请求装置的各个方面。例如,如将看到的,分段文件服务器(或,可选地,分段文件服务器的集群)能够在将变体HLS清单文件发至请求装置时进行分配,这发生在对HLS清单文件的初始装置请求之后,且因此发生在当请求的视频在所有情况下是已知的且请求装置的网络位置在大多数情况下是已知时的在该视频传送过程中的点;这能够使这种选择更准确和更有效,且使一组基础设施组件或一个以上的基础设施服务提供商的管理更有效和更高效,这是相关于与对所请求的特定内容不具有确定性而运行和/或依赖于对请求装置的网络位置的估计或概算或依赖于除了请求装置之外的装置的网络位置的现有基础设施服务提供商的过程而言的。另外,这种方法允许将每个视频分段文件的传送个别地分配至一个以上的分段文件服务器或分段文件服务器的一个以上的集群,且还允许对分配至分段文件服务器或分段文件服务器的集群的视频分段文件传送的总数进行准确的计数而不是进行估计或预测,这比在进行每个传送分配时分配分段文件传送的组(其在大小和组成中是已知且可变的)而非各个视频分段文件传送的现有基础设施服务提供商的过程更精确和更准确。且可选地,这种方法允许至少部分地基于可用的基础设施服务提供商在将具有相当属性的HLS视频分段文件传送到相同或相当的网络位置或网络分部中表现得如何而为每个个别的视频,甚至为每个个别的视频分段文件选择基础设施服务提供商。
[0225] 例如,现在参考图3,其示出了示出根据某些实施例的用于测量和管理自适应流式传输视频的性能的过程300的流程图。该流程图示出了在用户装置(或其他请求装置)、清单文件服务器(例如,106或112)和分段文件服务器(例如,108或114)之间的交互。用户装置118经网络,诸如互联网与清单文件服务器106或112和分段文件服务器108或114进行通信。
[0226] 在方框302,用户装置提出对清单文件的请求,例如,使用在内容提供商网页上发布的URL来进行。在方框304,作为对请求的响应,由用户装置从清单文件服务器接收发出的清单文件。在方框306,基于是否已接收用于视频的所有清单文件来做出分支决策。如果尚未接收到所有必要的清单文件,过程300则返回到方框302,且重复方框302、304和306直到已接收到所有必要的清单文件为止。要注意的是许多用户装置在功能上能够提出多于一个的并发数据请求;对于这些用户装置而言,如果装置能够并发地提出所有必要的清单文件请求,通过方框302、304和306的重复次数则将减少,包括至通过方框302、304和306的单个序列。然后,过程300继续到方框308,其中用户装置使用URL中的一个从接收的变体清单文件中的一个提出对视频分段文件的请求。在方框310,从分段文件服务器接收所请求的视频分段文件。为由系统100的分段文件服务器提供服务的视频的每个分段重复进行方框308和310。
[0227] 现在转向清单文件服务器,在方框312,清单文件服务器接收对清单文件的请求。请求包括引用清单文件的URL。例如,URL能够包括识别内容提供商的字符串且URL的路径能够包括清单文件的标识符。在方框314,基于包括在请求中的URL来识别源清单文件。在方框
316,基于源清单文件产生发出的清单文件。下面参考图4提供了用于产生发出的清单文件的更多细节。在方框318,将发出的清单文件传输至用户装置。
[0228] 现在转向分段文件服务器,在方框320,分段文件服务器接收对视频分段文件的请求。基于包括在请求中的URL,识别视频分段文件,且在方框322,将视频分段文件传输至用户装置。在方框324,记录对视频分段文件传输的测量且在方框326,记录对视频分段文件的请求的属性。
[0229] 现在参考图4,其示出了示出用于产生发出的清单文件的过程400的流程图。例如,能够由清单文件处理程序204(例如,清单文件服务器/服务系统)连同集群性能管理器和服务提供商管理器来执行过程400。在方框402,接收清单文件请求且基于该请求来识别源清单文件。例如,能够基于指定均包括在随请求接收的URL中的内容提供商和清单文件名称的字符串来识别源清单文件。在一个实施例中,从URL解析指定内容提供商和清单文件名称的字符串。随后,将字符串和文件名称连接起来且使用连接的字符串来识别源清单文件。在方框404,基于源清单文件的当前版本是否是可用的来做出决策。例如,能够使用连接的字符串在源清单文件存储库上进行查询。如果源清单文件的当前版本是可用的,则能够从存储库检索源清单文件且过程400继续前进至方框410。
[0230] 如果源清单文件的当前版本是不可用的,过程400则继续前进至方框406,其中验证内容提供商被授权使用服务。在一个实施例中,使用主机名称权限文件以验证授权。主机名称权限文件包括用于每个授权的内容提供商的主机名称权限记录。主机名称权限文件能够进行加密或类似地进行保护以免受到未授权方的篡改。能够通过使用指定内容提供商的字符串来搜索在主机名称权限文件中的主机名称权限记录来执行验证。如果找到了记录,则验证授权。
[0231] 在方框408,从内容提供商或服务提供商请求源清单文件。在一个实施例中,使用在方框402随请求接收到的URL中包括的信息来构建用于源清单文件的URL。例如,指定内容提供商的字符串能够用作在用于源清单文件的URL中的主机名称,或字符串能够用于在主机名称权限记录中查找服务提供商服务器的主机名称。随请求接收的URL的路径能够用作用于源清单文件的URL的路径。构建的用于源清单文件的URL用于请求源清单文件。在接收到源清单文件之后,能够在数据库中缓存源清单文件以用于将来的请求。在一个实施例中,当接收到对清单文件的初始请求时,检索用于视频的源清单文件的整个集合。源清单文件的整个集合包括可用于该视频的所有源清单文件。
[0232] 在方框410,基于随请求接收的URL是否包括会话标识符(ID)来做出决策。如果这是对使用在内容提供商网站上发布的URL而制作的视频内容的主清单文件的初始请求,那么URL则不包括会话ID。在这种情况下,过程400继续前进至方框412,其中产生全球唯一标识符(GUID)并将其作为用于当前视频流式传输会话的会话ID而进行分配。如果其不是用于视频内容的初始请求(即,如果请求是用于变体清单文件的),URL则包括会话ID,这是因为在这个实施例中,将会话ID插入包含在发出的主清单文件内的变体清单URL中。例如,会话ID能够包括在URL的主机字段中,在URL的路径部分中或附加在URL的结尾作为查询字符串。如果URL包括会话ID,在方框414,从URL解析会话ID。
[0233] 在方框416,选择URL类型以用于包括在为这个请求所产生的发出的清单文件中的URL。通常执行方框416以用于变体清单文件请求,这是因为在发出的主清单文件中的所有URL将引用根据本文所述的实施例所实施的清单文件服务器,而非一个以上的服务提供商。在方框418,基于URL类型选择用于URL的主机字段的主机名称。例如,如果URL类型为服务提供商的URL,则选择与服务提供商相关联的,通常还与数字服务相关联的但却在服务提供商的域内的主机名称。在方框420,基于选择的URL类型和选择的主机名称来配置URL。根据URL的类型且可能根据其他条件,URL还被有条件地配置成包括会话ID。例如,对于含有与系统
100的分段文件服务器相关联的主机名称的URL而言,会话ID包括在该URL中;对于含有与其分段文件服务器能够执行方框324和/或方框326(记录测量和/或属性)的服务提供商相关联的主机名称的URL而言,会话ID可以包括在URL中;且对于含有与不能够处理会话ID的服务提供商相关联的主机名称的URL而言或出于其他原因,例如,政策或与数字服务相关联的配置属性,会话ID则不包括在URL中。为包括在发出的清单文件中的每个URL重复进行方框
416-420。例如,如果请求是用于具有十个分段的变体清单文件的,那么则重复进行方框
416-420十次以配置十个URL,一个用于每个分段。在已配置所有URL之后,将发出的清单文件传输至用户装置以完成请求。
[0234] 为了实现这个能力,在主要实施例和次要实施例的可选方面中,清单文件处理程序提供请求装置的网络地址、在对HLS清单文件的初始装置请求中的请求的URL以及分配到其集群性能管理器(或可选地,另一个集群性能管理器)的会话ID中的任一个或任何组合,其确定(并将其返回到清单文件处理程序)要在包括在发出的主HLS清单文件中的变体HLS清单文件URL中通过使用主机名称来进行指定的清单文件处理程序或清单文件处理程序的集群或组或清单文件处理程序的网络。集群性能管理器类似地确定(并将其返回到清单文件处理程序)要在包括在发出的变体HLS清单文件中的视频分段传送URL中通过使用主机名称来进行指定的分段文件服务器或分段文件服务器的集群或组或分段文件服务器的网络。最终,如之后将更详细地描述的,清单文件处理程序提供请求装置的网络地址、在对HLS清单文件的初始装置请求中的请求的URL以及分配到其服务提供商管理器(或可选地,另一个服务提供商管理器)的会话ID中的任一个或任何组合,其确定(并将其返回到清单文件处理程序)要在包括在发出的HLS清单文件,且特别地在发出的变体HLS清单文件中的服务提供商分段传送URL中通过使用主机名称来进行指定的服务提供商,且可选的为与服务提供商和/或数字服务相关联的主机名称。
[0235] 在其他实施例中,集群性能管理器可以将分配信息提供到清单文件处理程序且清单文件处理程序可以使用分配信息,可选地为连同其具有的关于HLS清单文件请求的信息以通过使用包括在发出的主HLS清单文件中的变体HLS清单文件URL中的主机名称来指定清单文件处理程序或清单文件处理程序的集群或组或清单文件处理程序的网络和/或通过使用包括在发出的变体HLS清单文件中的视频分段URL中的主机名称来指定分段文件服务器或分段文件服务器的集群或组或分段文件服务器的网络。例如,这样的分配信息可能采用由IP地址范围或其他网络标识符进行索引的且由数字服务及其各自的内容标识符或类别进行子索引的分配表;使用这个分配表,清单文件处理程序随后能够查找要在指定中使用的分配。在这样的其他实施例中,随着基础设施组件的运行条件(诸如可用性、性能、负载或利用、网络性能和其他运行特征)发生变化或发生实质性变化,集群性能管理器更新分配信息;另外,随着清单文件处理程序配置和返回HLS清单文件,其可选地通知集群性能管理器,从而向集群性能管理器提供关于即将到达清单文件处理程序和/或分段文件服务器的后续请求的至少一些信息。其他实施例利用相对较少的动态分配信息,其中集群性能管理器以比基础设施组件的运行条件改变频率更低的频率或仅当基础设施组件本身改变(例如,当将新的基础设施组件添加至可用的基础设施组件的池)时更新分配信息。
[0236] 在其他实施例中,清单文件处理程序不使用分配信息来进行所指示的指定中的一些或所有,而是使用循环轮转在基础设施组件中进行所指示的指定中的一些或所有,在基础设施组件中进行确定性分布,例如使用协议诸如CARP来进行或在基础设施组件中进行随机分布。
[0237] 要注意的是,当一个以上的清单文件处理程序或分段文件服务器的集群或组是由主机名称指定时,特定清单文件处理程序或分段文件服务器的最终选择可能已缩小至指定的组或集群,但随后将在后续点上在该组或集群内进行最终的确定;类似地,当清单文件处理程序的网络或分段文件服务器的网络是由主机名称指定时,特定清单文件处理程序或分段文件服务器的最终选择尚未缩小且将在后续点上进行最终的确定。该特征在主要实施例和次要实施例的可选方面以及其他实施例中提供了灵活性。
[0238] 在其他实施例中,包括清单文件处理程序的多个分布式实例,在每个位置上具有清单文件处理程序的多个实例且在每个位置具有交换机,集群性能管理器向清单文件处理程序识别清单文件处理程序的集群或与清单文件处理程序的集群相关联的主机名称以在变体HLS清单文件URL中进行指定。在一个这样的实施例中,清单文件处理程序将如在主要实施例和次要实施例中描述的信息提供至集群性能管理器,其确定(并将其返回到清单文件处理程序)要在变体HLS清单文件URL中通过使用主机名称来指定的清单文件处理程序或清单文件处理程序的集群或组或清单文件处理程序网络;在另一个这样的实施例中,集群性能管理器将分配信息提供至清单文件处理程序且清单文件处理程序使用该分配信息,可选地连同其具有的关于HLS清单文件请求的信息以进行清单文件处理程序的指定,例如如前所述。与集群相关联且在变体HLS清单文件URL中指定的主机名称随后通过DNS授权名称服务器解析成与集群相关联的一个以上的交换机的IP地址;交换机随后从请求用户装置接收所产生的连接请求并选择清单文件处理程序以处理变体HLS清单文件请求。
[0239] 继续讨论这些其他实施例,集群性能管理器识别清单文件处理程序或与变体文件处理程序的集群相关联的主机名称以基于下列中的任一个或其任何组合在变体HLS清单文件URL中进行指定或包括在其提供至清单文件处理程序的分配信息中:
[0240] ·清单文件处理程序的集群的网络位置;
[0241] ·与一个以上的清单文件处理程序的其他集群至请求用户装置的网络位置的距离(网络术语)相比,清单文件处理程序的集群至与请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置的相对距离(网络术语);
[0242] ·与当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时一个以上的清单文件处理程序的其他集群的性能(网络术语)相比,当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时清单文件处理程序的集群的相对性能(网络术语);
[0243] ·清单文件处理程序的当前和预期的可用性和利用性,包括(但不限于)用于处理HLS清单文件请求的足够容量的可用性;
[0244] ·具有先前已处理的对请求的HLS清单文件的请求,对与相同的视频对象相关联的HLS清单文件的请求,对与相同数字服务相关联的HLS清单文件的请求或对类似的HLS清单文件的请求的清单文件处理程序;
[0245] ·清单文件处理程序与包含在主机名称中的子域或与和主机名称相关联的数字服务或与请求的HLS清单文件的关联;
[0246] ·清单文件处理程序与HLS清单文件请求URL的一部分或HLS清单文件请求消息的内容,诸如在HLS清单文件请求消息中识别的用户代理的关联;
[0247] ·清单文件处理程序与和点播视频相关联的HLS清单文件,和线性视频相关联的HLS清单文件或和点播视频和线性视频的组合相关联的HLS清单文件的关联或为其进行的优化;
[0248] ·请求用户装置或用户代理;
[0249] ·变体HLS清单文件或相关的主HLS清单文件的请求速率;
[0250] ·与变体HLS清单文件相关联的视频的持续时间或包括变体HLS清单文件的视频分段文件传送的数量;
[0251] ·视频的发行日期、发布日期、可用日期;
[0252] ·请求用户装置所使用的接入网络;
[0253] ·在清单文件处理程序中的变体HLS清单文件请求的循环轮转;
[0254] ·变体HLS清单文件请求在清单文件处理程序中的确定性分布,例如使用协议,诸如将HLS清单文件请求URL或其一部分作为输入的缓存阵列路由协议(CARP);或[0255] ·HLS清单文件请求在清单文件处理程序中的随机分布。
[0256] 在这些其他实施例的可选方面中,集群性能管理器可以识别清单文件处理程序或与变体文件处理程序的集群相关联的主机名称以基于下列中的任一个或其任何组合在变体HLS清单文件URL中进行指定或额外地包括在其提供至清单文件处理程序的分配信息中:
[0257] ·分段文件服务器的集群的网络位置;
[0258] ·与一个以上的分段文件服务器的其他集群至请求用户装置的网络位置的距离(网络术语)相比,分段文件服务器的集群至与请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置的相对距离(网络术语);
[0259] ·与当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时一个以上的分段文件服务器的其他集群的性能(网络术语)相比,当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时分段文件服务器的集群的相对性能(网络术语);
[0260] ·分段文件服务器的当前和预期的可用性和利用性,包括(但不限于)用于处理和响应对与HLS清单文件请求相关联的视频分段文件的请求的足够容量的可用性;
[0261] ·具有对与请求的HLS清单文件相关联的视频分段文件,与对与相同的视频对象相关联的HLS清单文件的请求相关联的视频分段文件,与对与相同数字服务相关联的HLS清单文件的请求相关联的视频分段文件或与对类似的HLS清单文件的请求相关联的视频分段文件的之前处理的请求的分段文件服务器或分段文件服务器的集群;
[0262] ·相关主HLS清单文件或变体HLS清单文件的请求速率;
[0263] ·分段文件服务器或分段文件服务器集群与包含在主机名称中的子域或与和主机名称相关联的数字服务或与请求的HLS清单文件的关联;
[0264] ·分段文件服务器或分段文件服务器集群与HLS清单文件请求URL的一部分或HLS清单文件请求消息的内容,诸如在HLS清单文件请求消息中识别的用户代理的关联;
[0265] ·分段文件服务器或分段文件服务器集群与和点播视频相关联的变体HLS清单文件,和线性视频相关联的变体HLS清单文件或和点播视频和线性视频的组合相关联的变体HLS清单文件的关联或为其进行的优化;
[0266] ·在分段文件服务器中直接或通过考虑变体HLS清单文件请求而进行的视频分段文件请求的循环轮转;
[0267] ·在分段文件服务器中直接或通过考虑变体HLS清单文件请求而进行的视频分段文件请求的确定性分布,例如使用协议,诸如将HLS清单文件请求URL或其一部分,视频分段文件请求URL或其一部分或其组合作为输入的缓存阵列路由协议(CARP);或
[0268] ·在分段文件服务器中直接或通过考虑HLS清单文件请求而进行的视频分段文件请求的随机分布。
[0269] 在主要实施例和次要实施例中,清单文件处理程序将发出的主HLS清单文件返回至请求装置并创建清单文件服务记录;有关主要实施例和次要实施例的清单文件记录和相关方面的描述,请参见本文中“将发出的变体HLS清单文件返回至请求装置”部分。
[0270] 变体HLS清单文件:包括视频分段文件URL的HLS清单文件
[0271] 继续讨论主要实施例和次要实施例,当清单文件处理程序接收到对为变体HLS清单文件的HLS清单文件的初始装置请求时或当清单文件处理程序接收到对任何变体HLS清单文件的后续请求时(例如,在接收到发出的主HLS清单文件之后,当由请求装置随后请求变体HLS清单文件URL时),清单文件处理程序可以确定与请求的URL相对应的源变体HLS清单文件且可以基于源变体HLS清单文件将发出的变体HLS清单文件配置成要响应于请求进行返回。在此提醒,能够根据请求的URL连同主机名称权限文件使用均包含在每个变体HLS清单文件URL的部分的路径中或在对HLS清单文件的初始装置请求为变体HLS清单文件的情况下均包含在请求的URL中的数字服务的主机名称或指定数字服务以及相应的URL路径部分的字符串来确定相应的源变体HLS清单文件URL。
[0272] 如果变体HLS清单文件请求是对HLS清单文件的初始装置请求,是所接收的用于该请求的第一HLS清单文件或如果出于任何其他原因,所请求的HLS清单文件URL则不包括会话ID,且清单文件处理程序分配会话ID,如前所述(见部分“分配会话ID”和本发明中的相关描述)。如果使用包含在发出的主HLS清单文件中的变体HLS清单文件URL来提出变体HLS清单文件请求,那么变体HLS清单文件URL将包含会话ID且清单文件处理程序继续使用这个之前分配的会话ID以用于发出的变体HLS清单文件。
[0273] 这个发出的变体HLS清单文件是由清单文件处理程序配置的且包括(但不限于)下列中的任一个或其任何组合:
[0274] ·视频分段传送URL,其识别用于由分段文件服务器的网络进行传送的视频分段文件,在每种情况下,其中(a)包含在视频分段传送URL中的主机名称识别分段文件服务器、分段文件服务器的集群或分段文件服务器的网络,(b)视频分段传送URL包括在URL路径中包括的分配的会话ID,(c)包含在对HLS清单文件的初始装置请求中的数字服务主机名称或可替代地与对HLS清单文件的初始装置请求相关联的数字服务相关联的字符串包括在URL路径中;以及(d)URL路径的剩余部分为数字服务URL的路径部分或可选地为基础设施提供商URL,如包含在相应的源变体HLS清单文件中的;
[0275] ·识别用于由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL,在每种情况下,其中(a)包含在服务提供商分段传送URL中的主机名称与基础设施服务提供商相关联,且可选地是由具有数字服务的服务提供商进行的,(b)可选地,如果且当由服务提供商支持,分配的会话ID包括在URL路径中,且(c)URL路径的剩余部分是数字服务URL的路径部分或可选地是基础设施服务提供商URL的路径部分,如包含在相应的源变体HLS清单文件中的;或可选地,识别由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL,在每种情况下,其中服务提供商分段传送URL是如包含在相应的源变体HLS清单文件中的基础设施服务提供商URL;
[0276] ·分段重定向URL,其将从分段重定向处理器进行请求,其将导致由分段重定向处理器将含有重定向URL的HTTP 302重定向消息发至请求装置(在主要实施例和次要实施例中,为服务提供商分段传送URL或视频分段传送URL,且在其他实施例中,为识别能够从其请求视频分段文件的网络位置的另一个有效的URL),其中在每种情况下,(a)包含在分段重定向URL中的主机名称识别分段重定向处理器,分段重定向处理器的集群或分段重定向处理器的网络,(b)分段重定向URL包括插入URL路径中的分配的会话ID,(c)URL路径包括数字服务URL的路径部分或可选地为基础设施服务提供商URL,如包含在相应的源变体HLS清单文件中的,以及(d)可选地,URL路径包括下列中的一个以上:由基础设施服务提供商分配给数字服务的主机名称;与服务提供商相关联的字符串;与数字服务和服务提供商相关联的字符串;或与数字服务相关联的字符串,该数字服务与对HLS清单文件的初始装置请求相关联。
[0277] 这些URL类型能够随着应用于在发出的变体HLS清单文件中进行配置的视频分段文件的任何集合而灵活地进行组合。除非另有明确指定外,与在发出的变体HLS清单文件中配置的每个视频分段文件相关联的元数据与在源变体HLS清单文件中的视频分段文件相关联的元数据相同,例如,指定相同的编解码器、带宽和/或分辨率;但能够为每个URL独立地确定每个视频分段文件被配置成-视频分段传送URL、服务提供商分段传送URL或分段重定向URL-的URL的类型。这是清单文件处理程序一个有用的特性。
[0278] 在主要实施例和次要实施例中,发出的变体视频分段传送URL、发出的服务提供商分段传送URL和发出的分段重定向URL中的这些方面是通过基于包含在源变体HLS清单文件中的相应的视频分段文件URL来配置每个发出的URL,结合发出的URL的各个方面并使用主机名称权限文件以确认对数字服务使用基础设施组件的网络和/或查找指定与对HLS清单文件的请求相关联的数字服务的字符串的授权来实施的。可选地,当适用时,在之前由清单文件处理程序的网络发出对变体HLS清单文件的后续请求的情况下,确认对数字服务使用基础设施组件的网络的授权能够基于有效的当前会话ID的存在而不是使用主机名称权限文件。
[0279] 可以提供另一个示例,继续讨论为主HLS清单文件而提供的之前的示例。在此提醒,公布的URL http://digserv.indexhandler.net/firstindexfile.m3u8调用清单文件处理程序的网络以接收和处理在其源数字服务“digserv.com”由其源HLS清单文件URL http://indexfiles.digserv.com/firstindexfile.m3u8识别的主HLS清单文件的传送。在此进一步地提醒,由清单文件处理程序配置并返回至请求装置的发出的主HLS清单文件包括三个发出的变体HLS清单文件URL,如下所述:
[0280] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-200.m3u8
[0281] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-400.m3u8
[0282] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-600.m3u8
[0283] 在这个示例中,请求装置选择下列变体HLS清单文件URL并请求其:
[0284] http://b.indexhandler.net/XYZ789/digserv/firstindexfile/variant-HLS-index-file-400.m3u8
[0285] 如在之前的示例中所述,当请求装置发送对这些URL中的一个的请求时,URL请求过程将以对包含在请求的URL中的主机名称的解析开始。在这个示例中,主机名称b.indexhandler.net识别清单文件处理程序的集群“B”且在主要实施例和次要实施例中由DNS授权名称服务器解析成在集群“B”中的一个以上的清单文件处理程序的IP地址。要注意的是,如前所述,在其他实施例中,识别清单文件处理程序的集群“B”的主机名称b.indexhandler.net由DNS授权名称服务器解析成与集群“B”相关联的一个以上的交换机的IP地址,且交换机随后选择清单文件处理程序以处理请求。
[0286] 清单文件处理程序随后接收对变体HLS清单文件URL的请求。如果接收该变体HLS清单文件请求的清单文件处理程序没有当前的源变体HLS清单文件在场,其配置对源变体HLS清单文件的数字服务URL,发出对其的HTPP清单,接收其并基于源变体HLS清单文件配置发出的变体清单文件;如果清单文件处理程序已具有当前的源变体HLS清单文件在场,其基于当前源变体HLS清单文件配置发出的变体HLS清单文件。
[0287] 为了发出对源变体HLS清单文件的HTTP请求,清单文件处理程序可以:
[0288] ·解析接收的URL、读取URL路径并识别URL路径的配置元素,包括:会话ID,在这个示例中为XYZ789;数字服务的主机名称(包含在对HLS清单文件的初始请求中)或指定与请求的HLS清单文件相关联的数字服务的字符串,在这个示例中为digserv;以及如在接收的URL中配置的相应变体HLS清单文件URL的路径部分,在这个示例中为firstindexfile/variant-HLS-index-file-400.m3u8;
[0289] ·为字符串digserv查询主机名称权限记录(在主机名称权限文件中)并从主机名称权限记录检索数字服务URL主机名称indexfiles.digserv.com;
[0290] ·使用从主机名称权限记录检索的主机名称indexfiles.digserv.com以及从数字服务URL中产生的所请求的URL解析的URL路径firstindexfile/variant-HLS-index-file-400.m3u8为源变体HLS清单文件配置数字服务URL。参考在标题“主HLS清单文件:包括变体HLS清单文件URL的HLS清单文件”之后出现的该示例的开头,要注意的是,这是包含在源主HLS清单文件中的相同的URL-如前所述,清单文件处理程序已使用刚请求的URL和主机名称权限文件对其进行了配置。
[0291] ·清单文件处理程序随后发出对源变体HLS清单文件的HTTP请求
[0292] 一旦有源变体HLS清单文件在场,清单文件处理程序基于其配置发出的变体HLS清单文件。在这个示例中,源变体HLS清单文件包括12个视频分段文件URL(在这个示例中,每个视频分段文件表示视频的10秒,总计为120秒,或持续时间为2分钟的视频)。在这个示例中,包含在源变体HLS清单文件中的12个视频分段文件URL为:
[0293] http://indexfiles.digserv.com/firstindexfile/200/segment-1.ts[0294] http://indexfiles.digserv.com/firstindexfile/200/segment-2.ts[0295] http://indexfiles.digserv.com/firstindexfile/200/segment-3.ts[0296] http://indexfiles.digserv.com/firstindexfile/200/segment-4.ts[0297] http://indexfiles.digserv.com/firstindexfile/200/segment-5.ts[0298] http://indexfiles.digserv.com/firstindexfile/200/segment-6.ts[0299] http://indexfiles.digserv.com/firstindexfile/200/segment-7.ts[0300] http://indexfiles.digserv.com/firstindexfile/200/segment-8.ts[0301] http://indexfiles.digserv.com/firstindexfile/200/segment-9.ts[0302] http://indexfiles.digserv.com/firstindexfile/200/segment-10.ts[0303] http://indexfiles.digserv.com/firstindexfile/200/segment-11.ts[0304] http://indexfiles.digserv.com/firstindexfile/200/segment-12.ts[0305] 要注意的是,在这个示例中,数字服务“digserv.com”为用于清单文件的源URL以及用于视频分段文件的源URL使用相同的主机名称;这是允许的,但不是必需的(在这个示例中以这种方式进行构造部分地是用于保持本示例可以简单地进行阅读和理解)。在此提醒且如前所述,唯一的要求是“digserv.com”要避免重复的URL(即,如前所述的名称空间冲突)且告知基础设施组件的网络有关在每种情况下所使用的主机名称,以使得包含在主机名称权限文件中的主机名称权限记录适当地进行配置且是完整的,且使得基础架构组件能够适当地配置数字服务URL。
[0306] 如前所述,清单文件处理程序在发出的变体HLS清单文件中配置URL的方面有许多选项。每个URL能够被配置为识别要由分段文件服务器的网络进行传送的视频分段文件的URL,识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL,或分段重定向URL,且这些URL类型能够在发出的变体HLS清单文件中灵活地以任何组合或按顺序地进行组合。
[0307] 在所发出的变体清单文件中配置的URL的第一个示例示出清单文件处理程序,其配置识别要由分段文件服务器的网络进行传送的视频分段文件的视频分段传送URL,如下所示:
[0308] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-1.ts
[0309] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-2.ts
[0310] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-3.ts
[0311] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-4.ts
[0312] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-5.ts
[0313] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-6.ts
[0314] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-7.ts
[0315] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-8.ts
[0316] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-9.ts
[0317] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-10.ts
[0318] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-11.ts
[0319] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-12.ts
[0320] 在此提醒,发出的变体HLS清单文件还含有控制、描述性和其他信息,且与在发出的变体HLS清单文件中配置的每个视频分段文件相关联的元数据与和在源变体HLS清单文件中的视频分段文件相关联的元数据相同,例如,指定相同的编解码器、带宽和/或解析。为了可读性和清晰性,在本文包含的任何示例HLS清单文件中未示出元数据。
[0321] 这些视频分段传送URL包括与分段文件服务器的网络相关联的主机名称,sfs.b.indexhandler.net,其指定分段文件服务器的集群“B”(其可以或可以不与清单文件处理程序的集群“B”共址);包括会话ID XYZ789;包括指定与请求的视频相关联的数字服务的字符串digserv;且包括URL的路径部分,通过该路径部分能够从数字服务请求给定的视频分段文件。
[0322] 在此提醒,会话ID首先是由接收对HLS清单文件的初始装置请求的清单文件处理程序分配的;通过清单文件处理程序包括于在清单文件处理程序返回至请求装置的发出的主HLS清单文件中配置的变体HLS清单文件中;且因此包括在由请求装置所请求的变体HLS清单文件URL中且在接收变体HLS清单文件请求的第二清单文件处理程序(且如在这个示例中的情况一样,其能够是不同于发出主HLS清单文件的清单文件处理程序的清单文件处理程序)进行接收;随后由第二清单文件处理程序包括在返回至请求装置的发出的变体HLS清单文件中配置的视频分段传送URL中;且如将很快看到的,因此经视频分段传送URL请求传送到分段文件服务器,从而使得会话ID可用于分段文件服务器,其将提供与对HLS清单文件的初始装置请求相关联的所请求的视频分段文件。
[0323] 如在之前的示例中所述,当请求装置发送对这些URL中的一个的请求时,URL请求过程将以对包含在请求的URL中的主机名称的解析开始。在这个示例中,包含在视频分段传送URL中的主机名称sfs.b.indexhandler.net识别分段文件服务器的集群“B”,且在主要实施例和次要实施例中由DNS授权名称服务器解析成在集群“B”中的一个以上的分段文件服务器的IP地址。要注意的是,如前所述,在其他实施例中,识别分段文件服务器的集群“B”的主机名称sfs.b.indexhandler.net由DNS授权名称服务器解析成与集群“B”相关联的一个以上的交换机的IP地址,且交换机随后选择分段文件服务器以处理请求。
[0324] 分段文件服务器随后接收对视频分段传送URL的请求。如将看到的,视频分段传送URL与主机名称权限文件一起向分段文件服务器提供其所需的所有信息以从数字服务或其基础设施服务提供商请求源视频分段文件,如果需要的话,则提供视频分段文件且记录特定于在这个特定会话中的这个特定视频分段文件的传送的测量和性能信息。
[0325] 在发出的变体HLS清单文件中配置的URL的第二示例示出了清单文件处理程序,其配置识别要由分段文件服务器的网络进行传送的视频分段文件的URL的视频分段传送URL,其中特定的分段文件服务器是在每个URL中进行指定的且还示出能够在不同的URL中指定不同的分段文件服务器,如下所示:
[0326] http://sfs90055.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-1.ts
[0327] http://sfs90055.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-2.ts
[0328] http://sfs90055.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-3.ts
[0329] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-4.ts
[0330] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-5.ts
[0331] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-6.ts
[0332] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-7.ts
[0333] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-8.ts
[0334] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-9.ts
[0335] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-10.ts
[0336] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-11.ts
[0337] http://sfs91060.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-12.ts
[0338] 这些视频分段传送URL中的前三个包括与分段文件服务器的网络相关联的主机名称,sfs90055.indexhandler.net,其指定特定的分段文件服务器;这些视频分段传送URL中的后续九个包括与分段文件服务器的网络相关联的不同的主机名称,sfs91060.indexhandler.net,其指定不同的特定分段文件服务器;且这些视频分段传送URL中的所有十二个包括会话ID XYZ789,指定与请求的视频相关联的数字服务的字符串digserv以及URL的路径部分,通过该路径部分,能够从数字服务请求给定的视频分段文件。要注意的是,包括在每个视频分段传送URL中的主机名称能够是不同的且能够指定不同的分段服务器或不同的分段文件服务器组。
[0339] 在所发出的变体清单文件中配置的URL的第三个示例示出清单文件处理程序,其配置识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL,如下所示:
[0340] http://digserv.service-provider.net/firstindexfile/200/segment-1.ts[0341] http://digserv.service-provider.net/firstindexfile/200/segment-2.ts[0342] http://digserv.service-provider.net/firstindexfile/200/segment-3.ts[0343] http://digserv.service-provider.net/firstindexfile/200/segment-4.ts[0344] http://digserv.service-provider.net/firstindexfile/200/segment-5.ts[0345] http://digserv.service-provider.net/firstindexfile/200/segment-6.ts[0346] http://digserv.service-provider.net/firstindexfile/200/segment-7.ts[0347] http://digserv.service-provider.net/firstindexfile/200/segment-8.ts[0348] http://digserv.service-provider.net/firstindexfile/200/segment-9.ts[0349] http://digserv.service-provider.net/firstindexfile/200/segment-10.ts[0350] http://digserv.service-provider.net/firstindexfile/200/segment-11.ts[0351] http://digserv.service-provider.net/firstindexfile/200/segment-12.ts[0352] 这些服务提供商分段传送URL包括主机名称digserv.service-provider.net,其与基础设施服务提供商service-provider.net相关联,且在这个示例中还使用了指定数字服务和服务提供商的主机名称(例如,具有基础设施服务提供商的数字服务的帐户或在基础设施服务提供商内的基础设施子集);这些服务提供商分段传送URL还包括URL的路径部分,通过其能够从数字服务请求给定的视频分段文件,例如,firstindexfile/200/segment-1.ts。
[0353] 如果受到基础设施服务提供商的支持,这些服务提供商分段传送URL可能还含有会话ID;在这个示例中,含有会话ID的两个可能的这种服务提供商分段传送URL可能是:
[0354] http://digserv.service-provider.net/XYZ789/firstindexfile/200/segment-1.ts
[0355] 以及
[0356] http://digserv.service-provider.net/firstindexfile/200/segment-1.ts?s=XYZ789
[0357] 在第一种情况下,会话ID被置于URL的路径部分中;在第二种情况下,会话ID附加到URL作为查询字符串。如果受到基础设施服务提供商的支持,会话ID在URL内的实际放置将由基础设施服务提供商的URL解析能力和/或信息记录和报告能力所确定,或者以其他方式受到基础设施服务提供商的支持。
[0358] 在发出的变体HLS清单文件中配置的URL中的第四个示例示出清单文件处理程序,其配置分段重定向URL,如下所示:
[0359] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-1.ts
[0360] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-2.ts
[0361] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-3.ts
[0362] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-4.ts
[0363] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-5.ts
[0364] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-6.ts
[0365] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-7.ts
[0366] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-8.ts
[0367] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-9.ts
[0368] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-10.ts
[0369] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-11.ts
[0370] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-12.ts
[0371] 这些分段重定向URL包括主机名称redirect21.indexhandler.net,其识别分段重定向处理器;包括会话ID XYZ789;包括URL的路径部分,通过其能够从数字服务请求给定的视频分段文件;包括可选的字符串digserv,其指定与所请求的视频相关联的数字服务;并包括可选的字符串servpro,其指定与其视频分段文件传送相关联的基础设施服务提供商service-provider.net。
[0372] 在发出的变体HLS清单文件中配置的URL的第五个示例示出清单文件处理程序,其配置URL类型的组合,在这个示例中,为识别要由分段文件服务器的网络进行传送的视频分段文件的视频分段传送URL和识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商传送URL,如下所示:
[0373] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-1.ts
[0374] http://digserv.service-provider.net/firstindexfile/200/segment-2.ts[0375] http://digserv.service-provider.net/firstindexfile/200/segment-3.ts[0376] http://digserv.service-provider.net/firstindexfile/200/segment-4.ts[0377] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-5.ts
[0378] http://digserv.service-provider.net/firstindexfile/200/segment-6.ts[0379] http://digserv.service-provider.net/firstindexfile/200/segment-7.ts[0380] http://digserv.service-provider.net/firstindexfile/200/segment-8.ts[0381] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-9.ts
[0382] http://digserv.service-provider.net/firstindexfile/200/segment-10.ts[0383] http://digserv.service-provider.net/firstindexfile/200/segment-11.ts[0384] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-12.ts
[0385] 在这个示例中,第一、第五、第九和第十二个URL为视频分段传送URL,其识别要由分段文件服务器的网络的集群“B”进行传送的视频分段文件,而剩余的URL则是识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL。
[0386] 在发出的变体HLS清单文件中配置的URL的第六个示例示出清单文件处理程序,其配置URL类型的组合,再次地,在这个示例中,为识别要由分段文件服务器的网络进行传送的视频分段文件的视频分段传送URL和识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商传送URL,如下所示:
[0387] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-1.ts
[0388] http://digserv.service-provider.net/firstindexfile/200/segment-2.ts[0389] http://digserv.service-provider.net/firstindexfile/200/segment-3.ts[0390] http://digserv.service-provider.net/firstindexfile/200/segment-4.ts[0391] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-5.ts
[0392] http://digserv.service-provider.net/firstindexfile/200/segment-6.ts[0393] http://digserv.other-service-provider.net/firstindexfile/200/segment-7.ts
[0394] http://digserv.other-service-provider.net/firstindexfile/200/segment-8.ts
[0395] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-9.ts
[0396] http://digserv.other-service-provider.net/firstindexfile/200/segment-10.ts
[0397] http://digserv.other-service-provider.net/firstindexfile/200/segment-11.ts
[0398] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-12.ts
[0399] 在这个示例中,第一、第五、第九和第十二个URL为识别要由分段文件服务器的网络的集群“B”进行传送的视频分段传送URL,而第二、第三、第四和第六个URL为识别要由第一基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL,其操作主机名称digserv.service-provider.net,且第七、第八、第十和第十一个URL为识别要由第二基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL,其操作主机名称digserv.other-service-provider.net。
[0400] 在发出的变体HLS清单文件中配置的URL中的第七个示例为配置URL类型的组合的清单文件处理程序的另一个例示,在这个示例中:为识别要由分段文件服务器的网络进行传送的视频分段文件的URL,其中在每个这样的URL中指定特定的分段文件服务器;为识别要由基础设施服务提供商进行传送的视频分段文件的URL;以及分段重定向URL,如下所示:
[0401] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-1.ts
[0402] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-2.ts
[0403] http://digserv.service-provider.net/firstindexfile/200/segment-3.ts[0404] http://digserv.service-provider.net/firstindexfile/200/segment-4.ts[0405] http://digserv.service-provider.net/firstindexfile/200/segment-5.ts[0406] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-6.ts
[0407] http://digserv.service-provider.net/firstindexfile/200/segment-7.ts[0408] http://digserv.service-provider.net/firstindexfile/200/segment-8.ts[0409] http://digserv.service-provider.net/firstindexfile/200/segment-9.ts[0410] http://sfs.b.indexhandler.net/XYZ789/digserv/firstindexfile/200/segment-10.ts
[0411] http://digserv.service-provider.net/firstindexfile/200/segment-11.ts[0412] http://redirect21.indexhandler.net/XYZ789/digserv/servpro/firstindexfile/200/segment-12.ts
[0413] 在这个示例中,前两个URL为识别要由分段文件服务器的网络的集群“B”进行传送的视频分段文件的视频分段传送URL;后三个URL为识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL;第六个URL为识别要由分段文件服务器的网络的集群“B”进行传送的视频分段文件的另一个视频分段传送URL;后三个URL(第七、第八和第九个)再次为识别要由基础设施服务提供商进行传送的视频分段文件的服务提供商分段传送URL;第十个URL为识别要由分段文件服务器的网络的集群“B”进行传送的视频分段文件的另一个视频分段传送URL;第十一个URL为识别要由基础设施服务提供商进行传送的视频分段文件的另一个服务提供商分段传送URL;且第十二个URL为分段重定向URL,其将从由主机名称redirect21.indexhandler.net识别的分段重定向处理器进行请求。
[0414] 在主要实施例和次要实施例中,在发出的变体HLS清单文件中的URL配置结构和视频分段URL类型的可配置性在需要时提供了灵活性且在必要时提供了具体性,以及跨基础设施组件和(在适用时)基础设施服务提供商在处理多个URL请求和包括单个HLS视频传送(或类似地在其他基于HTTP的自适应流式传输视频传送协议中包括单个视频传送)的文件传送中的同步操作和测量、高性能和有效资源利用。在发出的视频分段传送URL、重定向分段URL以及(在受到基础设施服务提供商支持的情况下)服务提供商分段传送URL的URL路径(或适用时在其中的其他地方)中包括所分配的会话ID确保了跨与视频至该特定请求装置的传送相关联的所有发出的URL为通用的,但对于该视频至该请求装置的传送来说是唯一的(或大致是唯一的,见在本发明中的相关描述和额外的注意事项以获得关于GUID的更多的信息)(且不同于在与其他视频至该请求装置的传送相关联或与相同的视频至其他请求装置的传送相关联的URL中的会话ID的)会话ID在所有支持的URL中进行配置且使得能够个别地管理、测量和报告至装置的每个离散的视频传送。在此提醒,要注意的是从由清单文件处理程序接收到对HLS清单文件的初始请求的时间开始,用相同的会话ID配置用于视频分段传送URL以及(对于支持会话ID的基础设施服务提供商而言)用于服务提供商分段传送URL的从该初始请求,包括对HLS清单文件的请求派生的所有后续请求。这使得能够:
[0415] o进行个别传送至资源以及一个以上的基础设施服务提供商的高度精细的分配以及集合传送在其之间的分配,其中该资源包括基础设施组件的网络;
[0416] o进行个别基础设施资源和或个别基础设施资源的集群或组在基础设施组件的网络内的精确且有效的管理;和/或将基础设施资源的网络连接到请求装置、其他装置和其他网络;和/或(如果且如所支持的)在基础设施服务提供商内进行;
[0417] o进行基础设施资源和基础设施服务提供商性能、性能变化和利用的精确测量和报告;
[0418] o进行基础设施资源和基础设施服务提供商的性能、性能变化和利用与特定视频、视频传送和外部特征、条件和情况以及在其之间的精细关联;以及
[0419] o进行请求装置的行为、请求装置的行为变化和在其之间的行为变化和利用的精确测量和报告。
[0420] 在单个发出的变体HLS清单文件中灵活地配置不同类型的视频分段文件URL且随后当其由分段文件服务器接收时测量、收集并报告视频分段传送URL的时序和性能使得基础设施组件的操作网络能够在其本身的资源和基础设施服务提供商之间或在其本身资源和基础设施服务提供商的组合之间分配视频传送且进一步地详细测量其本身的实际性能和基础设施服务提供商的实际性能。特别地,因为包含在变体HLS清单文件中的视频分段文件是由请求装置按特定的顺序(其中分段适当地包括视频内容的顺序)进行请求的,在其中将在以其他方式由基础设施服务提供商分段传送URL组成的变体HLS清单文件内请求视频分段文件的顺序期间定期地(有规律地、无规律地、间歇地或以其他方式)散布视频分段传送URL(例如,见上面的第六个示例)使得基础设施组件的操作网络能够基于当散布的视频分段URL被请求时的其时序和特定构成来测量基础设施服务提供商的详细性能、性能变化和总体传送量。
[0421] 现在参考图5,示出了两个发出变体清单文件的例子,变体清单文件已经被产生和/或被配置用于自适应流式传输视频,且使用上面所讨论的某些技术以在引用一个以上的基础设施服务提供商122和124的其他视频分段传送URL内散布引用系统100的分段文件服务器的视频分段传送URL(例如,定期定位的、有规律插入的、无规律插入的、间隔或随机定位的或其他方式的)。
[0422] 具体地说,图5示出第一个发出的变体清单文件500和第二个发出的变体清单文件550。第一个发出的变体清单文件500包括引用用于自适应流式传输视频的按200kbps编码的视频分段文件且第二个发出的变体清单文件550包括引用按600kbps编码的视频分段文件。存在有用于该视频的12个分段,因此在每个发出的变体清单文件中有12个URL。根据由每个URL引用的视频分段文件的视频分段数量来对URL进行排序。因此,引用与视频的第一分段相对应的视频分段文件的URL是在每个发出的变体清单文件中的第一个URL,且引用与视频的最后一个分段相对应的视频分段文件的URL是在每个发出的变体清单文件中的最后一个URL。
[0423] 第一个发出的变体清单文件500包括URL 502-524。在这个实施例中,第一个URL 502、第五个URL 510、第九个URL 518和最后一个URL 524指定根据本文所述的实施例而实施的分段文件服务器或集群以传送各个视频分段文件。包含在这些URL 502、510、518和524的主机字段中的主机名称是sfs.b.manifestserver.net,其例如指定在二级域manifestserver.net内的分段文件服务器(sfs.b)的集群B。在其他实施例中,不同的分段文件服务器或集群能够用于在单个发出的变体清单文件中的URL。例如,第一个URL 502能够指定分段文件服务器的集群B,而第五个URL 510能够指定集群A或特定的分段文件服务器。URL 502、510、518和524的路径部分包括会话ID XYZ789、字符串contentprovider,其指定用于请求视频的内容提供商以及各个视频分段文件的路径。
[0424] 在第一个发出的变体清单文件500中的其他URL 504-508、512-516和520-522指定用于传送各个视频分段文件的基础设施服务提供商服务器。主机字段含有主机名称contentprovider.service-provider.net,其指定在二级域service-provider.net内的子域contentprovider。在这个实施例中,所有URL 504-508、512-516和520-522指定相同的二级域,其是与基础设施服务提供商服务器相关联的主机名称;在引用相同视频的另一个回放(例如,对观看视频的第二个用户进行的回放)的另一个发出的清单中,URL 504-508、512-516和520-522能够指定不同的二级域,其是与第二基础设施服务提供商相关联的主机名称,从而以使得在许多服务提供商之间分配视频的分布,例如,根据分布策略而进行。在其他实施例中,URL 504-508、512-516和520-522中的一些能够指定一个基础设施服务提供商,而URL 504-508、512-516和520-522中的其他URL则能够指定第二基础设施服务提供商以在许多基础设施服务提供商之间分配视频的分布,例如,根据分布策略或模型而进行。在每一对的分段文件服务器URL之间的服务提供商URL的数量,其在这个情况下为三个,还能够根据分布策略或模型进行确定以实施一定百分比的分布以及将由分段文件服务器处理的所服务的分段文件的频率。URL 504-508、512-516和520-522的路径部分包括各个视频分段文件的路径。在这个实施例中,会话ID不包括在服务提供商URL 504-508、512-516和520-
522中。在服务提供商支持会话ID和记录/报告测量的其他实施例中,服务提供商URL 504-
508、512-516和520-522还能够包括会话ID,例如,在主机字段中,在路径部分中或作为查询字符串而进行附加。
[0425] 第二个发出的清单文件550包括URL 552-574。在这个实施例中,指定分段文件服务器的URL和指定服务提供商服务器的URL的定位在第一个发出的变体清单文件500和第二个发出的清单文件550之间是一致的。因此,URL 552、560、568和574指定分段文件服务器且URL 554-558、562-566和570-572指定基础设施服务提供商。除了跨发出的变体清单文件使用URL类型的一致定位以用于不同的编码比特率之外,一致的定位还能够跨发出的变体清单文件而使用以用于不同的会话和不同的视频。具有URL类型的一致定位的优点包括对分段文件服务器的较低的存储容量的要求,这是因为分段文件服务不需要存储未由分段文件服务器传送的分段。在其他实施例中,URL类型的随机定位能够跨视频分段中的一些或所有而使用,其可以使得分段文件服务器能够跨视频分段以更高的精细度记录传送测量。
[0426] 使第一个URL和/或最后一个URL指定分段文件服务器也具有优点。通过在第一个URL中指定分段文件服务器,能够确保通过用户的接入网络以可能的最快传输速率将视频的第一个分段传送至用户。因此,在编码比特率中的任何后续的降档能够与传送视频的其他分段的基础设施服务提供商的网络性能相关联。通过在最后一个URL中指定分段文件服务器,分段文件服务器能够记录有关请求并完成视频的最后一个分段的下载且因此观看整个视频的用户的数量和百分比的测量。
[0427] 在一些实施例中,能够基于分段文件服务器的网络性能对在发出的变体清单文件中的分段文件服务器URL的数量进行动态调整。例如,如果网络流量变得拥塞或网络性能在分段文件服务器网络上降低,在发出的变体清单文件中则能够包括更少的分段文件服务器URL以确保用户体验不会由于通过分段文件服务器进行的视频分段文件的传送而受到影响。在这种情况下,所有的清单文件可以配置较少的分段文件URL;可替代地,一些清单文件可以配置有标准数量的分段文件服务器URL且一些清单文件可以配置有减少的数量的分段文件URL和更大数量的基础设施服务提供商服务器URL,从而减少对分段文件服务器的总体要求,同时在一些视频回放会话中仍保持标准的测量频率。在极端条件下,发出的清单文件能够进行动态调整,以使得在一些或所有发出的清单文件中的所有URL指定基础设施服务提供商以确保视频内容对用户的可用性。
[0428] 在发出的变体HLS清单文件中配置分段重定向URL使得清单文件处理程序能够:
[0429] ·延迟作为第一个替代物的一个以上的分段文件服务器以及作为第二个替代物的一个以上的基础设施服务提供商之间的选择直到当请求分段重定向URL的时间点为止[0430] ·延伸对基础设施服务提供商的选择直到当请求分段重定向URL的时间点为止[0431] ·测量在都被分配到基础设施服务提供商的一系列视频分段文件请求内的一个点处的视频分段文件请求的时序
[0432] 配置包含与一个以上的特定分段文件服务器相关联的主机名称的视频分段传送URL使得清单文件处理程序能够在那种情况下识别非常适合于处理对该视频分段传送URL的请求的一个以上的分段文件服务器并管理分配到一个以上的分段文件服务器的视频分段传送URL的量。在主要实施例和次要实施例中,DNS授权名称服务器采用相对静态的主机名称解析,这表示将通过一系列主机名称解析请求来一致地把特定主机名称解析成相同的一个以上的服务器的IP地址,这使得清单文件处理程序能够可预测地将传送分配到特定的分段文件服务器。可选地,作为替代的或补充的技术,DNS授权名称服务器能够采用相对动态的主机名称解析,这表示将通过一系列的主机名称解析请求将特定的主机名称解析成可能会发生变化的IP地址,这使得DNS授权名称服务器能够在主机名称解析时间将传送分配到分段文件服务器(然而,在此提醒,且如在本发明的关于内容传送网络DNS主机名称解析的背景部分中所讨论的,当使用DNS主机名称解析分配服务器时有一些固有的限制;然而,另请参见对利用包括在由DNS授权名称服务器解析的主机名称中的会话ID的额外实施例的描述)。
[0433] 配置包含与分段文件服务器的特定集群相关联的主机名称的视频分段传送URL使得清单文件处理程序能够在那种情况下当且如果适用时识别非常适合于处理对变体HLS清单文件中的所有或任一个的请求的分段文件服务器的集群,但仍不在集群内选择个别的分段文件服务器,留下该选择以替换稍后的点,例如,在将分段文件服务器集群的主机名称解析成一个以上的IP地址时,或作为另一个示例,当(在将分段文件服务器集群的主机名称DNS解析成与分段文件服务器集群相关联的一个以上的交换机IP地址之后)由交换机在分段文件服务器集群接收对视频分段传送URL的连接请求且随后由交换机将连接请求引向特定的分段文件服务器时;
[0434] 配置包含用于分段文件服务器网络的主机名称的视频分段传送URL使得清单文件处理程序能够在那种情况下将对特定分段文件服务器或分段文件服务器集群的选择推迟到该过程中稍后的点,在该点上,另一个基础设施组件能够选择非常适合于处理对视频分段传送URL中的所有或任一个的请求的分段文件服务器或分段文件服务器集群。
[0435] 在发出的视频分段传送URL和分段重定向URL的路径部分中包括在对HLS清单文件的初始请求中含有的数字服务主机名称或指定与对HLS清单文件的初始请求相关联的数字服务的字符串使得对于其接收的这样的URL来说曾需要派生其能够用以直接从数字服务请求该对象或出于任何其他原因而将该URL与和对HLS清单文件的初始请求相关联的数字服务相关联的任何基础设施组件能够在不具有除了其接收的URL和主机名称权限文件之外的输入的情况下这么做。
[0436] 类似地,用与基础设施服务提供商相关联的(且可选地,由服务提供商与数字服务相关联的)主机名称以及用数字服务URL或可选地为基础设施服务提供商URL的路径部分(如包含在发出的服务提供商分段传送URL的路径部分中的相应的源变体HLS清单文件中的)来配置发出的服务提供商分段传送URL或可选地用如包含在相应的源变体HLS清单文件中的基础设施服务提供商URL来配置发出的服务提供商分段传送URL使得基础设施服务提供商能够接收和处理对视频分段文件的URL请求并传送视频分段文件。
[0437] 服务提供商管理器和集群性能管理器
[0438] 继续讨论主要实施例和次要实施例,清单文件处理程序连同服务提供商管理器和集群性能管理器一起运行以配置在发出的变体HLS清单文件中进行配置的视频分段文件URL。在其他实施例中,清单文件处理程序间接地连同集群性能管理器一起工作,直接连同服务提供商管理器一起工作(其转而与集群性能管理器一起工作并将集群性能管理器的结果提供至清单文件处理程序);或间接地连同服务提供商管理器一起工作,直接连同集群性能管理器一起工作(其转而与服务提供商管理器一起工作并将服务提供商管理器的结果提供至清单文件处理程序)。
[0439] 要注意的是,当清单文件处理程序从请求装置接收到对变体HLS清单文件的请求时,如前所述,在大多数情况下其知道请求装置的实际网络地址,其能够用于确定任何基础设施组件至请求装置的距离(网络术语)或能够用于选择在将视频分段文件传送至该网络位置中表现良好的基础设施服务提供商。清单文件处理程序具有关于所请求的准确的HLS视频清单文件(且因此为与所请求的HLS清单文件相关联的HLS视频)和包括其的视频分段文件的正确且精确的信息且能够为每个这样的视频分段文件进行各个传送分配。能够按多种方式使用该正确且精确的信息,例如,用于选择具有或可能具有在存储器中的视频分段文件的服务器,将视频分段文件中的所有或部分上传至在一个以上的特定服务器的存储器中,选择在传送与该特定HLS视频相关的视频分段文件或在传送具有和该特定HLS视频的那些一样或类似的一个以上的属性的视频分段文件中表现良好的基础设施服务提供商。
[0440] 个别地或一起地,这些因素用于确定哪些分段文件服务器(或可选地,哪些分段文件服务器的集群)以及哪些基础设施服务提供商被分配到将是或可以是由请求装置所请求的(并传送至其的)每个视频分段文件。分配到分段文件服务器或分段文件服务器集群的视频分段文件传送的总数是准确计数的而不是估计或预测的,其比按组(其通常在大小和组成方面是未知且可变的)分配视频分段传送的现有基础设施服务提供商的过程更加精确和准确。且可选地,这种方法允许至少部分地基于可用的基础设施服务提供商在将具有相当属性的HLS视频分段文件传送到相同或相当的网络位置或网络分部中表现得如何而为每个个别的视频,且进一步为每个个别的视频分段文件选择基础设施服务提供商。
[0441] 在主要实施例和次要实施例的可选方面中,清单文件处理程序还能够在发出的变体HLS清单文件中配置故障切换(failover)URL。故障切换URL是对应于第一URL的第二URL且将在某些条件,通常为从其请求第一URL对URL请求适当地或及时地作出响应的服务器发生故障的条件下由请求装置的视频回放组件自动地进行请求。典型地,故障切换URL是由请求装置的视频回放组件连同为URL提供的元数据所使用的,其中元数据为URL的故障切换选项,即故障切换URL通常不具有不同于URL的元数据或除其之外的单独的元数据,其中元数据为URL的故障切换选项。在主要实施例和次要实施例的这个可选方面中,清单文件处理程序通常将故障切换URL配置成最终请求相同的视频分段文件的替代方法并能够实现对请求装置的视频回放组件的更大程度的控制,如本文进一步所述。在其他实施例中,服务提供商管理器和集群性能管理器被组合成单个服务执行管理器。
[0442] 服务提供商管理器
[0443] 在主要实施例和次要实施例中,清单文件处理程序将分配的会话ID,源变体HLS清单文件中的视频分段文件URL,与源变体HLS清单文件中的视频分段文件URL相关联的元数据,可选地为源变体HLS清单文件的URL,以及可选地为在对HLS清单文件的初始装置请求中的所请求的URL提供至其服务提供商管理器(或可选地为另一个服务提供商管理器)。可选地,这种信息中的一些或全部可以集中地进行存储以用于多个清单文件处理程序,诸如集中地在集群内,在一组集群内,在区域内或在清单文件处理程序的网络内,且至集中存储的信息的指针或与集中存储的信息相关联的一个以上的参数或索引值是由清单文件处理程序提供至服务提供商管理器的。在另一个实施例中,经会话关联存储库或会话关联服务将该信息提供给服务提供商管理器。
[0444] 服务提供商管理器确定要用于每个视频分段文件的视频分段文件URL类型并将其(直接或间接地)返回至清单文件处理程序;以及对于任何视频分段文件URL而言,其中要使用的URL类型为服务提供商分段传送URL,要配置的基础设施服务提供商以及可选地为适当配置服务提供商分段传送URL所需的任何额外的信息。
[0445] 此外,对于要使用的URL类型为分段重定向URL的任何视频分段文件URL而言,服务提供商管理器确定要用于在从分段重定向URL的请求装置收到后立即指定要在HTTP 302重定向消息中返回的重定向URL的URL重定向引数并将其(直接或间接地)提供至分段重定向处理器。如在本背景下所使用的,URL重定向引数是指:在无条件的重定向引数的情况下,要在HTTP 302重定向消息中返回的用于配置重定向URL的重定向URL或URL的类型以及相关联的参数;以及在有条件的重定向引数、条件指示符以及用于每个所指示的条件的情况下,要在该条件下在HTTP 302重定向消息中返回的用于配置重定向URL的重定向URL或URL的类型和相关联的参数(有关额外的信息,请参见本发明的分段重定向处理器部分)。
[0446] 在主要实施例和次要实施例的可选方面中,服务提供商管理器确定在本文中称为基准分段重定向URL的分段重定向URL的类型并将其(直接或间接地)返回至清单文件处理程序。清单文件处理程序将基准分段重定向URL视为其他分段重定向URL来进行处理。在基准分段重定向URL的情况下,服务提供商管理器确定作为URL重定向引数,通常作为无条件的重定向引数(表示视频分段传送URL将总是作为重定向URL在HTTP 302重定向消息中进行返回),但可选地也可作为有条件的重定向引数(表示在指定的条件下,视频分段传送URL将作为重定向URL在HTTP 302重定向消息中进行返回,且在其他条件下,则不会这样)的视频分段传送URL并将其(直接或间接地)提供至分段重定向处理器。
[0447] 在主要实施例和次要实施例的可选方面中,服务提供商管理器将在提供给分段重定向处理器的视频分段传送URL中保留的主机名称配置为用于分段重定向URL的重定向引数;在这种实例中,所保留的主机名称可以识别一个以上的分段文件服务器或一个以上的分段文件服务器集群,其被指定连同基准分段重定向URL一起使用或作为替代方案,可以按传统基础设施服务提供商的方式由DNS授权名称服务器来指定用于DNS解析。可替代地,服务提供商管理器连同集群性能管理器一起运行以将提供给分段重定向处理器的视频分段传送URL中的主机名称配置成用于分段重定向URL的重定向引数,其识别非常适合于处理对由这种视频分段传送URL识别的视频分段文件的请求的一个以上的分段文件服务器或一个以上的分段文件服务器的集群或(如果且当适用时)用以配置在运行中将对特定的一个以上的分段文件服务器或一个以上的分段文件服务器的集群的选择推迟至稍后的时间的视频分段传送URL,在这个点上,另一个基础设施组件选择非常适合于处理对由这种视频分段传送URL识别的视频分段文件的请求的一个以上的分段文件服务器或一个以上的分段文件服务器的集群。
[0448] 除了别的之外,基准重定向URL对于测量在当完成HTTP 302重定向消息至请求装置的发出和当由分段文件服务器接收到相应的视频分段传送URL时之间的时间来说是有用的。这个间隔是对在特定请求装置和基础设施组件的网络之间的往返时间的合理测量。
[0449] 为了确定要用于在要发出的变体HLS清单文件中的每个视频分段文件URL的视频分段文件URL,服务提供商管理器连同均源于分布策略存储库的一个以上的分布策略和分布模型一起使用从性能管理程序接收的性能和利用信息。
[0450] 分布策略为给定的变体HLS清单文件确定视频分段文件URL在可能的URL类型之间的分配。作为一个简单的示例,分布策略可以指定50%的视频分段传送URL和50%的基础设施服务提供商分段传送URL;而分布模型则可以指定所分配的视频分段文件URL将以视频分段传送URL开始进行排序(在回放序列内)且随后以尽可能均匀构造的间隔使其他视频分段传送URL与其他URL进行交错;这将导致以视频分段传送URL开始的顺序(在回放序列中),随后是基础设施服务提供商分段传送URL,后面是另一个视频分段传送URL且继续至替代物直到回放序列的结束为止。作为另一个示例,分布策略能够指定20%的URL指定分段文件服务器/集群且80%的URL指定基础设施服务提供商,以及指定基础设施服务提供商的URL中的60%指定第一基础设施服务提供商且40%指定第二基础设施服务提供商。
[0451] 分布模型确定URL类型在给定的变体清单文件中的分布模式或排序。例如,分布模型能够指定在回放序列中的第一URL指定系统200的分段文件服务器/集群,接下来是指定服务提供商服务器的特定数量的URL(诸如4个),后面是指定系统200的分段文件服务器/集群的URL,接下来再次是指定服务提供商服务器的特定数量的URL,且以这种方式继续至在URL类型之间的替代物直到回放序列的结束为止。
[0452] 在主要实施例和次要实施例中,在分布策略存储库中维护分布策略和分布模型,其是随着添加、删除或改变分布策略和/或分布模型而跨服务提供商管理器同时进行更新的。
[0453] 在主要实施例和次要实施例的可选方面中,分布策略还能够指定要包括在服务提供商分段传送URL中配置的主机名称中的增强型信息。如前面已描述的,在配置包括服务提供商分段传送URL的视频分段文件URL的时间上,清单文件处理程序(且因此还有服务提供商管理器)具有比其解析包括在服务提供商分段传送URL中的主机名称时可用于基础设施服务提供商的更多的关于视频分段文件的信息;因此,使清单文件处理程序在服务提供商分段传送URL中配置的服务提供商主机名称中包括该信息,或与其相关联的或从其派生的参数中的一些或所有可能是有利的。例如,请求装置的IP地址、与请求装置相关联的用户代理和/或视频内容或视频内容的类别能够被配置或编码成服务提供商主机名称,以使得服务提供商具有当其解析主机名称时可用的该信息。这种增强型信息分布策略可选地包括要包括在增强型服务提供商主机名称中的增强型信息,增强型服务提供商主机名称的格式和结构以及增强型服务提供商主机名称的给定的数字服务的使用的资格以及管理其的条件。
[0454] 分布策略能够特定于下列中的任一个或任何组合:
[0455] ·与视频或类别、参数、库或由数字服务提供的其他视频分段信息相关联的数字服务;
[0456] ·视频的持续时间;
[0457] ·视频的发行日期、发布日期或可用日期;
[0458] ·包括源变体HLS清单文件的视频分段文件的数量和大小;
[0459] ·视频模式(例如,点播视频或线性视频);
[0460] ·请求装置或用户代理或用户代理的类别或类型或与用户代理相关联的属性或特征,其是在对HLS清单文件的初始装置请求中或在对非清单文件URL的先前的请求中进行识别的;
[0461] ·请求装置的网络位置或与请求装置的网络位置相关联的网络位置;
[0462] ·请求装置所连接到的网络,请求装置所连接到的网络的类别或类型或与请求装置所连接到的网络相关联的属性或特征;
[0463] ·与对HLS清单文件的初始装置请求的请求或与清单文件处理程序对其的响应相关联的另一个网络;
[0464] ·请求装置的地理位置或与请求装置的地理位置相关联的地理位置;
[0465] ·一个以上的基础设施服务提供商;
[0466] ·基础设施服务提供商的类别;
[0467] ·与被分配到一个以上的基础设施服务提供商或基础设施服务提供商的类别的或与其相关联的视频分段文件传送的量相关联的一个以上的阈值、上限、优先级、分配、最小值、最大值、平均值或其他约束、边界、目的、目标或特征;
[0468] ·一个以上的基础设施服务提供商或基础设施服务提供商的类型或类别的测量性能;
[0469] ·与一个以上的基础设施服务提供商或基础设施服务提供商的类型或类别相关联的所测量的性能异常;
[0470] ·一个以上的基础设施组件或基础设施组件的类型、类别、组或集群的测量性能;
[0471] ·与一个以上的基础设施组件或基础设施组件的类型、类别、组或集群相关联的所测量的性能异常;
[0472] ·清单文件处理程序、清单文件处理程序的网络位置或地理位置或与清单文件处理程序相关联的属性或特征;
[0473] ·源变体HLS清单文件或包含在源变体HLS清单文件中的信息,其包括元数据、标签或以其他方式为功能性的或非功能性的其他信息;
[0474] ·源变体HLS清单文件的URL或其任何部分(包括主机名称、路径或查询字符串或其任何部分);
[0475] ·与源主HLS清单文件相关联的源主HLS清单文件,其包括元数据、标签或以其他方式为功能性的或非功能性的其他信息;
[0476] ·源主变体HLS清单文件的URL或其任何部分(包括主机名称、路径或查询字符串或其任何部分);
[0477] ·包含在对HLS清单文件的初始装置请求中的URL或其任何部分(包括主机名称、路径或查询字符串或其任何部分);
[0478] ·在包含在对HLS清单文件的初始装置请求中的URL的请求之前的非索引文件URL或其部分(包括主机名称、路径或查询字符串或其任何部分);
[0479] ·主HLS清单文件或变体HLS清单文件的请求速率;
[0480] ·时间、日期、一天中的部分、星期几、几号或几周、月份或季节或其他时间因素;
[0481] ·基于业务规则的分布策略
[0482] ·或在分布策略存储库中定义的一个以上的任意分布策略
[0483] 可选地,分布策略或分布模型能够在一些、变化的或所有条件下分配范围、优先级、一个以上的情境优先级、权重或值和/或分布策略的相对重要性的其他指示符或与其相关联。可选地,分布策略存储库还能够含有用于在一些变化的或所有条件下解决在分布策略和分布模型之间冲突的规则和优先级。
[0484] 在主要实施例和次要实施例的可选方面中,可选地,清单文件处理程序还在其配置和返回变体HLS清单文件时通知服务提供商管理器,从而向被配置和返回至请求装置的HLS变体清单文件的服务提供商管理提供确认。
[0485] 在其他实施例中,服务提供商管理器向清单文件处理程序提供分配信息,且清单文件处理程序使用分配信息连同包含在变体HLS清单文件中的信息,且可选地,连同其具有的关于变体HLS清单文件请求的其他信息,以确定要用于每个视频分段文件的视频分段文件URL以及用于其中要使用的URL类型为服务提供商分段传送URL的每个视频分段文件URL,以配置服务提供商分段传送URL。例如,这样的分配信息可能采用由与请求装置相关联的IP地址范围或其他网络标识符进行索引的且由数字服务及其各自的内容标识符或类别进行子索引的分配表;使用这个分配表,清单文件处理程序随后能够查找要在指定中使用的分配。在这样的其他实施例中,服务提供商管理器随着基础设施服务提供商的运行特征或测量性能发生变化或实质性地发生变化而更新分配信息。
[0486] 其他实施例利用相对较少的动态分配信息,其中服务提供商管理器以比基础设施服务提供商的运行特征或测量性能变化频率更低的频率更新分配信息或仅当与数字服务相关联的基础设施服务提供商改变时进行更新(例如,当数字服务从一个基础设施服务提供商变为另一个时或改变视频分段文件传送在其基础设施服务提供商之间的所需分配时)。
[0487] 在其他实施例中,在多个分布策略存储库中维护分布策略和分布模型,其中的每一个是跨使用该分布策略存储库的服务提供商管理器同时进行更新的;例如,可以为其中运行有基础设施组件的网络的每个单独的区域维护单独的分布策略存储库(例如,用于北美的区域性分布策略存储库、用于欧洲的单独的分布策略存储库、用于中国的单独分布策略存储库以及用于世界其他部分的单独的分布策略存储库)。
[0488] 在其他实施例中,分布策略和分布模型是在按另一种方式管理的多个分布策略存储库中进行维护的;是作为单独的记录进行维护的而不是汇总到存储库中;是经一个以上的运行在其中的API接入的或是由基础设施组件网络的运营商提供的;是经由使用基础设施组件的网络的数字服务运行的一个以上的API接入的;和/或是经由除了使用基础设施组件的网络的数字服务之外的各方所运行的一个以上的API接入的。
[0489] 集群性能管理器
[0490] 继续讨论主要实施例和次要实施例,清单文件处理程序可以连同集群性能管理器一起运行以配置识别一个以上的分段文件服务器的视频分段传送URL(在变体HLS清单文件中进行配置的)或非常适合于处理对由这种视频分段传送URL识别的视频分段文件的请求或(如果且当适用时)用以配置在运行中将对特定的一个以上的分段文件服务器或一个以上的分段文件服务器的集群的选择推迟至稍后的时间的视频分段传送URL,在这个点上,另一个基础设施组件选择非常适合于处理对由这种视频分段传送URL识别的视频分段文件的请求的一个以上的分段文件服务器或一个以上的分段文件服务器的集群。
[0491] 为了实现该能力,在主要实施例和次要实施例中,清单文件处理程序可以向其集群性能管理器(或可选地,向另一个集群性能管理器)提供请求装置的网络地址,与请求相关联的所分配的会话ID,用于要分配的视频分段文件的URL或其他识别信息,与视频分段文件相关联的元数据(诸如,时间长度、编码比特率/带宽、在包括HLS视频的视频分段文件的顺序中的位置)以及可选地为下列中的任一个或其任何组合:与视频分段文件相关联的计算或预测的信息(诸如,预期由装置请求的时间点,例如,从现在开始的30稍或30分钟),与视频分段文件相关联的视频模式(例如,点播视频或线性视频)和/或与对HLS清单文件的初始装置请求相关联的所请求的URL。可选地,这种信息中的一些或全部可以集中地进行存储以用于多个清单文件处理程序,诸如集中地在集群内,在一组集群内,在区域内或在清单文件处理程序的网络内,且至集中存储的信息的指针或与集中存储的信息相关联的一个以上的参数或索引值是由清单文件处理程序提供至集群性能管理器的。
[0492] 集群性能管理器还监控在其集群且可选地为在其他集群中的分段文件服务器的运行特征(或可选地,将这种信息与和其他集群相关联的集群性能管理器交换信息)。集群性能管理器监控的分段文件服务器的运行特征可选地包括但不限于下列中的任一个或其任何组合:可用性和正常运行条件或可替代地为分段文件服务器和/或其组件的故障或受损的运行条件,而无论其是持续的还是间歇性的;分段文件服务器和/或其组件的利用或负载(诸如,其存储器、储存器和网络连接或网络接口);当前在分段文件服务器上的存储器或储存器中的视频分段文件;分段文件服务器使用的或其所依赖的系统或设施的运行特征或条件,诸如网络连接、第2层或电力系统;和/或与分段文件服务器相关联的环境条件,诸如温度或湿度。
[0493] 另外,集群性能管理器还监控分段文件服务器集群或可选地为其他集群的运行特征(或可选地,将这种信息与和其他集群相关联的集群性能管理器交换信息),包括但不限于下列中的任一个或其任何组合:可用性和正常运行条件或可替代地为分段文件服务器集群和/或与其相关联的基础设施组件的故障或受损的运行条件(例如,与集群相关联的DNS授权名称服务器或与集群相关联的交换机),而无论其是持续的还是间歇性的;分段文件服务器集群和/或与其相关联的基础设施组件的利用或负载(例如,分段文件服务器的总负载和利用或与集群相关联的一个以上的交换机的总负载和利用);当前在分段文件服务器集群和/或与其相关联的基础设施组件(例如,与集群相关联的可选的库存储服务器)中的存储器中的视频分段文件;分段文件服务器集群使用的或其所依赖的系统或设施的性能、利用、运行特征或条件,诸如至另一个网络的连接、在集群所连接到的另一个网络中的装置或电力系统。
[0494] 在主要实施例和次要实施例中,集群性能管理器确定(并将其返回到清单文件处理程序)要在发出的变体HLS清单文件中进行配置的视频分段传送URL中通过使用主机名称来进行指定的一个以上的分段文件服务器或一个以上的分段文件服务器的集群或组或分段文件服务器的网络。
[0495] 在主要实施例和次要实施例的可选方面中,可选地,清单文件处理程序还在其配置和返回变体HLS清单文件时通知集群性能管理器,从而向被配置和返回至请求装置的HLS变体清单文件的集群性能管理器提供确认。
[0496] 在其他实施例中,集群性能管理器向清单文件处理程序提供分配信息,且清单文件处理程序使用分配信息连同包含在变体HLS清单文件中的信息,且可选地,连同其具有的关于变体HLS清单文件请求的其他信息,以通过使用主机名称来在发出的变体HLS清单文件中进行配置的视频分段传送URL中确定并指定一个以上的分段文件服务器或一个以上的分段文件服务器的集群或分段文件服务器的网络。例如,这样的分配信息可能采用由IP地址范围或其他网络标识符进行索引的且由数字服务及其各自的内容标识符或类别进行子索引的分配表;使用这个分配表,清单文件处理程序随后能够查找要在指定中使用的分配。在这样的其他实施例中,随着分段文件服务器、其他基础设施组件和/或分段文件服务器的集群的运行条件发生变化或实质性地发生变化和/或随着集群性能管理器从其他集群性能管理器接收的信息发生变化或实质性地发生变化,集群性能管理器更新分配信息。其他实施例利用相对较少的动态分配信息,其中集群性能管理器以比基础设施组件的运行条件改变频率更低的频率或仅当基础设施组件本身改变(例如,当将新的基础设施组件添加至可用的基础设施组件的池)时更新分配信息。
[0497] 在其他实施例中,清单文件处理程序不使用分配信息来进行所指示的指定中的一些或所有,而是使用循环轮转在分段文件服务器或其他基础设施组件中进行所指示的指定中的一些或所有,在分段文件服务器或基础设施组件中进行确定性分布,例如使用协议诸如CARP或随机分布在分段文件服务器或其他基础设施组件中进行。
[0498] 要注意的是,当一个以上的分段文件服务器的集群或组是由主机名称指定时,特定分段文件服务器的最终选择已缩小至指定的组或集群,但随后将在后续点上在该组或集群内的进行最终的确定;类似地,当分段文件服务器的网络是由主机名称指定时,特定分段文件服务器的最终选择尚未缩小且将在后续点上进行最终的确定。该特征在主要实施例和次要实施例的这个方面以及其他实施例中提供了灵活性。
[0499] 在其他实施例中,包括分段文件服务器的多个分布式实例,在每个集群/位置上具有分段文件服务器的多个实例且可选地为一个以上的清单文件处理程序以及一个以上的交换机,集群性能管理器向清单文件处理程序识别分段文件服务器的集群或与分段文件服务器的集群相关联的主机名称以在发出的变体HLS清单文件中进行配置的视频分段传送URL中进行指定。在一个这样的实施例中,清单文件处理程序将如在主要实施例和次要实施例中描述的信息提供至集群性能管理器,其确定(并将其返回到清单文件处理程序)要在视频分段传送URL中通过使用主机名称来指定的分段文件服务器的集群或组;在另一个这样的实施例中,集群性能管理器将分配信息提供至清单文件处理程序且清单文件处理程序使用该分配信息,可选地连同其具有的关于HLS清单文件请求的信息以进行分段文件服务器集群的指定,例如如前所述。在另一个实施例中,清单文件处理程序默认在发出的变体HLS清单文件中进行配置的视频分段传送URL中指定与其分段文件服务器的集群相关联的主机名称。在这些实施例中,与集群相关联且在视频分段URL中指定的主机名称随后通过DNS授权名称服务器解析成与集群相关联的一个以上的交换机的IP地址;交换机随后从请求用户装置接收所产生的连接请求并选择清单文件处理程序以处理视频分段传送URL的请求。
[0500] 在主要实施例和次要实施例中,集群性能管理器识别与一个以上的分段文件服务器相关联的主机名称,该主机名称返回到清单文件处理程序以在视频分段传送URL中进行指定(或可选地,包括在其提供至清单文件处理程序的分配信息中),且在其他实施例中,使用下列中的任一个或其任何组合识别与一个以上的分段文件服务器的集群相关联的主机名称,该主机名称返回到清单文件处理程序以在视频分段传送URL中进行指定(或可选地,包括在其提供至清单文件处理程序的分配信息中):
[0501] ·请求装置的网络位置或与请求装置的网络位置相关联的网络位置;
[0502] ·与一个以上的分段文件服务器的其他集群至请求用户装置的网络位置的距离(网络术语)相比,分段文件服务器的集群至与请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置的相对距离(网络术语);
[0503] ·与当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时一个以上的分段文件服务器的其他集群的性能(网络术语)相比,当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时分段文件服务器的集群的相对性能(网络术语);
[0504] ·分段文件服务器的当前和预期的可用性和利用性,包括(但不限于)用于处理视频分段传送URL请求的足够容量的可用性;
[0505] ·分段文件服务器,其具有之前处理过的对请求的视频分段传送URL的请求,对与相同的视频对象相关联的视频分段传送URL的请求,对与相同的数字服务相关联的视频分段传送URL的请求或对类似的视频分段传送URL的请求;
[0506] ·分段文件服务器与所请求的HLS清单文件的关联;
[0507] ·分段文件服务器与HLS清单文件请求URL的一部分或HLS清单文件请求消息的内容,诸如在HLS清单文件请求消息中识别的用户代理的关联;
[0508] ·分段文件服务器与和点播视频相关联的视频分段传送URL,和线性视频相关联的视频分段传送URL或和点播视频和线性视频的组合相关联的视频分段传送URL的关联或为其进行的优化;
[0509] ·主HLS清单文件或变体HLS清单文件的请求速率;
[0510] ·视频的持续时间;
[0511] ·视频的发行日期、发布日期或可用日期;
[0512] ·包括源变体HLS清单文件的视频分段文件的数量和大小;
[0513] ·请求装置或用户代理,或用户代理的类别或类型,或与用户代理相关联的属性或特征;
[0514] ·请求用户装置所使用的接入网络;
[0515] ·视频分段传送URL请求在分段文件服务器中的循环轮转;
[0516] ·视频分段传送URL请求在分段文件服务器中的确定性分布,例如,使用协议,诸如缓存阵列路由协议(CARP);
[0517] ·视频分段传送URL请求在分段文件服务器中的随机分布;
[0518] ·清单文件处理程序的网络位置;
[0519] 在主要实施例和次要实施例的可选方面中,集群性能管理器还可以连同其他基础设施组件运行,当分段文件服务器、清单文件处理程序、其他基础设施组件或基础设施组件的集群的运行特征变得无法接受,与相同类型的其他基础设施组件的运行特征或通常的基础设施组件的运行特征失去平衡,超过(或低于)指定阈值或以其他方式变化超过可接受的范围或容限时发送通知。
[0520] 例如,如果分段文件服务器或清单文件处理程序分别在其集群内开始经历不可接受或与其他分段文件服务器或清单文件处理程序失去平衡的性能或负载条件,集群性能管理器则能够通知在清单文件处理程序配置HLS清单文件和其中的URL之后进行选择的基础设施组件,诸如DNS授权名称服务器和/或集群交换机。这些通知能够向DNS授权名称服务器和/或集群交换机指示不应再选择所指示的基础设施组件以接收请求,例如,DNS授权名称服务器不应再DNS主机名称解析中包括表现不佳的分段文件服务器的IP地址或在交换机的情况下,交换机不应选择表现不佳的分段文件服务器以接收对视频分段传送URL的连接请求(至少直到进一步的通知为止)。
[0521] 这些可选的通知能够使得基础设施组件的操作网络经历更少的作为性能和可用性问题,特别是与清单文件处理程序和/或分段文件服务器相关联的问题结果的后果并更快地从其恢复。
[0522] 在另一个示例中,集群性能管理器能够连同服务提供商管理器运行以调整被配置成视频分段传送URL和服务提供商传送URL的视频分段文件URL所在的速率或其相对百分比;例如,如果基础设施服务提供商表现不佳,服务提供商管理器和集群性能管理器能够一起运行以确定分段文件服务器的网络具有从服务提供商接管视频分段文件传送的可用容量或分段文件服务器的网络不具有该可用容量;且如果分段文件服务器的网络具有该可用容量,则通知一个以上的清单文件处理程序来覆盖包含在清单文件处理程序的数字服务策略文件中用于一个以上的数字服务的指令。
[0523] 将发出的变体HLS清单文件返回至请求装置
[0524] 在主要实施例和次要实施例中,清单文件处理程序将发出的变体HLS清单文件返回至请求装置并创建包括会话ID和下列中的任一个或其任何组合的清单文件服务记录:一个以上的HLS清单文件标识符(其可以是所请求的HLS清单文件URL中的所有或部分,源HLS清单文件URL中的所有或部分或另一个标识符);在发出的变体HLS清单文件中配置的视频分段文件URL(或在主HLS清单文件的情况下,为在发出的主HLS清单文件中配置的变体HLS清单文件URL);请求装置的IP地址;接收到HLS清单文件请求的时间戳;完成HLS清单文件返回的时间戳;以及与HLS清单文件的请求和传送相关的TCP包级度量中的一些或所有,或TCP包级度量的摘要,包括但不限于用于包括TCP连接、包重试、重新请求、重新发送、包大小和组成以及与TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳。
[0525] 清单文件处理程序直接或间接地(通过将其发送至另一个基础设施组件或以其他方式使其可用于其而进行)向一个以上的性能管理程序发送清单文件服务记录或以其他方式使该记录可用于其,这可以在创建其之后立即或随后进行,可选地,在清单文件服务记录的组中进行;可选地,清单文件处理程序直接或间接地向一个以上的性能处理程序发送清单文件服务记录或一组清单文件服务记录的摘要或其摘录或以其他方式使该记录的摘要或摘录可用于其。
[0526] 可选地,性能管理程序可以向一个以上的其他性能管理程序发送清单文件服务记录;一组清单文件服务记录;清单文件服务记录的一个以上的摘要或以上的一摘录;或一组清单文件服务记录的一个以上的摘要或一个以上的摘录中的任一个或其任何组合或使其可用于由一个以上的其他性能管理程序进行检索。
[0527] 继续讨论主要实施例和次要实施例,清单文件处理程序将发出的变体HLS清单文件返回至请求装置。请求装置发出对视频分段的URL请求,在每种情况下,使用在发出的变体HLS清单文件中配置的视频分段文件URL。如前所述,使用自适应流式传输视频传送协议,请求客户端通常将以回放序列请求视频分段文件URL,一旦其已接收到足够数量的数据则开始视频的回放以这么做,且继续随着回放的进行在需要时请求分段文件。
[0528] 因此,当需要分段以进行回放时,回放过程导致请求装置发送对在发出的变体HLS清单文件中进行配置的视频分段文件URL的URL请求。将对服务提供商分段传送URL的请求发送到在URL中进行配置的基础设施服务提供商;在主要实施例和次要实施例中,基础设施组件的网络不接收或直接观察这些请求。然而,对视频分段传送URL和分段重定向URL的请求被发送到基础设施组件的网络,更具体地,被分别发送到如在视频分段传送URL中进行配置的分段文件服务器或被发送到如在分段重定向URL中进行配置的重定向处理器。
[0529] 分段重定向处理器
[0530] 在主要实施例和次要实施例的可选方面中,基础设施组件的网络包括一个以上的分段重定向处理器。分段重定向处理器可以在基础设施组件的网络中提供后续支持以处理在变体HLS清单文件中进行配置的分段重定向URL;因此,在不实施一个以上的分段重定向处理器(或等效功能)或不按其他方式支持对在变体HLS清单文件中进行配置的分段重定向URL的处理的实施例中,服务提供商管理器将不会指导对分段重定向URL类型的任何URL的配置,且清单文件处理程序也将不会执行对分段重定向URL类型的任何URL的配置。
[0531] 如前所述,在主要实施例和次要实施例中,对于要使用的URL类型为分段重定向URL的任何视频分段文件URL而言,服务提供商管理器确定要用于指定在从分段重定向URL请求的请求装置收到后立即返回的HTTP 302重定向消息或其他HTTP消息中进行配置的重定向URL的一个以上的URL重定向引数并将其提供至分段重定向处理器。如在本背景下所使用的,URL重定向引数是指:在无条件的重定向引数的情况下,要在HTTP 302重定向消息或其他HTTP消息中返回的用于配置重定向URL的重定向URL或URL的类型和相关联的参数,以及要返回的用于配置其他HTTP消息的任何相关联的参数;以及在有条件的重定向引数、条件指示符或语句以及用于每个条件指示符或语句的情况下,在该条件下要在HTTP 302重定向消息或其他HTTP消息中返回的用于配置重定向URL的重定向URL或URL的类型和相关联的参数,以及要返回的用于配置其他HTTP消息的任何相关联的参数。
[0532] 虽然不是强制性的,但无条件的重定向引数通常将是服务提供商传送URL(或导致对服务提供商分段传送URL的配置的参数)且将产生返回到请求装置的重定向URL(请求装置随后将请求该重定向URL),其与已按其他方式由服务提供商管理器指定为要由配置分段重定向URL的变体HLS清单文件中的清单文件处理程序进行配置的服务提供商分段传送URL相同。尽管用无条件的重定向引数来配置分段重定向URL增加了额外的步骤(由请求装置进行对分段重定向URL的请求,其随后导致由请求装置进行对服务提供商分段传送URL的请求),其向基础设施组件的网络提供了源于请求装置的对服务提供商分段传送URL的请求的可见性。
[0533] 作为一个示例,在变体HLS清单文件中的一系列八个连续的(按视频回放序列)视频分段文件URL中,其中第一和第八个视频分段URL被配置成视频分段传送URL:
[0534] ·将剩余的六个连续(第二至第七个)的视频分段URL配置成服务提供商分段传送URL未向基础设施组件的网络提供对那六个视频分段的传送的额外的可见性;接收对第一视频分段传送URL的请求,该URL识别用于该视频分段的高带宽视频分段文件,以及对第八视频分段传送URL的请求,该URL识别用于该视频段的较低的带宽视频分段文件向基础设施组件的网络确认在六个服务提供商分段传送URL的回放期间视频回放组件降低了所请求的视频分段文件的带宽,但却未向基础设施组件的网络识别在那六个分段内视频回放组件开始提出降低的带宽请求的地方;
[0535] 然而,继续讨论这个示例,
[0536] ·将剩余的六个连续视频分段文件URL(总体的第二至第七个)中的一些,例如剩余的六个连续视频分段文件URL中的第一、第三和第五个(总体的第二、第四和第六个)配置成重定向分段URL(且将剩余的六个连续视频分段文件URL中的其他的配置成服务提供商分段传送URL)使得基础设施组件的网络能够缩小(但却不具体地确定)在那六个分段内视频回放组件开始提出降低的带宽请求的地方;例如,如果视频回放组件的降低的带宽请求是在其对总体的第二视频分段的请求之后开始的,那么将以与用于高带宽视频分段文件的服务提供商分段传送URL相关联的重定向分段URL提出对总体的第二分段(其为剩余的六个连续视频分段文件中的第一个)的请求,且随后以与用于低带宽视频分段文件的服务提供商分段传送URL相关联的重定向分段URL提出对总体的第四个分段(其为剩余的六个连续视频分段文件中的第三个)的请求;因此,使得基础设施组件的网络能够确定对降低的带宽视频分段文件的视频回放组件的请求是在总体的第二分段之后且是由总体的第四分段开始的,这表示是用总体的第三或第四分段进行的。
[0537] 然而,继续讨论这个示例,
[0538] ·将所有剩余的六个连续视频分段文件URL配置成重定向分段URL使得基础设施组件的网络能够具体地确定在那六个分段内视频回放组件开始提出降低的带宽请求的地方。
[0539] 配置具有有条件的重定向引数的分段重定向URL提供了用无条件的引数配置分段重定向URL的相同的请求可见性,此外还使得分段重定向处理器能够在替代的可能的重定向URL中进行选择以在HTTP 302重定向消息中进行返回。利用该能力,分段重定向处理器能够在多个基础设施服务提供商之间进行选择以用于视频分段文件的传送,或在一个以上的基础设施服务提供商和分段文件服务器的网络之间或在分段文件服务器之间进行选择。例如,如果条件基于对传送性能的测量且基础设施服务提供商正按低于所指示阈值的级别执行,那么分段重定向处理器则能够将视频分段传送URL配置为在HTTP 302重定向消息中的重定向URL,从而改为将视频分段文件传送转移到基础设施组件的网络。
[0540] 用有条件的重定向引数配置分段重定向URL还使得分段重定向处理器能够有条件地返回不是HTTP 302重定向消息的HTTP消息,这使得能够对请求装置的视频回放过程进行额外的控制。例如,在许多情况下,请求装置的视频回放组件在接收到HTTP 404文件未找到的消息时的响应是可预测的,且因此分段重定向处理器能够使用该可预测的行为连同其有条件地发出HTTP消息以控制视频回放组件的行为的能力;相比之下,该能力能够提供在装置上运行的应用或在浏览器中执行的HTML页面上的代码无法提供的一定级别的精度和控制。
[0541] 例如,在许多自适应流式传输视频协议的装置实施方案,包括HLS的装置特征的实施方案中,当装置回放组件接收到HTTP 404文件未找到的消息时,其请求在变体HLS清单文件中指定的故障切换URL且从该点起继续请求故障切换URL以用于额外的分段。如前所述,清单文件处理程序能够在发出的变体HLS清单文件中配置一个以上的故障切换URL;使用清单文件处理程序的这个能力再加上分段重定向处理器发出HTTP 404文件未找到的消息的能力,分段重定向处理器能够指导请求装置变为故障切换URL。
[0542] 作为示例,考虑基础设施服务提供商的性能下降的情况,其为全局的或在特定区域中或连同特定的终端用户接入网络或用户装置类型的;一旦检测到性能下降,清单文件处理程序能够(向所有或仅向一些请求装置,例如,仅向可能受性能下降影响的请求装置)发出变体HLS清单文件,其具有不包括降级的基础设施服务提供商的视频分段URL;同时,分段重定向处理器能够将HTTP404文件未找到的消息返回到具有之前发出的变体HLS清单文件的请求装置中的一些或所有,可预测地这会使这些装置变为之前在其发出的变体HLS清单文件中进行配置的故障切换URL,从而将那些请求装置从降级的基础设施服务提供商移至另一个基础设施服务提供商。
[0543] 因此,相结合工作的清单文件处理程序和分段重定向处理器能够快速地跨新开始的视频回放请求和已在进行中的视频回放请求来将视频分段需求从一个基础设施服务提供商转移至另一个。使用相同的技术,但却连同视频分段传送URL进行,清单文件处理程序和分段重定向处理器能够快速地将视频分段需求从一组分段文件服务器转移至分段文件服务器网络内的另一个,或从分段文件服务器的网络转移至基础设施服务提供商,或从基础设施服务提供商转移至分段文件服务器的网络,在每种情况下,均是跨新开始的视频回放请求和已在进行中的视频回放请求进行的。
[0544] 作为另一个示例,在许多自适应流式传输视频协议的装置实施方案,包括HLS的装置特定的实施方案中,当装置回放组件接收到HTTP 404文件未找到的消息且不存在有在变体HLS清单文件中指定的故障切换URL,装置回放组件将回放改变至下一个可用的视频配置文件(分辨率、带宽等)并停止使用在HTTP 404文件未找到的消息中产生的视频配置文件。在这些情况下,通过发出HTTP 404文件未找到的消息,分段重定向处理器能够指导请求设备改变至下一个可用的视频配置文件。
[0545] 作为一个示例,考虑用于给定的数字服务的总的用户需求在数字服务的基础设施提供商和/或基础设施组件的网络的用于有效地进行传送的技术能力内,但却超过由数字服务设置的总阈值的情况(例如,为了在使用中控制总带宽且因此控制成本)。当接近阈值时或达到阈值时,清单文件处理程序能够开始发出仅含有较低比特率的配置文件的变体HLS清单文件,且同时,分段重定向处理器能够指导具有之前发出的变体HLS清单文件的请求装置中的一些或所有降档至较低比特率的配置文件(例如,最初仅针对使用最高比特率的请求装置以进行降档,将使用较低比特率配置文件的请求装置留在那些较低的比特率上)。如果对数字服务的视频的用户需求继续增加,清单文件处理程序能够进一步地降低在发出的变体HLS清单文件中进行配置的配置文件中可用的最大比特率,且同时,分段重定向处理器能够再次指导具有之前发出的变体HLS清单文件的请求装置中的一些或所有再次降档至较低的比特率。
[0546] 因此,相结合工作的清单文件处理程序和分段重定向处理器能够平滑地将各个视频会话的带宽使用降档,这管理了由数字服务使用的总带宽,即使当技术条件使得在大多数或所有用户装置上的视频回放组件将个别地请求较高比特率的配置文件,且这样做将使总的数字服务超过其带宽阈值。另外,如在该示例中所述,该方法向每个请求装置提供与数字服务的总阈值一致的最大个别视频比特率,且因此向相当的请求装置的所有用户提供相当的体验而不是提供对视频比特率且因此对用户体验的均匀分布,这将是由于将所有降档负担应用于新的请求装置而产生的。
[0547] 分段重定向处理器连同性能管理程序一起工作,其编译并分析基础设施组件网络的基础设施服务提供商及其组件和组件集群或组的性能和总利用以确定已满足有条件的重定向引数的哪些条件,或在该环境下要发送什么其他消息,何时接收到分段重定向URL请求(请参见在本发明中关于性能管理程序的部分中的相关描述)。
[0548] 继续讨论主要实施例和次要实施例的该可选方面,当分段重定向处理器接收到分段重定向URL请求时,其提供HTTP 302重定向消息或其他HTTP消息并创建重定向服务记录,其包括:会话ID;一个以上的重定向标识符(其可以是所请求的分段重定向URL中的所有或部分,包括在返回的HTTP 302重定向消息中的重定向URL中的所有或部分或另一个标识符);请求装置的IP地址;接收到分段重定向传送URL请求的时间戳;可选地,完成HTTP 302重定向消息传送的时间戳;且可选地,与HTTP 302重定向消息相关的TCP包级度量中的一些或所有或TCP包级度量的摘要,包括但不限于用于包括TCP连接、包重试、重新请求和重新发送、包大小和组件和与TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳。
[0549] 在主要实施例和次要实施例中的该可选方面中,分段重定向处理器在创建重定向服务记录后立即将其发送到性能管理程序。在其他实施例中,分段重定向处理器:在创建重定向服务记录后立即将其发送到多于一个的性能管理程序;将重定向服务记录发送到另一个基础设施组件,其直接或间接地将重定向服务记录发送到一个以上的性能管理程序或以其他方式使该记录可用于其;对多于一个的重定向服务记录进行编译、分组或总结并随后将汇编、组或摘要发送到一个以上的性能管理程序或另一个基础设施组件(其直接或间接地将重定向服务记录的汇编、组或摘要发送到一个以上的性能管理程序或以其他方式使前者可用于后者);对用于由一个以上的性能管理程序或另一个基础设施组件(其直接或间接地将重定向服务记录发送到一个以上的性能管理程序或以其他方式使该重定向服务记录可用于其)检索的重定向服务记录进行排队;或以其他方式将包含在一个以上的重定向服务记录中的信息传送到一个以上的性能管理程序。
[0550] 在主要实施例和次要实施例的该可选方面以及在其他实施例中,性能管理程序可以向一个以上的其他性能管理程序发送重定向服务记录;一组重定向服务记录;重定向服务记录的一个以上的摘要或一个以上的摘录;或一组重定向服务记录的一个以上的摘要或一个以上的摘录中的任一个或其任何组合或使其可用于由一个以上的其他性能管理程序进行检索。
[0551] 要注意的是,请求装置的IP地址能够从一个视频分段变为下一个,这是因为每个视频分段是单独的URL请求;由请求装置所使用的IP地址能够在视频回放期间发生改变且事实上会预期到该IP地址能够在某些情况下发生改变,例如,当请求装置改变其连接到的网络时,诸如当用户携带她的移动智能手机进入她的办公室且智能手机从她的无线运营商转换成她的办公室无线网络时。一旦智能手机进行至另一个网络的转换,从该点开始,基础设施组件的网络将从不同的IP地址接收请求,该IP地址与不同于之前的IP地址的网络相关联;然而,同时,在正常的条件下,所请求的URL继续包括相同的会话ID。
[0552] 在主要实施例和次要实施例的可选方面中,分段重定向处理器还可以将重定向服务记录或重定向服务记录的子集发送到一个以上的其他基础设施组件,诸如非索引文件消息处理程序(请参见包括在本发明中的NIF消息处理程序部分)。
[0553] 分段文件服务器
[0554] 继续讨论主要实施例和次要实施例,如前所述,可以由请求装置将对视频分段传送URL的请求发送到基础设施组件的网络,更具体地为如在视频分段URL中配置的分段文件服务器(或发送到另一个基础设施组件,诸如交换机,其将请求连接到分段文件服务器)。分段文件服务器可以通过提供在视频分段传送URL中识别的视频分段文件来响应于视频分段传送URL请求。通常,视频片段传递URL识别一个特定的视频分段文件。在主要实施例和次要实施例的可选方面中,视频分段传送URL可以识别多于一个的特定视频分段文件,且分段文件服务器通过提供多于一个的替代视频分段文件中的一个来响应于视频分段传送URL请求。
[0555] 继续讨论主要实施例和次要实施例,响应于视频分段传送URL请求所服务的视频分段文件是源视频分段文件的分段文件服务器的副本。要注意的是,在正常运行中,许多分段文件服务器将请求、存储和提供单个源视频分段文件的副本;还要注意的是,在正常运行中,许多视频分段传送URL将对应于单个源视频分段文件(作为解释,如前所述,考虑将每个视频分段传送URL配置成包括对于每个视频传送来说唯一的会话ID,诸如对HLS清单文件的每个初始装置请求,随后发起相同视频回放的每个请求装置将在其在视频回放期间到达给定的分段时请求至少由于会话ID而不同于由所有其他装置在其到达给定分段时所请求的所有其他视频分段传送URL的视频分段传送URL;因此,即使由不同的请求装置所请求的视频分段传送URL全部是不同的,所有这样的视频分段传送URL均对应于相同的源视频分段文件)。
[0556] 当分段文件服务器通过提供视频分段文件而响应于视频分段文件URL请求时,其确定其是否在存储器中具有对应于视频分段传送URL的源视频分段文件的未过期副本。如果其在存储器中具有源视频分段文件的未过期副本,则其将该副本提供至请求装置。
[0557] 如果分段文件服务器在存储器中尚未具有源视频分段文件的未过期副本,例如,如果这是由这个分段文件服务器接收的用于对应于视频分段文件的视频分段传送URL的第一请求,或作为另一个示例,如果源视频分段文件在存储器中但却具有已过期的相关联的生存时间(“TTL”),那么分段文件服务器(或另一个基础设施组件)将对源视频分段文件提出请求,且一旦其接收到请求,则将依次将请求提供给请求装置。
[0558] 可选地,如果源视频分段文件的未过期副本已存储在另一个基础设施组件,诸如另一个分段文件服务器或库存储服务器中,服务分段文件服务器可以从这样的其他基础设施组件请求未过期的源视频分段文件。
[0559] 为了对源视频分段文件提出请求,分段文件服务器确定要用于请求中的源视频分段文件URL。源视频分段文件可以是数字服务URL,其能够用于直接从数字服务请求源视频分段文件,或可以是服务提供商URL,其能够用于从与数字服务相关联的基础设施服务提供商请求源视频分段文件;或,在至另一个基础设施组件的请求的情况下,其可以是另一个URL或其他识别信息。在主要实施例和次要实施例中,服务提供商URL优于数字服务URL;同时请求源视频分段文件的多个分段文件服务器是在正常运行中,特别是在新的或流行的或又新又流行的(例如,病毒袭击)的视频背景中的基础设施组件的网络的可能的且可能是频繁的特征;就快速且成功地完成这种请求而言,许多基础设施服务提供商能够轻易地支持对源视频分段文件的这个需求,然而数字服务本身的基础设施更具有对这种请求做出缓慢响应的风险甚或变得被这种请求覆盖(要注意的是,如在背景部分中所描述的,在各原因中,规模和性能的考虑为数字服务使用基础设施服务提供商来代替其本身的基础设施或除其之外而使用该基础设施服务提供商)。在主要实施例和次要实施例的可选方面中,当数字服务使用多于一个的基础设施服务提供商时,基础设施服务提供商之一则是优选的。在其他实施例中,数字服务URL优于服务提供商URL,或数字服务URL或服务提供商URL均不优于另一个。
[0560] 为了对源视频分段文件提出请求,分段文件服务器使用与包含在请求的URL中识别数字服务的字符串相关的主机名称权限记录(包含在主机名称权限文件中);在此提醒,该字符串能够是包含在请求的URL中的主机名称或可选地,该字符串能够包括在URL路径中或能够包括在URL中的其他地方。分段文件服务器在主机名称权限文件中查找该字符串,读取匹配的主机名称权限记录,检索要用于服务提供商URL中的主机名称和其他配置信息(或,如果使用数字服务URL,则是在数字服务URL中),组成用于服务提供商URL请求的URL(或,如果使用数字服务URL,则是用于数字服务URL请求的URL)并提出请求。然后,分段文件服务器从基础设施服务提供商接收源视频分段文件,可选地存储其并记录其TTL(如果有的话)并将其提供给请求装置。
[0561] 当分段文件服务器提出对源视频分段文件的服务提供商URL请求时,其创建了与该请求相应的服务提供商请求记录,其包括:会话ID;所请求的服务提供商URL;以及可选地为一个以上的其他源视频分段文件标识符,响应的服务提供商服务器的IP地址,请求视频分段传送URL的时间戳,完成接收视频分段传送文件的时间戳以及可选地为包括但不限于用于包括TCP连接、包重试、重新请求和重新发送、包大小和组件和与和基础设施服务提供商的服务器或服务的TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳的与服务提供商URL的请求和传送相关的TCP包级度量中的一些或所有或TCP包级度量的摘要中的任一个或其任何组合。分段文件服务器直接或间接将该服务提供商请求记录发送到一个以上的性能管理程序或以其他方式使该服务提供商请求记录可用于由一个以上的性能管理程序进行检索。
[0562] 在主要实施例和次要实施例的可选方面中,基础设施组件的网络可以包括库存储服务器。库存储服务器可以连同一些或所有个别分段文件服务器,一些或所有分段文件服务器的集群或在一个以上的独立集群中进行定位,且由分段文件服务器对源视频分段文件提出的请求中的一些或所有被路由至库存储服务器,而不是直接路由至数字服务或基础设施服务提供商。
[0563] 库存储服务器可以被布置在单级层次结构中,例如,在单级中的一个以上的库存储服务器支持包括给定集群的分段文件服务器;在单级层次结构中,不具有所请求的源视频分段文件的未过期副本的库存储服务器从数字服务或与数字服务相关联的基础设施服务提供商请求源视频分段文件。库存储服务器还可以被布置在包括超过一级的库存储服务器的多级层次结构中;在多级层次结构中,不具有所请求的源视频分段文件的未过期副本的一些库存储服务器从另一个库存储服务器请求源视频分段文件;且当在多级层次结构的最终级别中的库存储服务器不具有所请求的源视频分段文件的未过期副本时,其从数字服务或与数字服务相关联的基础设施服务提供商请求源视频分段文件。
[0564] 可选地,库存储服务器的多级层次结构可以用灵活定义的层次结构来实施,例如,其中层次结构特定于下列中的任一外或其任何组合:一个以上的数字服务,一个以上的基础设施服务提供商,一个以上的内容类型,一个以上的网络(诸如,与请求装置相关联的网络)或视频模式(例如,点播视频或线性视频)。另要注意的是,库存储服务器可以同时承担超过一个层次结构级别的作用,例如,给定的库存储服务器可以同时为用于一些分段文件服务器的单级库存储服务器或对源视频分段文件的请求,同时为用于其他分段文件服务器的库存储服务器的多级中的初始级别或对源视频分段文件的请求,且同时为用于其他分段文件服务器的库存储服务器和库存储服务器的多级中的最终级别或对源视频分段文件的请求。
[0565] 继续讨论主要实施例和次要实施例的该可选方面,为了向数字服务或其基础设施服务提供商提出对源视频分段文件的请求,库存储服务器使用与数字服务相关的字符串查找主机名称权限记录(包含在主机名称权限文件中),读取匹配的主机名称权限记录,检索要用于服务提供商URL中的主机名称(或,如果使用数字服务URL,则是在数字服务URL中),组成用于服务提供商URL请求的URL(或,如果使用数字服务URL,则是用于数字服务URL请求的URL)并提出请求。然后,库存储服务器可以从基础设施服务提供商接收源视频分段文件,存储其并将其提供给请求它的基础设施组件。
[0566] 当库存储服务器从基础设施组件接收到对源视频分段文件的请求且其在存储器中具有源视频分段文件的未过期副本时,库存储服务器将源视频分段文件提供至请求其并可选地创建库分段服务记录的装置,该库分段服务记录包括:会话ID;一个以上的视频分段文件标识符(其可以是所请求的视频分段传送URL中的所有或部分,源视频分段文件URL中的所有或部分或另一个标识符);请求装置的IP地址;接收到视频分段文件请求的时间戳;完成视频分段文件的时间戳;且可选地,与视频分段文件的请求和传送相关的TCP包级度量中的一些或所有或TCP包级度量的摘要,包括但不限于用于包括TCP连接、包重试、重新请求和重新发送、包大小和组件和与TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳。库存储服务器可以直接或间接地(通过将其发送至另一个基础设施组件或以其他方式使其可用于其而进行)向一个以上的性能管理程序发送库分段服务记录或以其他方式使该记录可用于其,这可以在创建其之后立即或随后进行,可选地以组进行,可选地通过对用于发送或检索的库分段服务记录进行排队而进行;和/或直接或间接地向一个以上的性能管理程序发送库分段服务记录或一组库分段服务记录的摘要或摘录或以其他方式使该记录的摘要或摘录可用于其。
[0567] 可选地,性能管理程序可以向一个以上的其他性能管理程序发送库分段服务记录;一组库分段服务记录;库分段服务记录的一个以上的摘要或一个以上的摘录;或一组库分段服务记录的一个以上的摘要或一个以上的摘录中的任一个或其任何组合或使其可用于由一个以上的其他性能管理程序进行检索。
[0568] 当库存储服务器提出对源视频分段文件的服务提供商URL请求时,其创建与该请求相应的服务提供商请求记录,其包括会话ID;所请求的服务提供商URL;以及可选地为一个以上的其他源视频分段文件标识符,响应的服务提供商服务器的IP地址,请求视频分段传送URL的时间戳,完成接收视频分段传送文件的时间戳以及可选地为包括但不限于用于包括TCP连接、包重试、重新请求和重新发送、包大小和组件和与和基础设施服务提供商的服务器或服务的TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳的与服务提供商URL的请求和传送相关的TCP包级度量中的一些或所有或TCP包级度量的摘要中的任一个或其任何组合。库存储服务器可以直接或间接将该服务提供商请求记录发送到一个以上的性能管理程序或以其他方式使该服务提供商请求记录可用于由一个以上的性能管理程序进行检索。
[0569] 在其他实施例中,将源视频分段文件上传到可以永久存储其的库存储服务器。在其他实施例中,使用除含有URL的HTTP请求之外的请求,例如使用另一个消息类型或协议从数字服务或基础设施服务提供商请求源视频分段文件。
[0570] 继续讨论当分段文件服务器通过提供视频分段文件而响应于视频分段文件URL请求时,分段文件服务器将所请求的视频分段文件提供至请求装置并创建视频分段服务记录,其包括:会话ID;一个以上的视频分段文件标识符(其可以是所请求的视频分段传送URL中的所有或部分,源视频分段文件URL中的所有或部分或另一个标识符);请求装置的IP地址;接收到视频分段传送URL请求的时间戳;完成视频分段传送文件的时间戳;且可选地,与视频分段文件的请求和传送相关的TCP包级度量中的一些或所有或TCP包级度量的摘要,包括但不限于用于包括TCP连接、包重试、重新请求和重新发送、包大小和组件和与TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳。
[0571] 在主要实施例和次要实施例中,分段文件服务器可以在创建视频分段服务记录之后立即将视频分段服务记录发送至性能管理程序或以其他方式使其可用于性能管理程序。在其他实施例中,分段文件服务器:在创建视频分段服务记录后立即将其发送到多于一个的性能管理程序或以其他方式使其可用于多于一个的性能管理程序;将视频分段服务记录发送到另一个基础设施组件或以其他方式使其可用于另一个基础设施组件,其直接或间接地将视频分段服务记录发送到一个以上的性能管理程序或以其他方式使该记录可用于其;
对多于一个的视频分段服务记录进行编译或分组并随后将组发送到一个以上的性能管理程序或另一个基础设施组件或以其他方式使该组可用于其(其直接或间接地将视频分段服务记录的组发送到一个以上的性能管理程序或以其他方式使前者可用于后者);对用于由一个以上的性能管理程序或另一个基础设施组件(其直接或间接地将视频分段服务记录发送到一个以上的性能管理程序或以其他方式使该视频分段服务记录可用于其)检索的视频分段服务记录进行排队;将视频分段服务记录的摘要或摘录或一个以上组的视频分段服务记录的摘要或摘录发送到一个以上的性能管理程序或另一个基础设施组件(其直接或间接地将视频分段服务记录的摘要或摘录或该组的视频分段服务记录的摘要或摘录发送到一个以上的性能管理程序或以其他方式使这些可用于一个以上的性能管理程序);或以其他方式将视频分段服务记录或视频分段服务记录的摘要或摘录直接或间接地传送至一个以上的性能管理程序。
[0572] 在主要实施例和次要实施例的可选方面中,性能管理程序可以向一个以上的其他性能管理程序发送视频分段服务记录;一组视频分段服务记录;视频分段服务记录的一个以上的摘要或一个以上的摘录;或一组视频分段服务记录的一个以上的摘要或一个以上的摘录中的任一个或其任何组合或使其可用于由一个以上的其他性能管理程序进行检索。
[0573] 在主要实施例和次要实施例的可选方面中,分段文件服务器还可以将视频分段服务记录或视频分段服务记录的子集发送到一个以上的其他基础设施组件,诸如非索引文件消息处理程序(请参见包括在本发明中的NIF消息处理程序部分)。
[0574] 在主要实施例和次要实施例的另一个可选方面中,视频分段传送URL可以识别多于一个的特定视频分段文件;分段文件服务器通过提供多于一个的替代视频分段文件中的一个来响应于视频分段传送URL请求。在主要实施例和次要实施例的该可选方面中,当分段文件服务器接收到对视频分段传送URL的请求时,其接入替代的视频分段文件存储库或替代的视频分段文件服务并识别响应于该视频分段传送URL要对替代视频分段文件中的哪一个提供服务,这基于在视频分段传送URL中进行配置的会话ID。所选的替代视频分段文件可以由替代的视频分段文件存储库或至分段文件服务器的替代视频分段文件服务通过下列而进行识别:其完整的源视频分段文件URL中的所有或部分;识别其或其类别或种类的代码或参数(其随后能够可选地与其视频分段传送URL中的所有或部分相结合使用,例如通过交叉索引来使用以识别其);或单独的或与其他信息相结合的另一个标识符,其包括视频分段传送URL,与请求装置相关联的网络或包含在视频分段传送URL请求中的用户代理。
[0575] 为了提供所选的替代视频分段文件,分段文件服务器可以确定其在存储器中是否具有源所选的替代视频分段文件的未过期副本。如果其在存储器中具有源所选的替代视频分段文件的未过期副本,则其将该副本提供至请求装置。如果分段文件服务器在存储器中尚未具有源所选的替代视频分段文件的未过期副本,例如,如果这是对已为视频分段传送URL识别的所选替代视频分段文件的第一个请求,或作为另一个示例,如果源所选的替代视频分段文件在存储器中但却具有已过期的相关联的TTL,那么分段文件服务器(或另一个基础设施组件)将对源所选的替代视频分段文件提出请求,且一旦其接收到请求,则将依次将请求提供给请求装置。按与之前所述的对源视频分段文件的请求的相同方式提出对源所选的替代视频分段文件的请求。
[0576] 在此提醒,变体HLS清单文件可以另外包括与包括视频的视频分段文件相关联的元数据。当视频分段后面有(按回放序列)具有不同的元数据(例如,持续时间、编解码器、带宽和/或分辨率)的下一个视频分段时,在变体HLS清单文件中需要不连续标记以向视频回放组件提醒元数据将发生改变。在其他自适应视频流式传输协议中实施类似的不连续标记。
[0577] 因此,在主要实施例和次要实施例的该可选方面中,当清单文件处理程序发出一个发出的变体HLS清单文件时,其中视频分段传送URL可以识别多于一个的特定视频分段文件,对于每个这样的视频分段传送URL而言:
[0578] ·与该视频分段传送URL相对应的多于一个的替代视频分段文件中的所有可以符合相同的元数据,其可以与之前的视频片段文件的元数据相同;在这种情况下,替代视频分段文件的选择可以在提供所选替代视频分段文件之前的任何时间进行,例如,在由分段文件服务器接收视频传送URL请求的时间;或
[0579] ·当与该视频分段传送URL相对应的多于一个的替代视频分段文件中的所有符合相同的元数据,但元数据却不同于之前的视频片段文件的元数据时,清单文件处理程序插入用于多于一个的替代视频分段文件的不连续标记和适当的元数据;在这种情况下,替代视频分段文件的选择可以在提供所选替代视频分段文件之前的任何时间进行,例如,在由分段文件服务器接收视频传送URL请求的时间;或
[0580] ·当与该视频分段传送URL相对应的多于一个的替代视频分段文件中的一个以上符合不同的元数据时,当清单文件处理程序发出发出的HLS清单文件时,其中该视频分段传送URL将导致在具有不同于之前的视频分段的元数据的替代视频分段文件的分段文件服务器进行选择,清单文件处理程序插入用于将选择的替代视频分段文件的不连续标记和适当的元数据;在这种情况下,进行对替代视频分段文件的选择或使该选择至少缩小至每一个均具有相同元数据的替代视频分段文件的子集,至少到清单文件处理程序发出该发出的变体HLS清单文件为止。
[0581] 分段文件服务器通过将所选的替代视频分段文件提供至请求装置来响应于视频分段传送URL请求并创建视频分段服务记录,其包括:会话ID;一个以上的视频分段文件标识符(其可以是所请求的视频分段传送URL中的所有或部分,源所选的替代视频分段文件URL中的所有或部分或另一个标识符);请求装置的IP地址;接收到视频分段传送URL请求的时间戳;完成所选的替代视频分段传送文件的时间戳;且可选地,与视频分段文件的请求和传送相关的TCP包级度量中的一些或所有或TCP包级度量的摘要,包括但不限于用于包括TCP连接、包重试、重新请求和重新发送、包大小和组件和与TCP连接相关联的其他连接级信息的各个包中的一些或所有的标识符和时间戳。
[0582] 在主要实施例和次要实施例的该可选方面的额外的可选方面中,分段文件服务器还可以将视频分段服务记录或视频分段服务记录的子集发送到一个以上的其他基础设施组件,诸如非索引文件消息处理程序(请参见包括在本发明中的NIF消息处理程序部分)。
[0583] 在主要实施例和次要实施例中的另一个可选方面中,分段文件服务器可以包含分段重定向处理器的功能中的一些或全部,以使得分段文件服务器还能够接收视频分段传送URL和重定向分段URL,且作为响应地:提供视频分段文件;提供替代的视频分段文件,如由在视频分段传送URL中配置的会话ID连同替代的视频分段文件存储库或替代的视频分段文件服务所识别的;或返回HTTP 302重定向消息或其他HTTP消息,其对应于直接或间接地从服务提供商管理器接收的一个以上的URL重定向引数。
[0584] 性能管理程序
[0585] 在主要实施例和次要实施例中,如之前所述的,性能管理程序可以从清单文件处理程序接收清单文件服务记录,从分段文件服务器接收视频分段服务记录以及从分段重定向处理器接收重定向服务记录;这些在本文中可以统称为服务测量记录。
[0586] 现在参考图6,示出了用于基于这种服务测量记录来测量自适应流式传输视频传送的性能的示例过程600的流程图。例如,能够通过性能管理程序连同一个以上的分段文件服务器来执行过程600。
[0587] 在方框602中,接收对视频分段文件的第一分段文件请求。用请求接收引用视频分段文件的URL。URL包括指定内容提供商的字符串,会话ID以及识别所请求的视频分段文件的路径,其还能够包括视频分段文件的编码比特率或与其相关联。请求还能够包括额外的信息,诸如识别传输请求的用户装置的接入网络的数据(例如,接入网络的IP地址),接入网络类型,传输请求的用户代理和用URL请求传输任何其他信息。分段文件服务器或另一个网络组件,诸如交换机、路由器或数据收集组件能够确定与请求相关联的额外信息,诸如接收到请求的第一数据包的时间,接收到请求的任何其他数据包的时间,完成所请求的分段文件的传送的时间,包丢失和与对请求的分段文件的请求以及与所请求的分段文件的传送相关联的包传输中的变化。在方框604中,记录第一分段文件请求的属性。记录属性能够包括用请求接收的信息,包括在URL或请求消息中的信息中的任何信息,或能够包括与对请求的分段文件传送的请求以及与所请求的分段文件传送的传送相关联的额外的信息,其是由分段文件服务器或另一个网络组件所确定的。会话ID记录有属性。在一个实施例中,属性记录在由会话ID进行索引的数据库中。
[0588] 在方框606中,接收到用于相同的视频查看会话的第二分段文件请求。因此,第二分段文件请求包括与第一分段文件请求相同的会话ID。在方框608中,第二分段文件请求的属性记录有会话ID。在方框610中,将第一分段文件请求的记录属性与第二分段文件请求的记录属性进行比较。如果第一请求的属性与第二请求的属性相同,过程600则继续至方框612且不记录用于该会话的变化。如果第一请求的属性不同于第二请求的属性,则在方框
614记录用于该会话的变化。在方框616中,为记录其变化的会话的数量或百分比产生报告。
可以定期产生报告,例如每小时、每天、每周、每月或每季度,或按秒、分、小时、天或其他时间间隔进行以在周期内查看会话。报告还能够产生有指定的参数,诸如用于特定的服务提供商。
[0589] 在这个实施例中,记录的属性为请求视频分段文件的编码比特率。因此,通过将第一请求的视频分段文件的编码比特率与第二请求的视频分段文件的编码比特率进行比较,能够确定在查看会话期间是否存在有视频质量的变化,例如,由于用户可能注意到的网络拥塞而引起的。报告指出在某段时间内视频回放期间发生变化的次数或百分比。这种类型的数据对于内容提供商而言可能是合乎需要的,例如用于质量控制的目的。
[0590] 性能管理程序可以派生额外的服务测量记录,其在本文称为派生的服务测量记录,特别是使用视频分段服务记录和重定向服务记录以确定派生的基础设施服务提供商测量(如在本发明中的其他地方所述的;请参见例如“变体HLS清单文件:包括视频分段文件URL的HLS清单文件”和“分段重定向处理器”)。
[0591] 如果基础设施服务提供商支持在服务提供商分段传送URL中对会话ID的配置并提供含有会话ID的视频分段文件传送记录,性能管理程序则还可以从基础设施服务提供商接收这些视频分段文件传送记录,其在本文称为补充服务测量记录。补充服务测量记录被归一化为标准化形式,其通常(然而不是必需的)对应于服务测量记录,且将数据元素简化为规范形式(例如,将时间戳转换为标准化时间)。
[0592] 在主要实施例和次要实施例的可选方面中,补充服务测量记录可以任意地或通过分析被进一步地归类为一致的(即,可靠的)或不一致的,例如,通过计算从完成重定向分段URL(如包含在可适用的服务测量记录中的)的发出至在基础设施服务提供商接收到相应的服务提供商分段传送URL(如包含在其可适用的补充服务测量记录中的)所经过的时间并将该时间与使用一个以上的基准分段重定向URL,包括具有相同会话ID的基准分段重定向URL或其他相当的基准分段重定向URL进行的相同测量进行比较,或作为另一个示例,将补充服务测量记录与相应的派生服务测量记录相比较以检测和表征异常。将补充服务测量记录分类为一致的或不一致可以是特定于其使用的背景的,例如,补充服务测量记录可以分类为一致的以用于对由基础设施服务提供商传送的会话数量进行计数或测量由基础设施服务提供商传送的数据量,但却不是用于测量分段文件传送的时序或基础设施服务提供商的性能。
[0593] 性能管理程序可以汇总服务测量记录和派生的服务测量记录且可选地可以在给定的集合体中包括一致的用于特定目的的补充服务测量记录(并因此调整包括在给定的集合体中的派生服务测量记录),这可以按许多方式进行:
[0594] ·纵向会话记录,其按视频回放序列编译用于会话ID的所有包括的服务测量记录,建立该各个视频传送的测量的服务性能,监控在其发生时通过视频回放会话的进度并汇总和/或计算:由请求用户装置的视频回放组件选择的视频带宽,或以其他方式在使用中,在每个测量的时间点并持续一段时间的视频带宽;视频回放的持续时间以及在回放期间所传送的视频数据量;在回放期间在视频分段文件URL请求和/或完成的视频分段文件传送之间的时序和间隔的变化;通过视频回放的进度以及视频回放停止的点(包括视频回放是否到达最后一个视频分段文件);在视频回放停止之前在间隔中的传送性能的变化;以及测量的TCP包级度量的统计测量。
[0595] ·数字服务汇总记录,其由数字服务编译在给定期间内的所有包括的服务测量记录,这是由基础设施服务提供商且通过结合基础设施服务提供商和用户接入网络进行子汇总的,且可选地还由视频模式(点播视频或线性视频)且由视频或视频类别进行子汇总,其包括和/或计算:每个用户的总的持续带宽;每个用户的持续带宽的变化性;通过视频回放的平均用户进度和平均的视频回放停止点;传送性能的变化性;视频回放的持续时间和在回放期间所传送的视频数据量;以及测量的包级度量的统计测量。
[0596] ·基础设施服务提供商的汇总记录,其由基础设施服务提供商,由用户接入网络和由基础设施服务提供商和用户接入网络的组合来编译给定期间内的所有包括的服务测量记录,可选地这是由视频模式(点播视频或线性视频),由数字服务的类别或类型,或由视频属性(诸如,视频的总的持续时间,包括从回放开始到结束的所有视频分段文件)进行子汇总的,其包括和/或计算:每个用户的平均持续带宽;每个用户的持续带宽的变化性;通过视频回放的平均用户进度和平均的视频回放停止点;传送性能的变化性;以及测量的TCP包级度量。
[0597] 可以将该信息提供至服务提供商管理器,其可以使用这信息,如前所述(请参见“服务提供商管理器”部分)。在主要实施例和次要实施例的可选方面中,性能管理程序还可以当用于基础设施服务提供商的派生的服务测量记录和/或一致的补充服务测量记录指示全局地或在给定区域中的,通用地或专地用于给定的数字服务的基础设施服务提供商的降级或不佳的表现时提醒服务提供商管理器。
[0598] 在主要实施例和次要实施例的可选方面中,作为当视频回放会话出现时监控通过其的进度的一部分,性能管理程序当对视频分段传送URL的请求接近时通知集群性能管理器且依次集群性能管理器能够(如果在情况中有必要或需要)通知在视频分段传送URL中主机名称中识别的分段文件服务器,或可替代地,库存储服务器支持分段文件服务器请求源视频分段文件,如果其尚未具有其,则在视频分段传送URL请求到达之前进行。
[0599] 可以将该信息提供至分段重定向处理器,其使用该信息,如前所述(请参见“分段重定向处理器”部分)。在主要实施例和次要实施例的可选方面中,性能管理程序还当用于基础设施服务提供商的派生的服务测量记录和/或一致的补充服务测量记录指示全局地或在给定区域中的,通用地或专门地用于给定的数字服务的基础设施服务提供商的降级或不佳的表现时提醒分段重定向处理器。
[0600] 性能管理程序还可以汇总服务测量记录和派生的服务测量记录且可选地可以在给定的集合体中包括一致的用于特定目的的补充服务测量记录(并因此调整包括在给定的集合体中的派生服务测量记录),这可以按许多额外的方式进行:
[0601] ·数字服务业务测量,其由数字服务编译在给定期间的所有包括的服务测量记录,由基础设施组件的网络计算在给定的时间段为数字服务进行转移的总数据量以及在每个给定的时间点使用的带宽,在这两种情况下均包含TCP包级度量,其包括重新发送,且其是由差分计费区域(如果且在适用时)进行子汇总的。该信息可用于针对其对基础设施组件的网络的使用而对数字服务进行计费。
[0602] ·数字服务分析测量记录,其由数字服务编译在给定期间内的所有包括的服务测量记录,这是由区域、用户接入网络、请求装置类型或种类、请求装置用户代理、视频模式(点播视频或线性视频)以及视频或视频类别中的任一个或其任何组合进行子汇总的,其包括和/或计算:开始的视频数量;完成的视频数量和百分比;视频回放的平均持续时间;要按视频回放序列在每个视频分段文件完成回放的用户数量和百分比;每个用户的总的持续带宽;以及每个用户的持续带宽的变化性。该信息对数字服务具有统计价值。
[0603] ·基础设施组件的性能记录,其由分段文件服务器或其他基础设施组件来编译所有包括的服务测量记录并计算其测量的性能,包括测量的TCP包级度量。与对集群性能管理器的评估相反,该信息可以提供对分段文件服务器或其他基础设施组件的运行有效性的不同评估。例如,分段文件服务器可以由集群性能管理器仅按25%的处理器利用率(显然有效运行的)进行测量且仍可能经历异常高的TCP包丢失(且因此为包重新发送)率;如果高TCP包丢失率是与至连接到特定网络的请求装置的视频分段文件传送相关联的,该问题则可能是归因于该网络(将通过在其他分段文件服务器上经历的且是与连接到相同网络的请求装置的视频分段文件传送相关联的相同条件加强的结论);相反地,如果高TCP包丢失率与大多数或所有的视频分段文件传送相关联且不与至连接到任何特定网络的请求装置的视频分段文件传送相关,该问题则更可能出现在分段文件服务器的内部。该信息还被提供给集群性能管理器,其使用其来评估分段文件服务器和其他基础设施组件的运行条件。在主要实施例和次要实施例的可选方面中,性能管理程序还当用于给定的分段文件服务器的视频分段服务记录指出分段文件服务器的降级或不佳的表现时提醒集群性能管理器。
[0604] ·其他分析测量记录,其由其他相关的组织标准,例如,终端用户接入网络编译在给定期间内的所有包括的服务测量记录,这是由区域、请求装置类型或种类、请求装置用户代理、视频模式(点播视频或线性视频)以及视频、视频类别或视频的持续期间中的任一个或其任何组合进行子汇总的,其包括和/或计算:开始的视频数量;完成的视频数量和百分比;视频回放的平均持续时间;要按视频回放序列在每个视频分段文件完成回放的用户数量和百分比;每个用户的总的持续带宽;以及每个用户的持续带宽的变化性;或作为另一个示例,终端用户装置类型和用户代理,其是由区域、用户接入网络、视频模式(点播视频或线性视频)以及视频、视频类别或视频的持续时间中的任一个或其任何组合来进行子汇总的,其包括和/或计算:开始的视频数量;完成的视频数量和百分比;视频回放的平均持续时间;要按视频回放序列在每个视频分段文件完成回放的用户数量和百分比;每个用户的总的持续带宽;以及每个用户的持续带宽的变化性。该信息对基础设施组件的网络的运营商、数字服务、基础设施服务提供商、分析师和其他市场和行业参与者具有分析价值。
[0605] 性能管理程序还可以从分段文件服务器接收服务提供商请求记录,且如果基础设施组件的网络包括可选的库存储服务器,则从库存储服务器接收服务提供商请求记录和库分段服务记录。性能管理程序汇总这些服务提供商请求记录,这是由数字服务、基础设施服务提供商以及数字服务和基础设施服务提供商的组合进行子汇总的。该信息对由基础设施组件的网络向数字服务的基础设施提供商提出的总请求进行量化以获得源视频分段文件。
[0606] 在某些实施例中,视频分段文件传送的请求或测量的额外属性能够进行记录并用于不同的目的。所记录的数据能够由下列参数中的任一个在给定的期间进行汇总:会话、视频、视频模式、视频类别、地理区域、内容提供商、服务提供商和用户接入网络。随后,基于汇总的数据,能够为给定期间和给定参数产生性能统计资料和报告。例如,能够为在回放期间使用的平均编码比特率、用于每个视频分段文件的请求数量以及通过视频回放的平均进度或视频回放的平均停止点产生统计资料和报告。
[0607] 记录的数据还能够用于管理在多个基础设施服务提供商之间的内容传送以实现最佳的网络性能和用户体验。能够实时或定期地分析记录的属性和测量以确定用于参数组合的网络性能。例如,能够为服务提供商和用户接入网络的不同组合确定网络性能。随后,当接收到对变体清单文件的请求时,能够基于分析配置在发出的变体清单文件中的URL以指定具有用于接入网络的最好网络性能的服务提供商,其中该请求是从该接入网络接收的。
[0608] 例如,现在参考图7A和7B,其示出了示出用于确定用于一个以上的基础设施服务提供商的性能度量(图7A)且随后基于确定的性能度量来选择一个以上的基础设施服务提供商以传送自适应流式传输视频(图7B)的过程的两个示例流程图。在步骤702中,系统100的一个以上的分段文件服务器可以使用在上述实施例中描述的技术和过程将多个视频分段传输到自适应流式传输视频的接收者。在步骤704中,可以使用在视频分段的传送期间由系统100的分段文件服务器检测的数据来确定性能数据和/或视频传送事件。如上面所讨论的,在步骤704中所确定的性能数据可以包括,例如比特率升档或降档、缓冲事件、服务器故障和/或任何其他记录的变化数据或任何其他视频传送性能数据。在步骤706中,分段文件服务器和/或性能管理程序可以认为在步骤704中检测的性能数据和/或传送事件数据属于一个以上的基础设施服务提供商122或124。例如,在其中引用系统100的分段文件服务器的视频分段文件的URL散布有引用基础设施服务提供商的视频分段文件的其他URL的实施例(例如,图5)中,系统100的性能管理程序和/或分段文件服务器可以认为性能数据属于由其他URL引用的基础设施服务提供商。在步骤708中,可以收集、汇总和/或分析属于一个以上的特定基础设施服务提供商的所确定的性能数据和/或传送事件数据以确定用于基础设施服务提供商的性能度量。因此,通过由分段文件服务器106和/或112监控和测量仅源于视频分段文件传送的数据,系统100可以确定用于完全与系统100分开运行的外部基础设施服务提供商122和/或124。
[0609] 在一些实施例中,可以将步骤702-708执行许多不同的次数以收集用于单个基础设施服务提供商和用于多个不同的基础设施服务提供商的各种性能度量。为基础设施服务提供商122和124收集和汇总的性能数据可能基于本文所述的视频传送因素或变量中的任一个。
[0610] 在步骤710中,在基础设施服务提供商的性能度量数据已进行收集和存储之后(例如,通过性能管理程序进行),可以接收对自适应流式传输视频的清单文件的新的请求。请求通常可以使用与上面讨论的那些相同或类似的技术由系统100的清单文件处理程序106或112来进行处理。额外地,在步骤712中,清单文件处理程序可以为可能提供所请求的自适应流式传输视频的一个以上的基础设施服务提供商检索在步骤708中确定的性能度量。在步骤714中,清单文件处理程序可以至少部分地基于为一个以上的基础设施服务提供商确定的在步骤708中确定的性能度量来选择可用的基础设施服务提供商中的一个。在步骤714中对基础设施服务提供商的选择还可以基于多种其他因素,包括在上面的实施例中讨论的上述因素或技术中的任一个。在步骤716中,发出的清单文件可以使用上面讨论的技术配置有引用在步骤714中选择的基础设施服务提供商的URL。
[0611] 除了在视频分段文件的传送期间监控性能数据和使用性能度量以选择基础设施服务提供商122和124以进行后续传送之外,本文所述的某些实施例可以包括确定用于特定服务器、集群和/或分段文件服务器108和114的节点的性能度量并使用这些性能度量以选择特定的服务器、集群和/或分段文件服务器108和114的节点以进行视频分段文件的后续传送。例如,现在参考图8A和8B,其示出了示出用于确定用于一个以上的分段文件服务器、集群和/或节点的性能度量(图8A)且随后基于确定的性能度量来选择一个以上的分段文件服务器、集群和/或节点以传送自适应流式传输视频(图8B)的过程的两个示例流程图。在步骤802中,系统100的一个以上的分段文件服务器可以使用在上述实施例中描述的技术和过程将多个视频分段传输到自适应流式传输视频的接收者。在步骤804中,可以使用在视频分段的传送期间由系统100的分段文件服务器检测的数据来确定性能数据和/或视频传送事件。如上面所讨论的,在步骤704中所确定的性能数据可以包括,例如比特率升档或降档、缓冲事件、服务器故障和/或任何其他记录的变化数据或任何其他视频传送性能数据。在步骤806中,分段文件服务器和/或性能管理程序可以认为在步骤804中检测的性能数据和/或传送事件数据属于一个以上的特定服务器、集群和/或分段文件服务器108和114的节点。在步骤808中,可以收集、汇总和/或分析属于一个以上的特定服务器、集群和/或分段文件服务器的节点的所确定的性能数据和/或传送事件数据以确定用于特定服务器、集群和/或分段文件服务器的节点的性能度量。
[0612] 在一些实施例中,可以执行步骤802至808许多不同的次数以收集用于单个服务器、集群和/或分段文件服务器108和114节点以及用于多个不同服务器、集群和/或分段文件服务器的节点的各种性能度量。为特定服务器、集群和/或分段文件服务器节点收集和汇总的性能数据可能基于本文所述的视频传送因素或变量中的任一个。
[0613] 在步骤810中,在已收集和存储用于特定服务器、集群和/或分段文件服务器的节点的性能度量数据之后(例如,通过性能管理程序进行),可以接收对自适应流式传输视频的清单文件的新的请求。请求通常可以使用与上面讨论的那些相同或类似的技术由系统100的清单文件处理程序106或112来进行处理。额外地,在步骤812中,清单文件处理程序可以为可能提供所请求的自适应流式传输视频的一个以上的特定服务器、集群和/或分段文件服务器的节点检索在步骤808中确定的性能度量。在步骤814中,清单文件处理程序可以至少部分地基于为一个以上的特定服务器、集群和/或分段文件服务器的节点确定的在步骤808中确定的性能度量来选择可用的特定服务器、集群和/或分段文件服务器108或114的节点中的一个。在步骤814中对特定服务器、集群和/或分段文件服务器的节点的选择还可以基于多种其他因素,包括在上面的实施例中讨论的上述因素或技术中的任一个。在步骤
816中,发出的清单文件可以使用上面讨论的技术配置有引用在步骤814中选择的特定服务器、集群和/或分段文件服务器的节点的URL。
[0614] 次要实施例:线性视频
[0615] 返回到主要实施例和次要实施例,在清单文件处理程序发出变体HLS清单文件之后,主要和次要实施例可能在一些方面会有所不同,这是由于HLS协议本身在点播视频和线性视频的使用情况中工作方式不同而导致的:
[0616] ·在点播视频(其受到主要实施例的支持)中,将对整个视频节目的变体HLS清单文件返回到请求装置;当请求装置到达变体HLS清单文件中的列表结束标记时,回放已到达视频的末尾并停止。
[0617] ·在线性视频(其受到次要实施例的支持)中,将对线性视频传输的当前传输部分的变体HLS清单文件返回到请求装置;在请求装置请求在变体HLS清单文件中的最后一个视频分段条目之前或同时,请求装置请求对变体HLS清单文件的刷新并获得额外的视频条目;重复该过程,其不具有预设的结束点并具有对变体HLS清单文件的连续周期性刷新,直到装置停止请求对变体HLS清单文件的刷新为止(例如,由于用户停止对线性视频传输的回放)或直到不再有对变体HLS清单文件的可用刷新为止(例如,由于线性视频传输已到达其终点,诸如在直播运动会或音乐事件结束时)。
[0618] 在次要实施例中,响应于对刷新的变体HLS清单文件的请求,清单文件处理程序可以按与其发出变体HLS清单文件的方式相同的方式配置发出的刷新变体HLS清单文件并将其返回到请求装置。要注意的是,对刷新的变体HLS清单文件的请求使用了由在发出的主HLS清单文件中的清单文件处理程序配置的变体HLS清单文件URL,如前所述;变体HLS清单文件URL是由具有包括在URL中的会话ID的清单文件处理程序进行配置的,如前所述;且因此,使用包括会话ID的变体HLS清单文件URL提出刷新变体HLS清单文件的每个请求,这使得清单文件处理程序能够在整个视频传送期间配置变体HLS清单文件刷新,这在需要时是一致地(例如,重复指定相同的分段文件服务器主机名称,其使主机名称DNS解析最小化并对分段文件服务器的视频分段文件缓存效率产生积极影响),而且在需要时还是动态地进行的。例如,
[0619] ·在次要实施例中,性能管理程序和服务提供商管理器通过分段文件服务器和分段重定向处理器利用服务测量记录至性能管理程序的立即传送,分段文件服务器和分段重定向处理器随后进一步地使性能管理程序能够立即派生出派生的服务测量记录;
[0620] ·共同地,服务测量记录和派生服务测量记录使得性能管理程序能够近实时地编译纵向会话记录,这在视频回放会话发生时监控通过其的进度;
[0621] ·性能管理程序能够识别经历异常或次优性能的视频传送并通过服务提供商管理器,其依次能够将调整的视频分段文件URL配置信息提供至响应于对受影响的视频传送的刷新的变体HLS清单文件的请求的清单文件处理程序;
[0622] ·从而当受影响的视频传送发生时将其从表现不佳的基础设施服务提供商切换到另一个基础设施服务提供商或从表现不佳的基础设施服务提供商切换到基础设施组件的网络,这解决了受影响的视频传送的异常或次优的性能条件。
[0623] 类似地,在次要实施例中,集群性能管理器能够在分段文件服务器或分段文件服务器的组或集群之间分配视频分段传送URL,这通过在请求变体HLS清单文件刷新时连同清单文件处理程序一起工作来调整在视频传送发生时的分配,平衡视频分段传送URL在分段文件服务器之间的分配并在汇总条件发生改变时(当且如果必要时)重新平衡分配。
[0624] 在次要实施例的可选方面中,基础设施组件的网络能够包括一个以上的视频编码器、转码器和/或打包器,或能够连同一个以上的单独运行的编码器、转码器和/或打包器一起工作。在次要实施例的该可选方面中,视频编码器能够接收通常源于外部的基础设施组件的网络的视频信号并将该信号编码成一个以上的自适应流式传输视频流以由基础设施组件的网络进行处理;视频转码器能够将编码的自适应流式传输视频流转码成一个以上的额外比特率或格式或能够接收源于外部的基础设施组件的网络的编码的自适应流式传输视频流并将其转码成一个以上的额外比特率或格式,在任一种情况下用于由基础设施组件的网络进行处理;且视频打包器能够将编码或转码的自适应流式传输视频流格式化为容器以由基础设施组件的网络进行处理。另外,在次要实施例的该可选方面中,基础设施组件的网络能够可选地从一个以上的外部源或位置接收一个以上的之前编码的自适应流式传输视频流;编码器、转码器和/或打包器能够可选地从多个内部和外部源或位置接收多个视频信号和/或编码的自适应视频流;且可选地,多个内部和外部源和位置能够与多个不同的数字服务相关联。
[0625] 额外的实施例:其利用会话关联存储库或会话关联服务
[0626] 在一个以上的额外实施例中,其可以单独地或组合地称为第一额外实施例,一旦已由基础设施组件的网络分配会话ID,识别与所请求的视频相关联的数字服务或与该数字服务相关联的字符串可选地不再包括在一些或所有HLS清单文件URL、一些或所有视频分段传送URL或一些或所有其他URL中的任一个或其任何组合中。相反地,包括在这些URL中的会话ID由基础设施组件的网络与和所请求的视频相关联的数据服务相关联;该会话关联随后可用于请求其的任何基础设施组件且能够由任何基础设施组件进行查找或请求。例如,在需要配置数字服务URL或基础设施服务提供商URL以请求视频分段文件的分段文件服务器,其中已从数字服务URL或基础设施服务提供商URL请求视频分段文件但在存储器中尚不具有其的情况下,在这些实施例中,分段文件服务器将通过查找在会话关联存储库中的会话ID并检索相应的数字服务主机名称或通过请求数字服务主机名称并将会话ID用作请求的基础来从保持在会话ID和数字服务主机名称之间的关联的另一个基础设施组件或由基础设施组件的网络保持的等效的会话关联存储库或会话关联服务检索数字服务主机名称,而不是查找要在使用识别数字服务的字符串的主机名称权限文件中的数字服务请求中的主机名称。
[0627] 类似地,在这个第一额外实施例中,一旦已通过基础设施组件的网络分配会话ID,识别所请求的视频内容或与其相关联的一些或所有字符串,例如数字服务URL的路径部分可选地不再包括在一些或所有HLS清单文件URL、一些或所有视频分段传送URL或一些或所有其他URL中的任一个或其任何组合中。相反地,包括在这些URL中的会话ID由基础设施组件的网络与所请求的视频内容相关联;该会话关联随后可用于请求其的任何基础设施组件且能够由任何基础设施组件进行查找或请求。例如,在需要配置数字服务URL或基础设施服务提供商URL以请求视频分段文件的分段文件服务器,其中已从数字服务URL或基础设施服务提供商URL请求视频分段文件但在存储器中尚不具有其的情况下,在这些实施例中,分段文件服务器将从保持在会话ID和数字服务URL的路径部分之间的关联的另一个基础设施组件或由基础设施组件的网络保持的等效的会话关联存储库或会话关联服务检索所需要的数字服务URL或基础设施服务提供商URL的路径部分或通过查找在会话关联存储库中的会话ID并检索数字服务URL的相应路径部分或通过请求数字服务URL的路径部分并将会话ID用作请求的基础而进行,而不是从所请求的URL检索数字服务URL的路径部分。
[0628] 结合该额外实施例的这两个可选方面,基础设施组件的网络可选地依赖于会话ID(一旦进行了分配)以及该会话ID与数字服务主机名称、数字服务URL路径和类似的相关信息的关联集合。因此,使用该额外实施例的这两个可选方面,包括在HLS清单文件中的URL将包含与基础设施组件的网络相关联的主机名称;会话ID(通常但不一定是在URL路径中进行配置的);控制字符串(包括单个控制字符串或可选地为两个控制字符串,如本文进一步所述),其在具有共同的主机名称、会话ID和文件扩展名的URL的任何组内为唯一的(因为仅含有会话ID的多个URL是相同的,无论是在单个HLS清单文件中还是跨多个HLS清单文件的,而源HLS清单文件的完整集合在实际运行环境中要求与包含在完整集合内其他URL相比较包括在其中的每个URL均是唯一的,而无论是HLS清单文件URL还是视频分段文件URL);加上适当的文件扩展名;和可选地具有很少或没有更多的内容。例如:
[0629] ·当清单文件处理程序接收到对HLS清单文件的初始装置请求时,除了将HLS清单文件返回到请求用户装置之外,清单文件处理程序用新会话的会话ID、初始装置请求的URL、请求装置的IP地址、在对HLS清单文件的初始装置请求中指定的用户代理和将可能由任何其他基础设施组件需要的在对HLS清单文件的初始装置请求中含有的任何其他信息,例如,包括在初始装置请求URL中的查询字符串的内容来更新会话关联存储库或会话关联服务;此后,所有这种信息与会话ID相关联且可用于具有至会话关联存储库或会话关联服务的接入的任何基础设施组件;
[0630] ·由清单文件处理程序配置的且返回到请求用户装置的主HLS索引包含变体HLS清单文件URL,每一个均包括:与一个以上的清单文件处理程序相关联的主机名称,清单文件处理程序的一个以上的组或集群或清单文件处理程序的网络;会话ID;特定于每个URL且在具有共同的会话ID和文件扩展名的URL的组内为唯一的控制字符串;以及“.m3u8”文件扩展名;
[0631] ·请求装置随后将对这些变体HLS清单文件URL发出一个以上的请求,其将专用于指定的清单文件处理程序、清单文件处理程序的组或集群或清单文件处理程序的网络,如在本发明的各种实施例中所述的;
[0632] ·当清单文件处理程序接收到对这些变体HLS清单文件URL中的一个的后续请求时(在此提醒,其为对变体HLS清单文件的请求),其随后将使用存在于URL中的会话ID和控制字符串以在会话关联存储库或会话关联服务中查找或从其请求对与会话ID相对应的变体HLS清单文件的配置信息以及包含在所请求的变体HLS清单文件URL中的控制字符串;该配置信息包括要对应于在源变体HLS清单文件中的每个源视频分段文件URL进行配置的所发出的视频分段文件URL的类型和内容;
[0633] ·清单文件处理程序配置用视频分段文件URL(以及,如在主要实施例和次要实施例中的,如包含在源变体HLS清单文件中的元数据)进行配置的发出的变体HLS清单文件并将其返回到请求装置;
[0634] ·在该实施例中,每个视频分段传送URL包括:与一个以上的分段文件服务器、分段文件服务器的一个以上的组或集群或分段文件服务器的网络相关联的主机名称;会话ID;控制字符串,其特定于每个URL且在具有共同的主机名称、会话ID和文件扩展名的URL内为唯一的(或可选地,为包含在所请求的变体HLS清单文件URL中的控制字符串以及在包括特定变体HLS清单文件并含有共同的主机名称的URL中为唯一的第二控制字符串);以及“.ts”文件扩展名;
[0635] ·请求装置随后将对这些视频分段传送URL发出一个以上的请求,其将专用于指定的分段文件服务器、分段文件服务器的一个以上的组或集群或分段文件服务器的网络,如在本发明的各种实施例中所述的;
[0636] ·当分段文件服务器接收到对这些视频传送URL中的一个的请求时,其使用会话ID和控制字符串(或,在可选的实施方案中,使用在变体HLS清单文件中配置的视频分段文件URL中的两个控制字符串、会话ID和第一和第二控制字符串)以在会话关联存储库或会话关联服务中查找或从其请求要响应于请求而提供的视频分段文件;
[0637] ·在其中分段文件服务器尚未具有视频分段文件的情况下,其还使用会话ID和控制字符串(或,在可选的实施方案中,使用在变体HLS清单文件中配置的视频分段文件URL中的两个控制字符串、会话ID和第一和第二控制字符串)以在会话关联存储库或会话关联服务中查找或从其请求配置数字服务URL或基础设施服务提供商URL以请求视频分段文件所必需的信息;
[0638] ·在这个实施例中,如在第一实施例和第二实施例中的,发出的变体HLS索引还可以含有服务提供商分段传送URL;在这些URL的配置中不需要控制字符串;
[0639] ·可选地,在该实施例中,如在第一实施例和第二实施例中的,发出的变体HLS清单文件还可以含有分段重定向URL;分段重定向URL中的每一个包括与一个以上的分段重定向处理器、分段重定向处理器的一个以上集群或分段重定向处理器的网络相关联的主机名称;会话ID;控制字符串,其特定于每个URL且在具有共同的主机名称、会话ID和文件扩展名(或可选地,为包含在所请求的变体HLS清单文件URL中的控制字符串以及在包括特定变体HLS清单文件并含有共同的主机名称的URL中为唯一的第二控制字符串);以及“.ts”文件扩展名;
[0640] ·当分段重定向处理器接收到对这些分段重定向URL中的一个的请求时,其使用会话ID和控制字符串(或,在可选的实施方案中,使用在变体HLS清单文件中配置的视频分段文件URL中的两个控制字符串、会话ID和第一和第二控制字符串)以在会话关联存储库或会话关联服务中查找或从其请求要作为重定向URL包括在响应于URL请求而提供的HTTP 302重定向消息中的重定向URL的URL,通常为服务提供商分段传送URL,但可选地为视频分段传送URL;
[0641] ·要注意的是,如在第一额外实施例中的该描述中使用的,唯一的字符串的用途是要避免由于由相同的字符串组成的但却旨在检索不同的清单文件、视频分段文件、重定向URL或其他返回的结果的多个URL所导致的名称空间冲突;因此,如在描述该第一额外实施例中所使用的,“唯一”能够表示在URL中的组成和放置或其他基础,其中由于控制字符串的结果,URL通过该其他基础而变得可区别于其他URL。
[0642] 要注意的是,其他基础设施组件还可以具有至会话关联存储库或会话关联服务的接入,包括但不限于:
[0643] ·集群性能管理程序可以接入会话关联存储库或会话关联服务以检索会话特定信息,诸如请求装置IP地址、请求装置用户代理和与会话ID相关联的所请求的视频内容,且能够使用该检索的会话特定信息以确定(并将其返回到清单文件处理程序)要在包括在发出的主HLS清单文件中的变体HLS清单文件URL中通过使用主机名称来进行指定的清单文件处理程序、或清单文件处理程序的集群或组,或清单文件处理程序的网络。类似地,集群性能管理器能够使用该会话特定信息以确定(并将其返回到清单文件处理程序)要在包括在发出的变体HLS清单文件中的视频分段传送URL中通过使用主机名称来进行指定的分段文件服务器或分段文件服务器的集群或组或分段文件服务器的网络。
[0644] ·服务提供商管理器还可以接入会话关联存储库或会话关联服务以检索会话特定信息且能够使用该检索的会话特定信息以确定(并将其返回到清单文件处理程序)要在包括在发出的变体HLS清单文件,特别是在发出的变体HLS清单文件中的服务提供商分段传送URL中通过使用主机名称来进行指定的一个以上的服务提供商且可选地为与服务提供商和/或数字服务相关联的主机名称。服务提供商管理器还能够使用该检索的会话特定信息以确定(并将其返回到清单文件处理程序)要包括在包括在发出的HLS清单文件中的服务提供商分段传送URL的主机名称或路径中的会话特定服务提供商分段传送URL配置信息,诸如请求装置的位置和/或媒体内容标识符或其他参数。
[0645] ·分段重定向处理器还可以接入会话关联存储库或会话关联服务以检索会话特定信息且能够使用该检索的会话特定信息以确定(并将其返回到清单文件处理程序)要在包括在发出的变体HLS清单文件,特别是在发出的变体HLS清单文件中的服务提供商分段传送URL中通过使用主机名称来进行指定的一个以上的服务提供商且可选地为与服务提供商和/或数字服务相关联的主机名称。服务提供商管理器还能够使用该检索的会话特定信息以确定(并将其返回到清单文件处理程序)要包括在包括在发出的HLS清单文件中的服务提供商分段传送URL的主机名称或路径中的会话特定服务提供商分段传送URL配置信息,诸如请求装置的位置和/或媒体内容标识符或其他参数。
[0646] ·性能管理程序还可以接入会话关联存储库或会话关联服务以检索会话特定信息,且能够在汇总、派生和以其他方式处理性能信息中使用该检索的会话特定信息。
[0647] ·DNS授权名称服务器或其他授权名称服务器还可以接入会话关联存储库或会话关联服务以检索会话特定信息,诸如请求装置IP地址、请求装置用户代理和与会话ID相关联的所请求的视频内容且能够使用该检索的会话特定信息以将主机名称(其与清单文件处理程序、清单文件处理程序的集群或组、分段文件服务器、分段文件服务器的集群或组、其他基础设施组件、其他基础设施组件的集群或组或基础设施组件的网络相关联)解析成基础设施组件的IP地址(包括但不限于,清单文件处理程序、分段文件服务器和其他基础设施组件的各个单元、组或集群,与清单文件处理程序的集群相关联的交换机,与分段文件服务的集群相关联的交换机或与基础设施组件的其他集群相关联的交换机),这是完全或部分地基于这种会话特定信息或基于至少部分地依赖于这种会话特定信息,诸如在请求用户装置和清单文件处理程序和分段文件服务器的集群之间的网络距离或过去分段文件服务器响应于对与请求的内容相关联的视频分段文件的请求而进行的使用的标准。
[0648] 该第一额外实施例可能导致清单文件处理程序配置更短、更紧凑的变体HLS清单文件URL;还能够在基础设施组件的网络的某些运行方面中提供更大的灵活性;能够促进跨越多个组织的基础设施组件的网络的运行;且能够促进基础设施组件的网络与数字服务、其他基础设施服务和各种类型的基础设施服务提供商的互运行。该第一额外实施例还能够促进其他实施例,其中请求用户装置(包括在请求用户装置上执行的软件应用)从会话ID服务请求会话ID,例如,如在本发明中作为额外的实施例而描述的。
[0649] 然而,该第一额外实施例至少依赖于会话关联存储库的跨分布式实例(如果有的话)的会话特定信息的足够同步和/或可能由于接入会话关联服务(如果使用的话)而将至少一些增量延迟引入清单文件处理程序、分段文件服务器和其他基础设施组件的运行中。另外,使用发布的URL(如由清单文件处理程序接收的)和包含在源HLS清单文件的完整当前集合(如从数字服务、数字服务的基础设施服务提供商或另一个清单文件提供商接收的)中的URL作为将在发出的HLS清单文件中进行配置的且因此由请求用户装置进行请求的,从而将从初始装置请求URL获得的(或与其相关联的)某个会话特定信息传送到下一个基础设施组件的URL的基础在许多(但不是全部)的情况下与使用会话关联存储库和/或会话关联服务以将这种会话特定信息传送到下一个基础设施组件相比其用于实施、保持、管理和运行的复杂度更低。
[0650] 在与该第一额外实施例相关的其他实施例中,部分地使用会话关联存储库和/或会话关联服务,且部分地使用URL配置(如在第一实施例和次要实施例中的)。例如,在一个这样的实施例中,包括主机名称权限记录的主机名称权限文件是连同发布的URL和数字服务URL使用的,而会话关联存储库和/或会话关联服务则用于其他URL,诸如包含在发出的主HLS清单文件中的变体HLS清单文件URL。
[0651] 额外的实施例:利用包括在由DNS授权名称服务器解析的主机名称中的会话ID[0652] 在一个以上的额外实施例中,会话ID可以配置成随后由DNS授权名称服务器或其他授权名称服务器解析的主机名称。例如,
[0653] 其中XYZ789为会话ID且digserv为指定数字服务的字符串;
[0654] 用于主HLS清单文件的URL为
[0655] http://indexhandler.net/digserv/firstindexfile.m3u8
[0656] 且主HLS清单文件包含发出的变体HLS清单文件URL,其中会话ID被配置成主机名称,如下所示:
[0657] http://XYZ789.b.indexhandler.net/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-200.m3u8
[0658] http://XYZ789.b.indexhandler.net/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-400.m3u8
[0659] http://XYZ789.b.indexhandler.net/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-600.m3u8
[0660] 或,可替代地:
[0661] 用于主HLS清单文件的URL为http://XYZ789.indexhandler.net/digserv/firstindexfile.m3u8
[0662] 且主HLS清单文件包含发出的变体HLS清单文件URL,其中会话ID被配置成主机名称,如下所示:
[0663] http://XYZ789.indexhandler.net/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-200.m3u8
[0664] http://XYZ789.indexhandler.net/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-400.m3u8
[0665] http://XYZ789.indexhandler.net/indexfiles.digserv.com/firstindexfile/variant-HLS-index-file-600.m3u8
[0666] 在这些额外的实施例中,会话ID能够由除了清单文件处理程序以外的装置配置成主机名称。例如,当NIF消息处理程序接收到含有主HLS清单文件URL的HTTP 302重定向消息时,其能够配置该URL的发出的版本(其发至原始请求装置的)以在主机名称中包括会话ID。如在第一实施例和第二实施例中的,一旦已将会话ID配置成由清单文件处理程序接收的主机名称,清单文件处理程序继续将该会话ID配置成其相关于清单文件请求进行配置的URL。
[0667] 在这些额外实施例中,DNS授权名称服务器或其他授权名称服务器利用请求装置的各方面,可选地包括请求装置的IP地址、在由请求装置发送的URL请求中识别的用户代理和/或在由请求装置发送的URL请求中识别的所请求的内容,其中的任一个或所有通常可用于将会话ID配置成主机名称的装置。该信息能够经会话ID服务提供给DNS授权名称服务器或其他授权名称服务器,该会话ID服务能够使其他装置将该信息和会话ID一起发布到DNS授权名称服务器或其他授权名称服务器或张贴该信息至DNS授权名称服务器或其他授权名称服务器并从其获得相关联的会话ID。
[0668] DNS授权名称服务器或其他授权名称服务器随后能够使用下列中的任一个或其任何组合来解析对于会话来说是唯一的主机名称:
[0669] ·请求装置的网络位置或与请求装置的网络位置相关联的网络位置;
[0670] ·与一个以上的其他分段文件服务或分段文件服务器的集群至请求用户装置的网络位置的距离(网络术语)相比,分段文件服务器或分段文件服务器的集群至与请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置的相对距离(网络术语);
[0671] ·与当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时一个以上的其他分段文件服务器或分段文件服务器的集群的性能(网络术语)相比,当通信至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置时分段文件服务器或分段文件服务器的集群的相对性能(网络术语);
[0672] ·分段文件服务器的当前和预期的可用性和利用性,包括(但不限于)用于处理视频分段传送URL请求的足够容量的可用性;
[0673] ·分段文件服务器,其具有之前处理过的对请求的视频分段传送URL的请求,对与相同的视频对象相关联的视频分段传送URL的请求,对与相同的数字服务相关联的视频分段传送URL的请求或对类似的视频分段传送URL的请求;
[0674] ·分段文件服务器与所请求的HLS清单文件的关联;
[0675] ·分段文件服务器与HLS清单文件请求URL的一部分或HLS清单文件请求消息的内容,诸如在HLS清单文件请求消息中识别的用户代理的关联;
[0676] ·分段文件服务器与和点播视频相关联的视频分段传送URL,和线性视频相关联的视频分段传送URL或和点播视频和线性视频的组合相关联的视频分段传送URL的关联或为其进行的优化;
[0677] ·主HLS清单文件或变体HLS清单文件的请求速率;
[0678] ·视频的持续时间;
[0679] ·视频的发行日期、发布日期或可用日期;
[0680] ·包括源变体HLS清单文件的视频分段文件的数量和大小;
[0681] ·请求装置或用户代理,或用户代理的类别或类型,或与用户代理相关联的属性或特征;
[0682] ·请求用户装置所使用的接入网络;
[0683] ·视频分段传送URL请求在分段文件服务器中的循环轮转;
[0684] ·视频分段传送URL请求在分段文件服务器中的确定性分布,例如,使用协议,诸如缓存阵列路由协议(CARP);
[0685] ·视频分段传送URL请求在分段文件服务器中的随机分布;
[0686] ·与由基础设施服务提供商运行的一个以上的其他服务器或服务器集群至请求用户装置的网络位置的距离(网络术语)或与由另一个基础设施服务提供商运行的一个以上的服务器或服务器集群至请求用户装置的网络位置的距离(网络术语)相比,由基础设施服务提供商运行的服务器或服务器集群至请求装置的网络位置或至与请求装置的网络位置相关联的其他网络位置的相同距离(网络术语)。
[0687] 在这些额外实施例的可选方面中,请求装置能够自己将会话ID配置成从基础设施组件的网络所请求的URL的主机名称。在这些额外实施例的可选方面中,请求装置接入会话ID服务以请求会话ID,随后请求装置在该会话的持续期间将会话ID配置成包括在将由基础设施组件的网络提供服务的URL中的每个主机名称。
[0688] 可选地,会话ID请求能够包括关于请求装置将或可以在会话期间从基础设施组件的网络请求的内容和/或服务的额外信息。
[0689] 可选地,会话ID服务为HTTP GET请求(基本的HTTP服务);请求装置将HTTP GET请求发送到基础设施组件的会话ID服务的网络的IP地址;HTTP GET请求含有适当配置的URL,其中URL的查询字符串(或可选地,URL的路径部分)对关于请求装置将或可以请求的内容和/或服务的额外信息进行编码。
[0690] 如前所述,会话ID服务现在知道了请求装置的IP地址和请求装置的用户代理;另外,会话ID服务接收在HTTP GET请求中的URL中编码的任何额外的信息。会话ID服务将一个以上的会话ID返回到请求装置;可选地,会话ID服务返回多于一个的会话ID,其中的每一个均被指定为与请求装置在会话期间将或可以从基础设施组件的网络请求的内容和/或服务的一个以上的特定子集一起使用。会话ID服务将会话ID,如果适用的话,将请求装置在与每个会话ID相关联的会话期间将或可以从基础设施组件的网络请求的内容和/或服务的子集以及请求装置的IP地址和用户代理转发至DNS授权名称服务器或其他授权名称服务器的网络,其随后能够使用该信息来解析包括作为主机名称的一部分的会话ID的任何主机名称解析请求。
[0691] 这些额外实施例的一个特征是其能够导致“竞争条件”,其中:在一方面,会话ID被另一个装置配置成包括在URL中的主机名称,且该装置(或接收配置的URL的另一个装置)很快将请求对该主机名称的解析;以及在另一方面,所述解析信息中的一些或所有可以从遍及DNS授权名称服务器或其他授权名称服务器的网络的API接入点或至少至可以接收主机名称解析请求的任何DNS授权名称服务器或其他授权名称服务器进行传播;因此,实际上在请求装置的主机名称解析活动和解析信息的传播活动之间存在有竞争。当解析信息的传播活动为竞争的胜者时,解析信息现在存在于接收主机名称解析请求的DNS授权名称服务器或其他授权名称服务器处,且能够立即并以最大的准确性来解析主机名称。然而,当请求装置的主机名称解析活动为竞争的胜者时,解析信息现在不存在于接收主机名称解析请求的DNS授权名称服务器或其他授权名称服务器处;在这种情况下,主机名称解析可以等待直到解析信息到达DNS授权名称服务器或其他授权名称服务器,或可以用小于最大准确性的准确性来解析主机名称。请求装置的主机名称解析活动是竞争的胜者且解析信息的传播活动是竞争的败者的风险在当请求装置是将会话ID配置成在所请求的URL中的主机名称的装置时特别得高。
[0692] 根据情况,这些替代方案中的任一种可能都不是可取的,然而,任一种或这两种可能都是可以容忍的。
[0693] 为了避免这种竞争条件,在这些附加实施例的可选方面中,DNS授权名称服务器或其他授权名称服务器的网络或可选地为另一个基础设施组件提前产生会话ID,且使用这些提前产生的会话ID和其他所述解析信息中的一些或所有提前产生主机名称解析;这些提前产生的主机名称解析和相关联的会话ID随后被分布到DNS授权名称服务器或其他授权名称服务器的网络。当装置接入API时,提供会话特定的信息并请求会话ID,DNS授权名称服务器或其他授权名称服务器的网络(或可选地,为响应于对API的请求的另一个基础设施组件)识别适于解析所提供的信息的提前产生的主机名称解析并返回与该主机名称解析相关联的会话ID。因此,即使当接入API的装置为请求用户装置时(应注意的是,其保证了API接收IP地址且因此接收作为用于该会话的可用解析信息的一部分的请求用户装置的网络位置),在提供会话ID的时刻,相关的主机名称解析已在整个DNS授权名称服务器或其他授权名称服务器的网络中进行传播。已通过解析信息传播活动来提供赢得竞争。
[0694] 这些额外的实施例可以具有使用自适应流式传输视频协议来传送视频的应用,但也可以特别适于使用除了自适应流式传输视频协议以外的协议来传送视频,传送不是视频的数据、图像、文本、音频和其他内容以及提供其他基础设施资源,诸如计算资源。如主要实施例和次要实施例所示的,涉及使用自适应流式传输视频协议来传送视频的实施例能够利用请求用户装置的对HLS清单文件的初始装置请求以在整个视频传送期间建立并一致地保持会话ID,且在大多数情况下,数字服务所作的努力很小且所作的技术变体很少。然而,这些其他实施例中的许多并不易于在没有数字服务的更多重要参与的情况下建立并保持会话ID。在这些情况下,这个额外的实施例能够显著地简化数字服务所作的努力并减少数字服务所作的技术变化的范围和复杂性,以便使用基础设施组件的网络。
[0695] 额外的实施例:利用由网络装置提供的会话ID、URL字符串、请求头或其他数据[0696] 在额外的实施例中,会话ID和/或其他数据可选地可以由包括在基础设施组件的网络中的网络装置和/或由与基础设施组件的网络分开运行的网络装置提供。
[0697] 对自适应流式传输视频的初始装置请求和对清单的请求、对视频分段的请求以及其他请求通常可以由许多网络装置,包括由用户装置所连接到的网络所运行的网络装置,由中间网络所运行的网络装置以及在基础设施组件的网络内运行的或由基础设施组件的网络运营商所运行的网络装置进行处理。这种网络装置可以包括但不限于:交换机;路由器;用户接入装置,诸如数字用户线接入复用器(DSLAM)、电缆调制解调器终端系统(CMTS);移动网络无线电发射机(诸如UMTS LTE无线电)和其他无线电接入网络(RAN)装置;应用交付交换机,诸如负载平衡器和第4至7层交换机;深包检测交换机和装置;管理、形成和/或应用策略至流量、使用、安全性、用户、网络优先级和网络资源的装置;以及其他网络装置。
[0698] 当在用户装置和基础设施组件的网络之间的传输未加密或未充分加密(例如,这表示加密不足以防止由网络装置进行解密)时,处理传输的网络装置能够读取并能够修改传输的内容。这使得这种网络装置的运营商能够确定要修改哪些传输以及向那些传输添加数据。
[0699] 当在用户装置和基础设施组件的网络之间的传输进行加密,诸如用安全套接层(SSL)协议来加密时,传输可以进行解密且由已具有所需的解密信息,通常是解密密钥的网络装置来进行读取和/或修改。例如,基础设施组件的网络可以向授权的网络提供解密密钥以使得那些运营商能够解密传输,读取传输,确定要修改哪些传输并修改传输的内容且随后重新加密传输(使用原始的加密或用不同的或额外的加密来进行,在任一种情况下,可选地使用也是由基础设施组件的网络提供的加密密钥)。在这个额外的实施例的可选方面中,基础设施组件的网络或另一个装置能够进行协调并将用于多个不同的视频提供商的解密和/或加密信息提供给多个不同的网络装置运营商,从而提供授权接入至多个网络装置运营商的加密传输的中央存储库和服务。
[0700] 在该额外实施例中,网络装置能够可选地通过下列中的任一个或其任何组合来提供会话ID或其他数据:
[0701] ·将会话ID或其他数据插入在初始装置请求中请求的URL中,例如,通过将会话ID或其他数据插入主机名称中,插入URL的路径中作为添加至URL的查询字符串或以其他方式插入URL中
[0702] ·将会话ID或其他数据插入在初始装置请求中含有的头中,或作为包括在初始装置请求中的新头,例如,作为额外的HTTP头
[0703] ·将会话ID或其他数据插入在初始装置请求中的传输协议中
[0704] ·将会话ID或其他数据插入在与自适应流式传输视频相关联的一个以上的后续请求中所请求的URL中,例如,插入对变体清单的后续请求中,或插入对视频分段文件的后续请求中
[0705] ·将会话ID或其他数据插入包含在与自适应流式传输视频相关联的一个以上的后续请求中的头,例如,插入对变体清单的后续请求中,或插入对视频分段文件的后续请求中
[0706] ·将会话ID或其他数据插入在与自适应流式传输视频相关联的一个以上的后续请求中的传输协议中,例如,插入对变体清单的后续请求中,或插入对视频分段文件的后续请求中
[0707] ·将会话ID或其他数据插入初始装置请求的另一个方面中或插入与自适应流式传输视频相关联的一个以上的后续请求中
[0708] ·经不同于对自适应流式传输视频的初始装置请求的单独通信会话或与对自适应流式传输视频的初始装置请求相关联的或由其产生的通信会话将会话ID或其他数据提供至基础设施组件的网络
[0709] 在这些额外实施例中,可选地由网络装置添加的会话ID可以由网络装置或由通过网络装置的运营商运行的另一个装置,例如GUID产生;或可以从基础设施组件的网络进行请求和接收;或能够从另一个数字服务进行请求和接收。
[0710] 在这些额外实施例中,可选地由网络装置提供的除了会话ID以外的数据能够是下列中的任一个或其任何组合:
[0711] ·用户或用户装置信息,诸如唯一的用户标识符、家庭或其他组标识符、用户分类或经济价值、人口统计代码、位置代码、归属代码或兴趣标识符
[0712] ·广告或广告基础设施信息,诸如可跨多于一个的数字装置使用的标识符、广告服务器标识符或广告或广告类别代码或指示符
[0713] ·可用带宽、吞吐量或其他性能测量或其他连接指示符,诸如连接类型(例如,3G或4G)、预期拥塞、预期的带宽变化或其他质量指示符
[0714] ·网络信息,诸如用于在网络装置下游的网络的标识符或与连接相关联的网络分段
[0715] ·装置信息
[0716] ·与用户、用户装置、内容、连接、网络或自适应流式传输视频请求或所请求的自适应流式传输视频的其他方面相关的其他信息
[0717] 在这些额外实施例中,由网络装置提供的会话ID可以替代与对自适应流式传输视频自适应流式传输视频的初始装置请求相关联的另一个会话或除其之外而使用,例如除了通常由网络(如果是基础设施组件的话)提供的会话ID之外或代替其而使用。
[0718] 在这些额外实施例中,由网络装置提供的除了会话ID以外的数据能够用于进行下列中的任一个或其任何组合:
[0719] ·配置主HLS清单文件,诸如通过选择变体HLS清单文件以包括在主HLS清单文件中;例如,在用户装置所连接到的接入网络中的网络装置能够将指出与用户的连接相关联的可用带宽或连接性能的数据提供至接入网络,且清单文件处理程序或在基础设施组件的网络中的其他组件可以识别表示用于所请求的自适应流式传输视频的可用比特率的适当子集的变体HLS清单文件的适当集合和/或对其进行排序以将最好的可用视频回放体验或其他适当的视频回放体验提供给用户,包括在特定比特率开始视频回放并提供可能受到连接的支持的比特率的子集
[0720] ·配置在主HLS清单文件和变体HLS清单文件中的控制信息
[0721] ·选择要连同该请求使用的分段文件服务器或分段文件服务器的集群或节点[0722] ·在一个以上的分段文件服务器处预请求视频分段文件
[0723] ·选择要连同该请求使用的基础设施服务提供商
[0724] ·选择要连同该请求使用的自适应流式传输视频的外部源或位置
[0725] 额外的实施例:其中基础设施组件的网络将会话和其他信息提供至一个以上的基础设施服务提供商
[0726] 在一个以上的额外实施例中,基础设施组件的网络可以将会话、连接、用户、内容和/或其他信息提供给一个以上的基础设施服务提供商,诸如下列中的任一个或其任何组合:
[0727] ·用户或用户装置的网络地址或网络位置,诸如用户装置的IP地址、与用户装置的IP地址相关联的自治系统号、用户装置所连接到的接入网络、用户装置所连接到的接入网络的上游或下游的网络或与用户装置相关联的网络相关的信息中的所有或部分[0728] ·与用户、用户装置或用户或用户装置的种类相关联的标识符,诸如与和用户装置相关联的用户的相对重要性或价值相关联的标识符或与和用户装置相关联的用户相关联的服务种类相关联的标识符
[0729] ·与所请求的自适应流式传输视频相关联的标识符,其包括:一致地与所请求的自适应流式传输视频分开关联的标识符(例如,用于电视节目剧集的论坛媒体服务标识符);不与所请求的自适应流式传输视频分开关联但却一致地与其相关的标识符(例如,该标识符将使得基础设施服务提供商能够一致地处理与特定自适应流式传输视频相关的所有服务);一致地与一组自适应流式传输视频相关的标识符,其包括所请求的自适应流式传输视频或与其相关联(例如,与类别,诸如“运动”相关联的标识符);与所请求的自适应流式传输视频的属性或特征相关联的标识符(例如,与保真度级别相关联的标识符,诸如“高清晰度”或“标准清晰度”);或与所请求的自适应流式传输视频相关联的另一个标识符[0730] ·与所请求的自适应流式传输视频的一部分相关联的标识符,诸如视频分段文件[0731] ·对自适应流式传输视频或自适应流式传输视频的一部分的即将到来的请求或可能即将到来的请求的通知
[0732] ·与对自适应流式传输视频的用户装置请求相关联的会话ID和与对自适应流式传输视频的用户装置请求相关联的会话ID相关的会话标识符
[0733] 在这些实施例的可选方面中,可以将提供至基础设施服务提供商的信息编码成被配置成变体HLS清单文件的URL(或在其他实施例中,为被配置成主HLS清单文件的URL),以使得当用户装置从基础设施服务提供商请求URL时将由用户装置将信息传递至基础设施服务提供商。例如,用户装置的IP地址以及与所请求的自适应流式传输视频一致相关的标识符可以被编码成在URL中的主机名称、URL的路径和/或在视频分段文件的URL中的查询字符串。该信息能够使得基础设施服务提供商更好地分配和管理其基础设施资源。例如,将用户装置的IP地址和自适应流式传输视频的标识符编码成包括在视频分段文件的URL中的主机名称能够使得以DNS解析分配资源的基础设施服务提供商使用全部信息来进行更好和更多的分配(特别地,是关于用户装置和所请求的自适应流式传输视频的网络位置,其通常不可用于基础设施服务提供商直到其接收到请求为止,这是在DNS解析后发生的)。
[0734] 在这些实施例的另一个可选方面中,可以经通信会话,诸如至基础设施服务提供商的请求或系统到系统的消息将该信息提供至基础设施服务提供商。例如,为了向基础设施服务提供商通知对自适应流式传输视频或自适应流式传输视频的一部分的即将到来的请求或可能的即将到来的请求,基础设施组件的网络能够本身提出对自适应流式传输视频或自适应流式传输视频的一部分的完全或部分请求,其可选地将其本身识别为特定的用户代理类型和/或使用X-Forwarded-For头;更具体地说,为了向基础设施服务提供商通知对特定视频分段文件的即将到来的请求,基础设施组件的网络可以向基础设施服务提供商提出对视频分段文件的请求或可以提出与视频分段文件相关联的头请求。可替代地,基础设施组件的网络可以向基础设施服务提供商发出消息,例如,经一个以上的应用编程接口(API)而进行。作为该实施例的可选方面,这样的通知能够被定时为在用户装置提出为该通知的主题的请求之前发生,但在用户装置将可能(或相对可能)提出这种请求之后,基础设施组件的网络能够通过观察用户装置通过在包括自适应流式传输视频的变体HLS清单文件中的URL集合的进度来确定其发生的时间。
[0735] 某些实施例的额外的可选方面
[0736] 在本文所述的实施例的可选方面中,可以基于接入网络、一个以上的中间网络、接入网络或基础设施服务提供商的一个以上的下游网络或上游网络,或自适应流式传输视频请求的其他网络连接方面以及与自适应流式传输视频请求的这种网络连接方面相关的基础设施服务提供商的偏好和/或优先性将基础设施服务提供商分配至包括自适应流式传输视频请求的URL中的一些或所有。例如,由于在基础设施服务提供商和那些接入网络之间的业务关系或由于在基础设施服务提供商和那些接入网络之间的互连布置或互连能力,特定基础设施服务提供商可以优先处理由连接到某些接入网络的用户装置所请求的自适应流式传输视频。基础设施服务提供商的这种优先性能够是静态的、相对静态的,或者能够通过在基础设施服务提供商和基础设施组件的网络之间的系统到系统的消息,例如,经API动态地进行更新。
[0737] 在实施例的另一个可选方面中,可以基于自适应流式传输视频的内容;自适应流式传输视频的内容特征或自适应流式传输视频的部分(例如,包括特定变体HLS清单文件的视频分段的比特率);自适应流式传输视频的类别;自适应流式传输视频的模式(例如,点播或线性);自适应流式传输视频的当前、历史或预期的请求速率;或自适应流式传输视频的请求速率的变化率和/或变化方向中的任一个或其任何组合将基础设施服务提供商分配至包括自适应流式传输视频请求的URL中的一些或所有。例如,一个基础设施服务提供商可以优先处理用于点播内容的自适应流式传输视频,而另一个基础设施服务提供商则可以优先处理用于线性或直播内容的自适应流式传输视频;或作为另一个示例,一个基础设施服务提供商可以优先处理具有低且稳定的请求速率的自适应流式传输视频,而另一个基础设施服务提供商则可以优先处理具有高且增长的请求速率的自适应流式传输视频。基础设施服务提供商的这种优先性能够是静态的、相对静态的,或者能够通过在基础设施服务提供商和基础设施组件的网络之间的系统到系统的消息,例如,经API动态地进行更新。
[0738] 在实施例的另一个可选方面中,将要由基础设施组件的网络中的分段文件服务器提供的视频分段文件的URL中的主机名称解析成与基础设施组件的网络相关联的IP地址,且该基础设施组件的网络与中间网络相关联,例如,通过仅向该中间网络宣布其自己的IP地址中的某些,或作为另一个示例,通过在基础设施组件的网络终止源于中间网络的地址空间的IP地址来进行。在实施例的这个可选方面中,使用按与视频分段URL中的主机名称相同的方式来解析的主机名称能够控制中间网络,请求将通过该中间网络被路由至基础设施组件的网络。
[0739] 在实施例的另一个可选方面中,从基础设施组件的网络至请求用户装置的初始网络路径可以由通过使用在IP头中的差分服务代码点(DSCP)字段而响应于请求的服务器进行控制。在实施例的这个可选方面的一个实施方案中,服务器可以用DSCP代码和相应网络的文件或表进行配置,可以选择要使用的网络且可以因此配置传输至请求用户装置的包的IP头中的DSCP字段(通常能够用十六进制形式的多达63个不同的数值进行配置的6位字段)。类似地,将交换机或其他网络装置配置成读取DSCP字段并将包分配到在交换机上的被连接到相应网络的一个以上的特定出站端口。因此,服务器能够经DSCP字段值向交换机发出关于哪一个出站端口且从而为出站中间网络要用于在其上放置所传输的包的信号。在实施例的这个可选方面的另一个实施方案中,未使用DSCP代码和相应网络的文件或表。相反地,交换机或其他网络装置将入站IP包上的DSCP字段配置成含有与附至在其上接收到包的端口的网络相应的值。基础设施组件的网络的分段文件服务器和/或其他元件最初使用响应于在入站包中含有的消息而返回的出站包上的DSCP字段中的相同值。基础设施组件的网络的分段文件服务器和/或其他元件测量中间网络的性能(例如,所传输数据的转移速率、包丢失和重试速率、总吞吐量等),这将所测量的性能与目的IP地址和DSCP字段值关联起来。使用相关的测量性能以及可选地使用请求装置的IP地址,基础设施组件的网络的一个以上的集群性能管理器或其他元件确定哪一个DSCP值要用于给定的会话中,哪一个可以是新发起的会话(诸如对自适应流式传输视频的初始装置请求)或正在进行的会话(诸如在之前请求的自适应流式传输视频中的下一个视频分段文件请求)。基础设施组件的网络的文件服务器或其他元件可以因此配置被传输到请求用户装置的包的IP头中的DSCP字段。交换机或其他网络装置可以读取DSCP字段并将包分配到所指示的出站端口。
[0740] 其他额外的实施例
[0741] 在进一步的额外实施例中,清单文件处理程序可以通过(a)如可能需要的话,确定其是否具有可用的合适的之前配置的主HLS清单文件或其他清单文件,之前配置的变体HLS清单文件或其他清单文件或这两者,其分别被适当地配置成与对HLS清单文件或其他清单文件的初始装置请求一起使用且可选地含有预先配置的会话ID;(b)如果清单文件处理程序不具有可用的合适的预先配置的HLS清单文件或其他清单文件,其则分别选择预先配置的HLS清单文件或其他清单文件;(c)如果选择的预先配置的HLS清单文件或其他清单文件不含有预先配置的会话ID,清单文件处理程序则分配会话ID并分别配置HLS清单文件或其他清单文件以包括会话ID,如本文中前面所述的;(d)如果清单文件处理程序不具有可用的合适的预先配置的HLS清单文件或其他清单文件,其则处理对HLS清单文件或其他清单文件的初始装置请求(如在第一实施例和第二实施例中所述的)来开始处理对HLS清单文件或其他清单文件的初始装置请求。在这些额外的实施例中,清单文件处理程序基于在主要实施例和次要实施例中所述的用于配置要返回到请求装置的HLS清单文件的标准来选择之前配置的HLS清单文件或其他清单文件,除了在这些额外的实施例中该标准是用于分别在一组预先配置的HLS清单文件或其他清单文件中选择预先配置的HLS清单文件或其他清单文件之外。这些额外的实施例包括其中预先配置的主HLS清单文件或其他清单文件含有预先配置的会话ID,但预先配置的变体HLS清单文件或其他清单文件却不含有该预先配置的会话ID的实施例,以及其中预先配置的主HLS清单文件或其他清单文件或预先配置的变体HLS清单文件或其他清单文件均不含有预先配置的会话ID的实施例。
[0742] 在这些实施例中,在主要和次要实施例中所述的或在其他实施例中所述的清单文件处理程序的功能可以包括在对视频文件进行编码和/或分段,或以其他方式创建清单文件,或存储或缓存清单文件,或响应于对其的请求来公布或以其他方式提供清单文件的系统中。在这些实施例中,连同在主要和次要实施例中或本文所述的其他实施例所述的特征来创建、存储、缓存、公布或提供清单文件。
[0743] 在这些实施例中,用户装置可以在用户对视频的请求之前提出对清单文件、视频分段文件或其他URL的请求,从而使用户装置可选地能够在用户的请求之前缓存清单文件、视频分段文件或非索引文件URL中的一些或所有。在这些实施例中,基础设施组件的网络可选地从用户的装置或另一个装置接收信息,该用户的装置或另一个装置从用户的装置收集信息,该信息指示用户装置对清单文件、视频分段文件或非索引文件URL的实际使用,这种信息可选地包括与清单文件、视频分段文件或非索引文件URL相关联的会话ID。
[0744] 在一些实施例中,清单文件可以按本文所述进行配置但却可能不会返回到请求装置;在这些实施例中,清单文件可以由接收清单文件请求,或响应于请求返回清单文件,或两者,或既不接收清单文件请求也不响应于请求返回清单文件的其他装置来进行请求,返回至其或两者;另外,在这些实施例中,清单文件可以不用请求,例如,按下列中的任一个或其任何组合来进行配置:按数量、按时间表、响应于所分段视频对象的可用性或响应于除了对视频的请求或对清单文件的请求之外的信号或通知。在这些实施例中,在清单文件进行了配置并提供至其他装置之后,这些其他装置随后将清单文件提供至请求装置或提供至除了请求装置之外的装置,这按配置提供了清单文件或进一步地配置了清单文件,或以其他方式处理了清单文件。这些其他装置能够在请求装置和这些实施例,例如,由ISP运行的代理服务器之间为同轴的;能够是请求装置将请求引至其并随后依次提出发送到这些实施例的请求的装置;或能够是向这些实施例提出请求的其他装置。
[0745] 例如,在这些其他实施例的一个中,数字服务能够对其用户可能需要的清单文件提出请求,这能够基于提供至其用户的服务和内容来进行确定;且能够随后在用户选择特定的内容项目之前将那些清单文件提供至用户的装置。一般地,为了进一步说明这样的实施例以及这些其他实施例,考虑社交媒体服务,其具有用户所使用的智能手机应用,其中用户的应用从社交媒体服务的其他用户接收贴子或更新的个性化流;社交媒体服务可能用与每个这样的清单文件相关联的唯一会话ID来请求包含在用户的馈送中的对媒体项目的清单文件;提前将清单文件提供至在用户装置上执行的智能手机应用;经API提供用于清单文件所传送至的每个装置的网络位置、装置类型和其他信息,以及传送到该装置或至具有共同信息的一组装置的清单文件的会话ID;从而使得基础设施组件的网络能够在用户请求任何变体清单文件或任何视频分段文件或所请求的内容对象的任何部分之前提前了解这种信息;且因此,基础设施组件的网络将能够将特定基础设施组件分配到用户的传送请求,以使得将以高水平(或至少为可接受水平)的用户体验来实现请求(如果提出的话)并按本文所述的方式测量请求。
[0746] 在一些实施例中,基础设施组件的网络可能不包括分段文件服务器和/或可能不包括分段重定向处理器。在这些实施例中,清单文件处理程序发出变体HLS清单文件、其他清单文件及其等同物,其仅含有服务提供商URL或其等同物。这些实施例使得基础设施组件的网络能够管理用于每个视频传送的对基础设施服务提供商的选择并在基础设施服务提供商之间分配视频传送量。在这些实施例的可选方面中,可选地,不存在有在用于主HLS清单文件或变体HLS清单文件的URL中进行配置的会话ID。
[0747] 在一些实施例中,基础设施组件的网络可能不包括分段文件服务器但却可以包括分段重定向处理器。在这样的实施例中,清单文件处理程序发出变体HLS清单文件、其他清单文件及其等同物,其仅含有服务提供商URL或其等同物以及分段重定向URL或其等同物。这些实施例使得基础设施组件的网络能够管理用于每个视频传送的对基础设施服务提供商的选择,在基础设施服务提供商之间分配视频传送量,测量基础设施服务提供商的性能,在请求对变体HLS清单文件的更新的同时在使用中为给定的线性视频传送改变基础设施服务提供商并配置为视频分段传送URL或服务提供商URL的在清单文件中的故障切换URL(当在使用中由协议所支持时)。
[0748] 在一些实施例中,基础设施组件的网络可以包括分段文件服务器和集群性能管理器,但可能不包括服务提供商管理器。在这些实施例中,清单文件处理程序发出变体HLS清单文件、其他清单文件及其等同物,其含有视频分段传送URL,且分段文件服务器的网络传送所有视频分段文件,除去可选地,由于在通过清单文件处理程序请求在HLS清单文件或等同物中配置的故障切换URL的请求装置中的视频回放组件的结果而传送的视频分段文件,其中故障切换URL为服务提供商URL。这些实施例使得基础设施组件的网络能够管理用于每个视频传送的对分段文件服务器的选择,测量用于每个视频传送和用于总的视频传送的基础设施组件的性能和基础设施组件的网络的总性能,在请求对变体HLS清单文件的更新的同时在线性视频传送中改变使用中的分段文件服务器并配置为视频分段传送URL或服务提供商URL的在清单文件中的故障切换URL(当在使用中由协议所支持时)。
[0749] 在一些实施例中,清单文件处理程序、分段文件服务器、集群性能管理器、服务提供商管理器、重定向分段处理器、性能管理程序、非索引文件消息处理程序和/或库存储服务器中的任一个或其任何组合的功能中的一些或所有可以由下列中的任一个或其任何组合来实施:以任何方式组合成一个以上的组件;以任何方式至多个组件或在其之间的功能分布;或与其他基础设施组件,诸如交换机、服务器、处理器、存储服务器、内容传送网络服务器或交换机、DNS名称服务器、本地名称服务器或数字服务、基础设施资源服务提供商、接入网络服务提供商、其他网络服务提供商或其他基础设施服务提供商的其他组件相组合,包括在其中或功能分布至其。
[0750] 在一些实施例中,基础设施组件的总网络可以包括两个以上的基础设施组件的独立的自主网络,或一种类型的基础设施组件的总网络包括两个以上的该种类型的基础设施组件的独立的自主网络。在这种类型的一些实施例中,一种类型的基础设施组件的一个独立的自主网络引用该种类型的基础设施组件的另一个独立的自主网络作为备用或故障切换选项,其中的任一个是同时运行的或在待机时为可用的。例如,清单文件处理程序的两个独立的自主网络可能在单个主机名称中进行引用,该单个主机名称被解析成两个IP地址,第一个IP地址与清单文件处理程序的第一个独立的自主网络的清单文件处理程序相关联,且第二个IP地址与清单文件处理程序的第二个独立的自主网络的清单文件处理程序相关联。作为另一个示例,由在清单文件处理程序的第一个独立的自主网络中的清单文件处理程序配置的主清单文件(其含有变体清单文件的URL)含有用作为清单文件处理程序的第一个独立的自主网络的一部分的一个以上的清单文件处理程序的主机名称进行配置的变体清单文件URL,以及用作为清单文件处理程序的第二个独立的自主网络的一部分的一个以上的清单文件处理程序的主机名称进行配置的故障切换URL;可选地,清单文件处理程序的这两个独立的自主网络连同分段文件服务器的单个网络一起工作。
[0751] 现在参考图9,其示出了示例流程图,其示出用于检测和分析发出的清单文件的故障切换URL的变化的过程。
[0752] 在步骤902中,系统100可以配置包括主要URL集合以及用于自适应流式传输视频的故障切换URL的相应集合的发出的清单文件。发出的清单文件可以由清单文件处理程序使用与在上述实施例中所讨论的那些中的任一个相类似的技术来进行配置。在步骤904中,在提供发出的清单文件后,系统100的一个以上的分段文件服务器可以根据发出的清单文件接收视频分段文件请求。具体地说,请求所引至的URL可以匹配在发出的清单文件中的URL。在步骤906中,接收视频分段文件请求的分段文件服务器可以确定请求是否为对在发出的清单文件中的主机URL中的一个的请求或在发出的清单文件中的故障切换URL中的一个。如果所请求的视频分段文件对应于故障切换URL中的一个(906:是),那么分段文件服务器则可以在步骤908中确定服务器故障已发生在用户装置请求/接收对自适应流式传输视频的视频分段文件的过程期间的某一点上。在步骤908中,系统100可以确定服务器故障的原因且具体地可以将服务器故障归因于将视频分段文件中的一些提供至用户装置的基础设施服务提供商中的一个以上或将其他视频分段文件提供至用户装置的分段文件服务器中的一个以上。在步骤910中,服务器故障可以进行识别和分析且可以包括在对用于基础设施服务提供商122或124和/或服务器、集群和/或分段文件服务器108或114的节点的性能度量的确定和汇总中。
[0753] 在一些实施例中,非索引文件消息处理程序可以接收、修改、转发和/或返回不是HTTP消息,但却以其他方式从请求用户至非索引文件服务进行通信的消息。
[0754] 本文所述的各种实施例可以利用自适应流式传输协议,其利用含有文件字节范围的清单文件;除了自适应流式传输协议之外的视频传送协议,其包括渐进式HTTP下载视频传送;经UDP上的RTSP、RTP或RTCP协议进行的流式传输;数字视频广播(DVB)协议;LTE内的多媒体广播/组播业务(MBMS);Qualcomm的MediaFLO协议;提出的可扩展视频组播(SVM)协议;以及其他数字视频协议。
[0755] 一些实施例可以支持无音频的视频内容(表示不具有相关联的音频轨道的视频)的传送,其中不具有相关联的音频轨道的视频在技术上受到视频协议的支持。要注意的是,尽管不具有相关联的音频轨道的视频当前在苹果公司的HLS视频协议中不受到支持,但一些其他的视频协议则可能完全或按有限的方式支持不具有相关联的音频轨道的视频,其中Apple的HLS视频协议是当前在使用中最流行的自适应流式传输协议中的一个。
[0756] 一些实施例可以支持将非视频内容,包括数据、图像、文本、音频和其他内容传送至支持数字服务的用户的装置和/或以支持数字服务的方式支持对资源,诸如计算或存储资源的分配。
[0757] 额外的注意事项
[0758] 如在本发明中所述的,次要实施例集中在对线性视频内容的传送上,线性视频内容表示同时向多个用户进行线性播放且通常由用户同时进行观看的视频内容。如在线性视频的描述中所述的,在这个背景下“同时地”不表示精确同时地,例如,至亚秒级容限;使用连接到两个不同的互联网接入网络的两个不同装置经互联网观看相同的线性视频内容的两个用户在其两个装置上的内容回放之间或(如果适用的话)在其装置上的线性视频内容的回放和同时在标准电视传输设施上的相同线性视频节目广播的回放之间可能经历回放时序中的差异,这通常是按秒进行测量的且通常(然而并不总是)小于一分钟。这种差异的大小部分取决于用于将线性视频内容传送给用户的视频协议;例如,截至2014年初,Apple使用推荐的设置估计与HLS直播流式传输相关联的典型延时为大约30秒钟(请参见https://developer.apple.com/library/ios/documentation/networkinginternet/conceptual/streamingmediaguide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html,其由Apple在2014年11月2日更新且在2014年10月21日进行检索)。其他视频传送协议可能特征在于用户体验中的较大或小的时序差异;另外,视频制作、编码、分段、打包和相关过程也能够影响这种时序差异的大小。要注意的是,区分线性视频内容与点播视频内容的不是用户体验中这种时序差异的大小;相反地,无论这种差异大小如何,通常是由用户视频体验的同时发生的性质来区分线性视频内容与点播视频内容的。
[0759] 全球唯一标识符(GUID)是唯一的或大致唯一的参考号,其被用作计算机系统中的标识符,通常(然而并不总是)由随机(或伪随机)数字产生的。如本文所使用的,大致唯一的表示两个实例是一样的概率是可忽略不计的,或至少为小于所需的容限,但不一定为零。GUID通常被存储为128位值且通常(但并不总是)被显示为32个十六进制数字,其具有由连字符分隔的组,诸如65AFC127-9BEB-5196-B1AB-09126E4512D4。由随机数字产生的GUID通常含有6个固定位(指示该GUID是随机的)以及122个随机位;唯一的这种GUID的总数为2122(约5.3×1036);因此相同号码的概率是可忽略不计的。GUID可以是或不是由随机(或伪随机)数字产生的;以其他方式产生的GUID或其他版本的GUID具有不同的唯一性属性和概率,其范围为有保证的唯一性至可能的重复性。用于主要实施例和次要实施例中的GUID是由随机数字产生的且因此产生两次相同GUID的概率是可忽略不计的。在其他实施例中,使用产生GUID的其他方法。
[0760] API或应用编程接口是具有指定的输入和输出的软件组件,其用于在不同的应用之间进行通信和/或共享数据。
[0761] 在本发明中,对视频的引用通常是指包括其相关联的音频轨道的视频。因此,说明了对不具有相关联的音频轨道的视频的引用(其在实践中是罕见的并且进一步地在一些所讨论的协议,例如HLS中是不受支持的)。
[0762] 在本发明中,HLS清单文件的示例仅包括在示例HLS清单文件中所包含的HLS清单文件URL或视频分段文件URL;如在本发明中所描述的,HLS清单文件含有除了URL之外的其他信息,包括元数据;除了特别指出的之外,这种元数据通常在发出的HLS清单文件和相应的源HLS清单文件中将是相同的。因此,为了使示例更易于读取和理解且由于HLS清单文件示例主要说明了URL或URL组的组成和/或结果,该额外信息尚未包括在本发明所呈现的HLS清单文件的示例中。然而,这种方式的示例表示并不意味着建议或暗示这种额外的信息不存在于HLS清单文件中,且该示例并不旨在暗示关于在本文所呈现的实施例中的HLS清单文件中的这种额外信息,包括元数据的任何内容。类似地,在一些自适应流式传输协议中使用的清单文件可以在至少一些方面中为无序的,也就是说,在视频回放组件如何处理和利用清单文件的内容方面,列出变体清单文件或视频分段文件(在每种实例中,连同其相关的描述性和控制信息)的序列是不重要,能够由另一个排序方案或指示符(诸如序列号)覆盖,或是不重要的或能够至少在一些方面中被覆盖。然而,本文所包括的示例在许多情况下均是按对读者来说看起来可能是连续或数字顺序列出的,且一般来说,将从一个示例至下一个相关的示例按相同的明显的序列或数字顺序示出说明相关情况的示例。除非另有明确说明外,以这种方式呈现本文所包括的示例以使其更易于阅读,且该示例不一定要被解释成暗示这种排序在某种程度上对于所有实施例的操作或本文所呈现的所有实施例的任何方面来说是重要的。
[0763] 在本发明中,对URL(统一资源定位器)的引用是指URL、URI(统一资源指示符)和/或URN(统一资源号)中的任一个、所有或其任何组合且应相应地进行读取。
[0764] 图10为能够用于实施测量和管理自适应流式传输视频传送的性能的系统的专用计算机系统1000和计算装置1050的实施例。专用计算机系统1000表示各种形式的数字计算机,诸如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当的计算机。计算装置1050表示各种形式的移动装置,诸如个人数字助理、蜂窝电话、智能手机、平板计算机、膝上型计算机以及其它类似的计算装置。
[0765] 计算机系统1000包括处理器1002、随机接入存储器(RAM)1004、存储装置1006、连接到RAM 1004和高速扩展端口1010的高速控制器1008以及连接到存储装置1006和低速扩展端口1014的低速控制器1012。组件1002、1004、1006、1008、1010、1012和1014使用各种总线进行互连且可以安装在公共主板上或酌情地按其他方式进行安装。计算机系统1000还能够包括许多外围装置,诸如联接到高速控制器1008的显示器1016。额外的外围装置能够被联接到低速扩展端口1014且能够包括光学扫描器1018,用于与其他计算机联网的网络接口1020,打印机1022和输入装置1024,该输入装置1024能够是,例如鼠标键盘、轨道球或触摸屏
[0766] 处理器1002处理用于执行的指令,包括存储在RAM 1004或存储装置1006上的指令。在一些实施方案中,可以酌情使用多个处理器和/或多个总线以及多个存储器和多个类型的存储器。RAM 704和存储装置1006为被配置成存储数据的非临时性计算机可读存储介质的示例,诸如含有当被执行时使得处理器1002执行根据本文所述的实施例的方法和过程的指令的计算机程序产品。RAM704和存储装置1006能够被实施为软盘装置、硬盘装置、光盘装置、磁带装置、闪存或其他类似的固态存储装置,或装置阵列,包括在存储区域网络或其他配置中的装置。
[0767] 高速控制器1008管理用于计算机系统1000的带宽密集型操作,而低速控制器1012则管理较低的带宽密集型操作。这种职责分配仅仅是示例性的。在一个实施例中,高速控制器1008联接到存储器1004、显示器1016(例如,通过图形处理器或加速器)以及至高速扩展端口1010,其能够接受各种扩展卡(未示出)。在该实施例中,低速控制器1012联接到存储装置1006和低速扩展端口1014。低速扩展端口1014能够包括各种通信端口或网络接口,诸如通用串行总线(USB)、蓝牙、以太网和无线以太网。
[0768] 计算机系统1000能够按许多不同的形式进行实施。例如,其能够被实施为标准服务器1026或集群中的多个服务器。其还能够被实施为个人计算机1028或作为机架服务器系统1030的一部分。可替代地,源于计算机系统1000的组件能够与移动装置(未示出),诸如装置1050的其他组件相结合。这种装置中的每一个能够含有计算机系统1000或计算装置1050中的一个以上,且整个系统能够由彼此进行通信的多个计算机系统1000和计算装置1050构成。
[0769] 计算装置1050包括处理器1052、存储器1054、输入/输出装置诸如显示器1056、通信接口1058和收发器1060以及其他组件。组件1052、1054、1056、1058和1060使用各种总线进行互连且组件中的几个可以安装在公共主板上或酌情地按其他方式进行安装。计算装置1050还能够包括一个以上的传感器,诸如GPS或A-GPS接收器模块1062、陀螺仪(未示出)和照相机(未示出),其被配置成检测或感测计算装置1050的运动或位置。
[0770] 处理器1052能够通过联接到显示器1056的控制接口1064和显示器接口1066与用户进行通信。显示器1056能够是,例如,薄膜晶体管(TFT)液晶显示器(LCD)、有机发光二极管(OLED)显示器或其他适当的显示技术。显示器接口1066能够包括用于驱动显示器1056向用户呈现图形和其它信息的适当电路。控制接口1064能够从用户接收命令并转换命令以提交给处理器1052。另外,外部接口1068能够与处理器1052进行通信以提供与其他装置的近区域通信。外部接口1068能够是,例如,有线通信接口,诸如基座或USB,或无线通信接口,诸如蓝牙或近场通信(NFC)。
[0771] 装置1050还能够通过音频编解码器1070与用户以可听的方式进行通信,该音频编解码器1070能够接收口头信息并将其转换成能够由处理器1052处理的数字数据。音频编解码器1070同样能够产生用于用户的可听的声音,诸如通过扬声器进行。这种声音能够包括源于语音电话呼叫的声音、记录的声音(例如,语音消息、音乐文件等)以及由在装置750上运行的应用所产生的声音。
[0772] 扩展存储器1072能够通过扩展接口1074连接到装置1050。扩展存储器1072能够为装置1050提供额外的存储空间,其能够用于为装置1050存储应用或其他信息。具体地说,扩展存储器1072能够包括进行或实施本文所述过程的指令。扩展存储器1072还能够用于存储安全信息。
[0773] 计算装置1050能够按许多不同的形式进行实施。例如,其能够被实施为蜂窝电话1076、智能手机1078、个人数字助理、平板计算机、膝上型计算机或其他类似的移动装置。
[0774] 在本发明中,在其中首先在交换机接收到连接请求的任何实施例中,其中该交换机随后将选择将接收其的基础设施组件,术语交换机表示任何切换装置、服务器或能够接收请求并将请求分配至或将其路由至一个以上的接收装置的其他装置;这包括最初接收连接请求,选择用于处理连接的装置并将该连接请求转发到所选装置或以其他方式建立代表所选装置的有效连接的能力。还要注意的是,从所选装置至请求装置的返回路径不一定需要通过交换机(然而有时,对于一些类型的交换机而言,其可能是这种情况);例如,至少在其中接收装置是服务器且连接是TCP连接的情况下,接收连接的服务器通常可以通过在回复时使用交换机的IP地址来直接回复至请求装置。
[0775] 在本发明基于一个以上的标准或情况描述了一个以上的有条件的替代方案的情况下,无论是否明确表示,其旨在表示该一个以上的有条件的替代方案以及一个以上的标准或情况都包括无效情况,且本发明应相应地进行阅读和解释。
[0776] 在本发明描述了一个以上的后果、结果或输出的情况下,无论是否明确表示,这种描述均不旨在是详尽的或排除其他后果、结果或输出,或排除无效情况,且本发明应相应地进行阅读和解释。
[0777] 在本发明提供了示例的情况下,这种示例仅旨在说明并加强对所引用的概念的理解且并不旨在为限制性的;因此,词语“例如”、“作为一个示例”、“作为另一个示例”以及类似的短信在所有情况下要被解读为包括“但不限于”,且本发明应相应地进行阅读。
[0778] 在本文所述的实施例中,如前所述,清单文件通常是文本文件。这表示(除了别的之外)清单文件通常是基于字符的文件,其不含有标记语言指令。然而,本文所述的实施例不限于为文本文件的清单文件;相反地,清单文件可以是任何种类的文件,其包括按标记语言进行格式化的文件,诸如HTML或XML或其他类型的文件。
[0779] 包含在本发明中的段落标题,例如在具体实施方式中的标题“介绍”被提供用于帮助读者且不旨在限制后面的文本范围;在本说明中的标题不应被解释为限制性的。本发明中含有的一些系列已被构造成列表,通常是按字母顺序的形式进行的,以帮助读者确定在该系列中的每个项目的范围和内容;这种系列的按字母顺序的列表(本身)并不旨在限制该系列的内容或暗示该系列是连续的或传达优先性、重要性、执行或解释的序列。在本发明中的这种系列的按字母顺序的列表(本身)不应被解释为限制性的。
[0780] 此外,要注意的是实施例可以被描述成过程,其被示为流程图、流图、游动图、数据流图、结构图或方框图。虽然描写可以将操作描述为顺序过程,但是许多操作都能够并行或同时执行。另外,可以重新布置操作的顺序。一个过程在其操作完成时终止,但却可能具有不包括在图中的额外的步骤。过程可以对应于方法、功能、程序、子例程、子程序等。当过程对应于功能时,其终止对应于该功能返回至调用功能或主功能。
[0781] 而且,实施例可以由硬件、软件、脚本语言、固件中间件、微代码、硬件描述语言和/或其任何组合来实施。对于硬件实施方案来说,处理单元可以在一个以上的应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器微处理器、被设计为执行上述功能的其他电子单元和/或其组合内实施。
[0782] 对于固件和/或软件实施方案来说,可以使用执行本文所述功能的模块(例程,程序、功能等)来实施方法。任何有形地使指令具体化的机器可读介质可用于实施本文所述的方法。例如,软件代码可存储在存储器中。存储器可以在处理器内或在处理器外实施。如本文中所使用的,术语“存储器”是指任何类型的长期、短期、易失性、非易失性或其他存储介质且不限于任何特定类型的存储器或任何数量的存储器,或上面存储有存储器的任何类型的介质。
[0783] 此外,如本文所公开的,术语“存储介质”可以表示用于存储数据的一个以上的存储器,包括只读存储器(ROM)、随机存取存储器(RAM)、磁RAM、磁芯存储器、磁盘存储介质、光存储介质、闪存装置和/或用于存储信息的其它机器可读介质。术语“机器可读介质”包括但不限于便携式或固定存储装置、光存储装置、无线信道和/或能够进行存储的各种其他存储介质,其含有或载有指令和/或数据。
[0784] 虽然上面已结合特定器械和方法描述了本发明的原理,但要清楚地理解本描述仅是通过示例来提出的且不是作为对本发明的范围的限制而提出的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈