中断经不可侵犯清单协议提供的流传输内容的系统和方法与流程

文档序号:18005532发布日期:2019-06-25 23:19阅读:200来源:国知局
中断经不可侵犯清单协议提供的流传输内容的系统和方法与流程

本申请要求于2016年12月30日提交的题为“systemsandmethodsforinterruptingstreamingcontentprovidedviaaninviolatemanifestprotocol(中断经不可侵犯清单协议提供的流传输内容的系统和方法)”的美国临时申请第62/441,045号的优先权和权益,该美国临时申请的全部内容通过引用合并于此。



背景技术:

自适应速率媒体流传输(诸如通过http直播流传输(hls)协议提供的流传输)涉及传递到客户端设备的清单或索引。清单识别流传输的媒体的一个或多个短片段(有时称为块(block)或组块(chunk)),并且客户端可以连续地取回(retrieve)和回放每个片段。客户端可以周期性地请求对媒体(诸如新创建或生成的直播媒体)的额外的片段进行识别的新的或更新的清单或索引。

在许多这些协议中,一旦被客户端取回,则清单是不可侵犯的(inviolate);也就是说,一旦被提供给客户端,则服务器或流传输主机不可以更改清单,并且客户端将根据取回的清单来取回片段。具体地,服务器或主机无法访问客户端侧清单,即使对于更新的清单,服务器或主机也只可以从清单中移除最旧的片段并且将新段添加到清单的末尾,但是不可以修改现有的片段。如果服务器希望提供不同的流传输内容,则必须等到客户端请求更新的或新的清单,例如,在耗尽先前取回的清单或下载所有识别的片段以供回放之后。这可能导致:改变内容时的延迟、大量流传输客户端的不同步、浪费的带宽和存储空间以及用户沮丧。



技术实现要素:

要在不改变不可侵犯清单的情况下改变提供的内容,智能流传输媒体服务器或边缘高速缓存可以在客户不知情的情况下替换与所请求内容不同的内容。具体地,在一些实施方式中,客户端可以请求文件或流的第一片段,并且智能流传输服务器可以替代地传递完全不同的文件或流的片段。替换片段可以具有与所请求的片段相同的长度,并且可以被重命名,以使得客户端相信所请求的片段已被正确地提供服务(served)。因此,在不改变清单或不背离清单不可侵犯协议的要求并且不改变客户端的任何功能的情况下,系统可以基于每片段而不是基于每清单来提供内容切换。

提及这些实施方式不是为了限制或限定本公开的范围,而是为了帮助理解本公开的范围。可以开发特定的实施方式以实现以下优点中的一个或多个。

附图说明

在附图和以下描述中阐述了一个或多个实施方式的细节。根据说明书、附图和权利要求,本公开的其他特征、方面和优点将变得明显,在附图中:

图1是用于自适应流传输的清单的实施方式的框图;

图2a是根据一个实施方式的内容传递环境的框图;

图2b是根据一个实施方式的图2a中所示的客户端和服务器设备的框图;以及

图3是根据一个实施方式的用于经由不可侵犯清单协议提供可中断流传输内容的方法的流程图。

各个附图中相同的附图标记和名称指示相同的元件。

具体实施方式

直播广播的许多实例包括间歇(诸如商业广告间歇、电台宣传或标识或甚至其他直播内容),在此期间广播方将直播动作切换或“切走(cutaway)”到替选(alternate)内容。广播方可以从在运动事件期间示出场上动作的摄像机切换到在动作暂停期间示出工作室中谈话的广播员的摄像机,或者可以切换到商业广告或其他内容。在典型的地面广播中,该切走或切换可以在分配信号之前由控制室的直播操作员执行。操作员可以在其他内容被广播呈现的同时监视直播(尽管未转播)的摄像机馈送,并且如果即将发生有趣或令人兴奋的事情,则操作员可以中断替选内容并且快速切走到或切换回到直播动作。

许多多媒体流传输协议(诸如http实时流传输(hls)协议)利用周期性地发送到每个客户端或由每个客户端周期性地取回的清单或索引。在图1的框图中示出了这种清单100的示例实施方式。清单100识别作为流的一部分的一个或多个媒体片段(例如,通过地址106a-106n,通常称为文件或片段地址106),并且客户端设备可以按顺序取回、缓冲和回放每个媒体片段。清单还可以包括每个片段的文件或片段元数据104a-104n,诸如内容长度、提示(cue)、内容类型、时间戳或其他此类信息。

在一些实施方式中(称为自适应比特率流传输),清单可以识别对应于相同内容的、但是比特率不同的(例如,content1_256kbps.ts;content1_128kbps.ts等)一个或多个替选片段。客户端可以基于网络条件或特性(例如,带宽、延迟、丢失率等)、仅通过请求不同的替选片段来动态地调整比特率,以根据需要增加或降低媒体流的质量。在一个这样的实施方式中,客户端可以取回识别一分钟的媒体内容的清单,其被划分为六个十秒的片段、针对每个片段具有三个替选比特率。客户端可以请求具有最低比特率的第一片段(例如,segment1_low_quality.ts),并且基于取回片段的时间,可以确定请求具有下一比特率的第二片段(例如,segment2_mid_quality.ts)和具有更高比特率的第三片段(例如,segment3_high_quality.ts)。如果网络吞吐量或特性下降,则客户端可以请求较低质量的片段。可以提前取回和缓冲片段。当客户端已经请求了在清单中所识别的每个片段时,客户端可以请求识别其他片段的新的或更新的清单以用于取回。可以针对直播广播内容周期性地更新清单。在一个这样的实施方式中,内容制作者可以生成直播媒体流的一部分(诸如一分钟),对流进行编码和分段以及准备和分发识别该部分的片段的清单(例如,六个十秒的片段)。制作者可以继续生成、编码和分段流,并且可以准备和分发识别下一部分的片段的后续第二清单(例如,下一分钟的六个十秒的片段)。只要流可用,这可以继续。

如上所述,在一些实施方式中,直播流的制作者或发布者可以周期性地在流中插入替选内容,诸如广告内容或其他内容,其可以是直播或预先录制的,并且可以通常被称为“替选”内容,与主直播内容相对。在一些实施方式中,替选内容对于接收流的所有客户端可以是相同的;而在其他实施方式中,替选内容对于不同的客户端可以是不同的。在一个这样的实施方式中,制作者可以安排预定长度(诸如两分钟)的间歇,并且诸如发布者的内容选择方可以选择一个或多个替选内容项,其总持续时间等于预定长度以便在间歇期间分发给客户端。内容可以被选择和被分发到不同的区域、不同的设备类型、不同的用户或者任何其他这样的分类。在许多实施方式中,可以通过将内容添加到用于客户端的清单来插入内容。客户端可以取回清单并且取回主内容的片段(例如,program1.ts,program2.ts等),直到到达在清单中所识别的替选内容的片段,然后可以以类似的方式取回所识别的替选内容的片段(例如,station_break1.ts)。在一些实施方式中,清单可以由替选源(有时被称为清单操纵器)提供,其可以执行针对预定间歇的内容选择,可以将区域特定或设备特定的元数据和文件标识符插入清单中,以及将清单分发给相应的一个或多个客户端。

在许多基于清单的流传输协议中,一旦清单被传递到客户端,则其不可以被流传输服务器或媒体操纵器改变;服务器无法“推送”清单更新到客户端设备。因此,客户端将继续取回在清单中所识别的媒体片段并且显示它们,直到耗尽清单(即,取回在清单中所识别的每个片段)、直到计时器过期并且客户端取回更新的清单或者直到客户端停止显示流。这样的协议可以被称为清单不可侵犯或不可侵犯清单协议,因为清单一旦被递送到客户端就不可以更新或改变,并且系统必须等待客户端请求新的清单。

对于不包括间歇或仅包括预定间歇的内容,这可能是好的,并且在这样的实施方式中,清单可以非常长或者清单可以识别大量或长持续时间的片段。然而,因为清单是不可侵犯的,所以流制作者缺乏提前中断间歇以返回直播摄像机的能力。这可能导致客户端设备的用户错过体育事件的动作,错过刚刚登上讲台的政治候选人的演讲开始,或者错过其他重要内容,并且可能导致用户沮丧。

在一个实施方式中,系统可以通过使得清单非不可侵犯来允许中断,诸如通过在每个客户端设备上安装具有修改清单的能力的客户端代理。客户端代理可以从服务器接收“推送”通知和请求新的清单,可以将推送通知中的信息添加到清单,或者可以持续地(例如,每秒)请求新的清单。然而,这些解决方案不仅需要在每个设备上安装客户端代理(可能对于用户是不可接受的,可能需要设备上的额外的存储空间和下载带宽,并且可能会产生安全漏洞,如为网络侦听代理),而且可能消耗重要的网络或服务器资源(诸如必须每秒向数百或数千个客户端设备提供新的清单)。

因此,在本文中更详细讨论的其他实施方式中,为了允许直播切入或返回到直播摄像机馈送、中断先前调度的片段,智能流传输服务器或边缘高速缓存可以在客户端不知情的情况下替换与所请求的内容不同的内容。具体地,在一些这样的实施方式中,客户端可以请求片段(例如,prerecorded_break_1.ts),并且流传输服务器可以替代地从直播馈送(例如,live_segment_6.ts)传递片段。替换片段可以具有与所请求的片段相同的长度,并且可以被重命名,使得客户端相信所请求的文件已被正确地提供服务(例如,将live_segment_6.ts重命名为prerecorded_break_1.ts)。因此,在不改变清单或不背离清单不可侵犯协议的要求并且不改变客户端的任何功能的情况下,系统可以提供:定期地调度的内容中的中断和替选内容的服务提供。

在类似的实施方式中,清单可以仅识别直播或主片段,并且智能流传输服务器可以在预定的间歇时间、针对所请求的片段来替换预先录制或替选内容(如上所述修改文件名或标识符),以及在指示时停止修改并且返回直播片段。

这样的实施方式可以允许在客户端上、在预先录制或替选的内容与直播内容之间进行非常快速的切换,而不浪费带宽和以下资源:重传清单的资源或者向客户端设备提供错误的内容、需要重新下载正确内容的资源。这些实施方式还可以减少用户沮丧,因为不会错过有趣的直播动作。

图2a是根据一个实施方式的内容传递环境200的框图。网络205可以连接一个或多个客户端设备210a-210n(通常称为客户端设备210);以及清单服务器212和智能流传输服务器214。智能流传输服务器214可以直接地或经由网络205从一个或多个内容提供者接收内容,诸如直播内容提供者218a和预先录制或存储的内容提供者218b,通常称为内容提供者218。在一些实施方式中,清单服务器212、智能流传输服务器214和内容提供者218中的一个或多个可以由相同的服务器或设备提供;相反,在一些实施方式中,清单服务器212、智能流传输服务器214和内容提供者218可以包括多个设备,诸如云、集群、分布式内容传递系统或其他这样的系统。因此,尽管仅示出一个智能流传输服务器214,但是在许多实施方式中,多个服务器可以经由一个或多个网络205进行通信。

仍然参考图2a并且更详细地,网络205可以是在客户端设备210与一个或多个智能流传输服务器214之间(以及未示出的其他设备之间)中继信息的任何形式的计算机网络或网络的组合。网络205可以包括互联网和/或其他类型的数据网络,诸如局域网(lan)、广域网(wan)、蜂窝网络、卫星网络或其他类型的数据网络。网络205还可以包括被配置为在网络205内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络205还可以包括任何数量的硬连线和/或无线连接。客户端设备210可以(例如,经由wifi、蜂窝、无线电等)无线地与(例如,经由光纤电缆、cat5电缆等)硬连线到网络205中的其他计算设备的收发器通信。在一些实施方式中,网络205可以是虚拟网络,诸如由单个物理机器执行的多个虚拟机之间的虚拟网络;或者可以是抽象网络,诸如经由物理上可移动介质(例如,sneakernet;通过磁带介质、cd-rom、闪存介质、外部硬盘驱动器、软盘等传输数据)的数据的离线传输。

客户端设备210可以被不同地称为客户端、设备、客户端设备、计算设备、用户设备或任何其他这样的术语;可以是台式计算机、膝上型计算机、平板计算机、智能电话、视频游戏控制台、智能电视或机顶盒、服务器、工作站或能够通过网络205进行通信的任何其他类型和形式的计算设备。在一些实施方式中,客户端设备210可以执行应用、服务、服务器、守护进程(daemon)、例程或者用于通过网络205进行通信的其他可执行逻辑,诸如网络(web)浏览器、邮件客户端、视频播放器、音乐播放器、视频游戏或任何其他这样的应用。这些应用可以包括命令行界面、图形用户界面或者这些或其他界面的任何组合。在客户端设备是智能电视或机顶盒的实施方式中,客户端设备可以经由第一接口(诸如地面广播、卫星广播或有线广播)接收内容;并且可以经由网络205经由第二接口(诸如以太网或wifi接口)与观众测量服务器通信。在其他实施方式中,客户端设备210可以经由网络205接收内容,并且可以经由网络205发送交互的标识。

内容提供者218可以包括连接到网络205并且被配置为直接地或经由智能流传输服务器214向客户端210提供内容的一个或多个计算设备。内容提供者218可以被不同地称为内容提供者、服务器、web服务器、数据服务器、发布者、服务提供者或其他类似术语。在许多实施方式中,内容提供者218可以包括被配置为服务器群或云的多个计算设备,并且可以包括路由器、负载平衡器、网络地址转换器、防火墙或其他这样的设备。内容提供者218可以是计算机服务器(例如,ftp服务器、文件共享服务器、web服务器等)或服务器的组合(例如,数据中心、云计算平台等)。内容提供者218可以提供任何类型和形式的内容,包括文本、图像、视频、音频、多媒体或其他数据或这些的任何组合。内容可以包括直播媒体内容、预先录制的媒体内容、渲染的内容、电影、电视节目、播客、视频博客、视频游戏或其他交互式内容、任何格式的广告、社交媒体或任何其他类型和形式的内容。虽然示出连接到智能流传输服务器214,但是在许多实施方式中,内容提供者可以经由网络205与智能流传输服务器214通信,并且可以经由网络205向客户端设备210传递内容。在其他实施方式中,智能流传输服务器214可以从内容提供者218取回内容并且可以高速缓存内容以便递送到客户端设备。因此,智能流传输服务器214可以包括一个或多个边缘高速缓存或分布式内容服务器。

清单服务器212(有时称为清单操纵器、清单修改器、个性化清单创建器或任何其他此类术语)可以包括连接到网络205并且被配置用于生成清单和向客户端设备210(在一些实施方式中,向智能流传输服务器214)提供清单的一个或多个计算设备。清单服务器212可以包括文件服务器、web服务器、数据服务器或任何类似的数据源。在许多实施方式中,清单服务器212可以包括被配置为服务器群或云的多个计算设备,并且可以包括路由器、负载平衡器、网络地址转换器、防火墙或其他这样的设备。在一些实施方式中,清单服务器212可以是内容提供者218。

智能流传输服务器214可以包括一个或多个计算设备、家电或服务器,诸如服务器群或云。在许多实施方式中,智能流传输服务器214可以是用于服务特定地理区域的区域分布式服务器或边缘高速缓存。在一些实施方式中,智能流传输服务器214可以包括由物理机器执行的一个或多个虚拟服务器。智能流传输服务器214可以根据请求向客户端设备10提供内容片段,并且可以在提供所请求的内容片段或替换替选内容片段之间动态地进行选择,如上所述。在一些实施方式中,智能流传输服务器214还可以提供清单,并且可以服务清单服务器212的功能。

图2b是根据一种实施方式的图2a中所示的客户端和服务器设备的框图。首先参考客户端设备210,客户端设备可以是直播媒体流的客户端或观众成员的计算设备。客户端设备210可以是被配置为经由网络205进行通信的任何数量的不同类型的用户电子设备,包括但不限于,膝上型计算机、台式计算机、平板计算机、智能电话、数字视频记录器、用于电视的机顶盒、视频游戏控制台或任何其他类型和形式的计算设备或设备的组合。在一些实施方式中,客户端设备210的类型可以被分类为移动设备、桌面设备或者意图保持静止或被配置为主要经由局域网接入网络205的设备、或其他类别的电子设备(诸如媒体消费设备)。

在许多实施方式中,客户端设备210包括处理器222和存储器224。存储器224可以存储机器指令,其当由处理器222执行时使得处理器222执行本文描述的操作中的一个或多个。处理器222可以包括微处理器、asic、fpga等或其组合。在许多实施方式中,处理器222可以是多核处理器或处理器阵列。存储器224可以包括但不限于电子、光学、磁性或能够向处理器222提供程序指令的任何其他存储设备。存储器224可以包括软盘、cd-rom、dvd、磁盘、存储器芯片、rom、ram、eeprom、eprom、闪存、光学介质或处理器222可以从其读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码,诸如但不限于c、c++、c#、java、javascript、perl、html、xml、python和visualbasic。

客户端设备210可以包括一个或多个网络接口226。网络接口226可以包括任何类型和形式的接口,包括以太网(包括10baset(双绞线对),100baset或1000baset(“吉比特(gigabit)”));多种802.11无线中的任何一种(诸如802.11a、802.11b、802.11g、802.11n或802.11ac);蜂窝(包括cdma、lte、3g或4g蜂窝);蓝牙或其他短距离无线连接;或者用于与网络205进行通信的这些或其他接口的任何组合。在许多实施方式中,客户端设备210可以包括不同类型的多个网络接口226,允许经由不同子网络连接到各种网络205或诸如互联网的网络205。如上所述,客户端设备210还可以包括用于接收地面广播、卫星广播或有线模拟或数字广播的其他接口。

客户端设备210可以包括一个或多个用户接口设备228。用户接口设备228可以是通过生成传感信息(例如,显示器上的可视化、一个或多个声音、触觉反馈等)向用户传达数据,和/或将从用户接收的感觉信息转换成电子信号(例如,键盘、鼠标、指点设备、触摸屏显示器、麦克风等)的任何电子设备。根据各种实施方式,一个或多个用户接口设备可以在客户端设备210的壳体内部,诸如内置显示器、触摸屏、麦克风等;或者在客户端设备210的壳体外部,诸如连接到客户端设备210的监视器、连接到客户端设备210的扬声器等。

客户端设备210可以在存储器224中包括应用230或者可以采用处理器222执行应用230。应用230可以是应用、小应用程序(applet)、脚本、服务、守护程序、例程或其他可执行逻辑,以用于接收清单100,取回识别的内容片段232以及经由客户端设备的输出接口228(例如,显示器、扬声器等)显示或播放内容片段。在一个实施方式中,应用230可以是web浏览器。应用230可以包括用于显示经由网络接口226接收和/或由处理器222本地生成的内容的功能。在一些实施方式中,应用230可以是媒体播放器或包括嵌入式媒体播放器,诸如web浏览器中的插件或本地媒体播放器。应用230可以提供用于与在媒体播放器中播放的内容交互的用户界面,诸如跳过控制、不喜欢按钮或任何类似的界面。

客户端210可以包括设备标识符234或采用设备标识符234来标识。设备标识符234可以是字母数字串、数据串、序列号、媒体访问控制(mac)地址、网际协议(ip)地址、用户名或帐户名、全球唯一标识符(guid)、cookie、随机或伪随机数或任何其他类型和形式的标识符,包括这些或其他标识符的组合。在一些实施方式中,设备标识符234可以固定到设备或者在设备中预先配置,诸如制造商序列号或mac地址;而在其他实施方式中,设备标识符234可以由内容提供者、流传输服务器、应用230或其他实体动态地设置,诸如cookie或用户名。在一些实施方式中,可以为内容提供者和/或观众测量服务器的每次通信设置唯一或新的设备标识符234;而在其他实施方式中,设备标识符234可以不被改变,或者可以周期性地(例如,每小时地、每天地、每周地等)或以其他间隔(例如,在重新启动客户端设备时,在登录到互联网服务时等)被改变。在一些实施方式中,设备标识符234可以与一个或多个其他设备标识符234相关联(例如,移动设备的设备标识符、家用计算机的设备标识符等)。在许多实施方式中,如上所述,设备标识符234可以由内容提供者生成和/或发送到设备210。在其他实施方式中,如上所述,客户端210可以从流传输服务器或内容提供者请求设备标识符或cookie234,并且可以与内容的请求相关联地向流传输服务器或内容提供者发送设备标识符或cookie234。

在图2b中还示出清单服务器212的实施方式的框图。与客户端设备210一样,服务器212可以包括一个或多个处理器222、存储器224、网络接口226和用户接口228。在一些实施方式中,称为无头服务器,服务器212可以不包括用户接口228,但是可以经由网络205与具有用户接口228的客户端210通信。存储器224可以包括内容存储装置,诸如网页、图像、音频文件、视频文件、数据文件、或任何其他类型和形式的数据的存储装置。在一些实施方式中,存储器224可以存储用于由服务器的处理器222执行的一个或多个应用(未示出),包括ftp服务器、web服务器、邮件服务器、文件共享服务器、对等服务器或用于传递存储在内容存储装置中的内容的其他此类应用。清单服务器212可以在存储器224中存储一个或多个清单100,诸如针对媒体流的一般清单以及针对一个或多个区域、客户端设备或其他组的个性化清单。

在一些实施方式中,服务器212可以执行清单操纵器236。清单操纵器236可以包括应用、服务、服务器、守护程序、例程或其他可执行逻辑,以用于生成和个性化清单,如上所述。在一些实施方式中,清单服务器212可以从直播内容提供者接收清单,该清单识别直播流中的一个或多个预定间歇(例如,两分钟的间歇)。清单操纵器236可以通过在所识别的一个或多个预定间歇处将选择的内容片段标识符插入清单中,来修改清单或生成新的个性化清单。清单服务器可以向一个或多个客户端设备提供个性化清单。在一个这样的实施方式中,清单服务器可以从客户端设备接收对清单的请求,该请求包括客户端设备的设备标识符234。在一些实施方式中,清单服务器可以基于设备标识符识别选择内容。在其他实施方式中,设备标识符234可以与存储在清单服务器212中或由清单服务器212维护的设备数据库238中的一个或多个特性或特征(例如,地理位置、喜爱的运动队等)相关联。可以基于特性选择替选内容,并且相应地改变清单。虽然是清单不可侵犯协议,但是清单操纵器可能会改变清单,因为清单尚未传递到客户端设备。数据库238可以包括任何类型和形式的数据库、平面文件、数据文件、数据阵列或其他数据结构,以用于存储多个设备标识符和用于内容选择的相关特征或特性。

在图2b中还示出智能流传输服务器214的实施方式的框图。与客户端设备210一样,服务器214可以包括一个或多个处理器222、存储器或存储设备224、网络接口226和用户接口228。在一些实施方式中,被称为无头服务器,服务器214可以不包括用户接口228,但是可以经由网络205与具有用户接口228的客户端210或小组成员(panelist)216通信。存储器224可以包括内容存储装置或高速缓存246,诸如直播或主媒体流片段以及替选流或文件片段的存储装置。在一些实施方式中,存储器224可以存储一个或多个应用以供服务器的处理器222执行,包括ftp服务器、web服务器、邮件服务器、文件共享服务器、对等服务器或其他这种应用,以用于传递存储在内容存储装置中的内容,通常被称为流传输248。在一些实施方式中,内容存储装置246可以在一个或多个外部存储设备中、或者可以分布在一个或多个服务器212或云存储设备上。来自内容存储装置246的内容可以被提供给客户端设备210。在一些实施方式中,智能流式传输服务器可以存储从清单服务器212和/或内容提供者获得的清单100的副本。

智能流传输服务器214可以执行流控制器240。流控制器240可以包括应用、小应用程序、服务、服务器、守护进程、例程或其他可执行逻辑,以用于从客户端接收对在清单中所识别的流传输媒体片段(例如,预先录制的媒体片段)的请求,并且响应于内容选择标志的设置,提供所请求的数据文件或者提供替选数据(例如,直播流数据)。在一些实施方式中,流控制器240可以包括元数据操纵器242,其可以包括应用、守护进程、服务或其他可执行逻辑,以用于采用来自媒体流传输片段的不同数据文件(诸如直播流的片段)的元数据来修改媒体流片段(诸如广告片段)的数据文件。

在一些实施方式中,流传输服务器214可以执行内容取回器244。内容取回器244可以包括应用、小应用程序、服务器、服务、守护进程、例程或其他可执行逻辑,以用于从内容提供者请求和/或取回流媒体片段以及将内容高速缓存在内容缓存246中;用于请求和/或取回清单100;或其他此类功能。内容取回器可以包括浏览器应用、web客户端、文件传输客户端或任何其他类型和形式的应用或客户端。

图3是根据一个实施方式的用于经由不可侵犯清单协议提供可中断流传输内容的方法300的流程图。在步骤302,智能流传输服务器可以从客户端设备接收请求。在一些实施方式中,请求可以是针对清单的请求,并且流传输服务器可以将清单传递给客户端设备。在一些实施方式中,流传输服务器可以包括清单服务器或者与清单服务器通信,并且从清单服务器取回清单以重新分发到客户端设备。在其他实施方式中,客户端设备可以直接地从内容提供者或清单服务器请求清单。请求可以包括客户端设备的设备标识符、用户名、帐户名或任何其他此类标识符。请求还可以包括媒体流或清单的标识符,使得流传输服务器可以选择适当的清单进行传递。在一些实施方式中,如上所述,清单可以针对客户端设备、针对区域中的客户端设备或具有其他共同特征的客户端设备进行个性化。在步骤304,流传输服务器可以将清单提供给客户端设备。在一些实施方式中,服务器可以将清单发送到客户端设备,而在其他实施方式中,服务器可以发送重定向命令或客户端可以获得清单的地址(例如,清单服务器地址)。

如果请求是针对流传输内容片段的请求,则在步骤306,流传输服务器可以确定请求是针对直播或主内容流的片段,还是针对替选内容流(例如,电台间歇、广告、替选内容等)的片段。在一些实施方式中,流传输服务器可以基于请求的地址来确定请求对应于哪个流(例如,“main_segment1.ts”vs.“alternate_segment1.ts”或“station_break_segment1.ts”)。在其他实施方式中,可以在请求中明确地识别流。如果请求是针对直播或主流的片段,则在步骤308,流传输服务器可以将请求的片段提供给客户端设备。如上所述,提供请求的片段可以包括提供具有不同比特率的多个相关或相应的片段中的具有请求的比特率的片段。提供请求的片段可以包括将片段发送到客户端设备,或者可以包括发送重定向命令和可以获得请求的片段的地址。片段可以包括数据文件(数据文件包括片段的编码媒体数据,诸如传输流、mpeg流或其他数据);和元数据(诸如,片段和/或流的名称、片段的长度、片段的呈现时间戳或任何其他此类信息)。

如果请求是针对替选内容流的片段,则在步骤310,流传输服务器可以确定是否已经设置了直播内容流标志。如上所述,流传输服务器可以周期性地从直播内容提供者请求直播内容状态标志,或者直播内容提供者可以诸如经由述性状态转移(restful)通信协议向流传输服务器推送状态标志更新的通知。在一个这样的实施方式中,内容提供者可以在识别标志值(诸如用于直播流的第一预定值和用于替选流的第二预定值)的url中发送具有参数值对的httppost请求。在另一个轻量级实施方式中,可以经由分组的报头中的选项字段来发送标志。在一些这样的实施方式中,流传输服务器可以频繁地从直播内容提供者取回数据,诸如附加直播媒体流片段和/或清单,以用于高速缓存和重新分发到客户端设备。通过传递片段和/或清单中的一些或所有,直播内容提供者可以将直播状态标志的值嵌入元数据中,诸如在数据分组的报头或选项字段中。因此,标志可以包括具有指示直播流传输的预定值的单个比特。

如果未设置直播流传输标志,则在步骤308,流传输服务器可以提供请求的替选内容。如上所述,提供请求的片段可以包括提供具有不同比特率的多个相关或相应的片段中的具有请求的比特率的片段。提供请求的片段可以包括将片段发送到客户端设备,或者可以包括发送重定向命令和可以获得请求的片段的地址。片段可以包括数据文件(数据文件包括片段的编码媒体数据,诸如传输流、mpeg流或其他数据);和元数据(诸如,片段和/或流的名称、片段的长度、片段的呈现时间戳或任何其他此类信息)。

如果设置了直播流传输标志,则在步骤312,流传输服务器可以从直播内容提供者或从流传输服务器的高速缓存中取回直播内容片段,该直播内容片段先前已被取回。流传输服务器可以取回具有对应于当前时间或略微未来的呈现时间戳的直播内容片段,可以取回在先前发送的直播内容片段之后的直播内容片段,或另外地取回下一个直播内容片段。在一些实施方式中,直播内容片段可以存储在先进先出(fifo)缓冲器中,并且周期性地移除和/或分发到客户端设备(例如,在流的清单中识别的每个呈现时间戳)。在一些实施方式中,即使在预定间歇期间(例如,当制作者已经指示从直播流切走时)也可以接收片段,并且可以在整个间歇期间周期性地移除和丢弃片段(例如,根据他们在清单中识别的持续时间或时间戳)。因此,高速缓存可以丢弃过去的或过期的片段,以便选择适当的片段以传递给客户端。在其他实施方式中,可以在间歇期间不传递直播内容流的片段;相反,当制作者指示从间歇切走回到主馈送时,可以从内容提供者将“第一”间歇后片段传递到流传输服务器。流传输服务器可以将该片段用作合适的直播内容片段以传递给客户端。片段可以具有与请求的替选内容片段相同的持续时间和比特率。

在步骤314,服务器的流控制器可以修改取回的直播内容片段的元数据。修改元数据可以包括用请求的替选馈送片段的文件名来替换片段数据文件的报头中的文件名,替换元数据中的流标识符或数据文件的报头,或者另外地将片段的元数据或数据文件修改为看起来是请求的替选内容片段,虽然具有不同的编码媒体数据。在多个客户端设备接收相同清单的实施方式中,诸如对于广播区域,可以响应于来自其他客户端的请求来高速缓存和服务修改的直播内容片段,跳过步骤314对方法300的连续迭代。

在步骤316,流传输服务器可以将修改的直播内容片段和元数据提供给客户端设备。因为元数据已被修改,所以客户端设备可以相信接收的数据文件是请求的替选内容流的数据文件,并且可以在清单中指示的呈现时间播放数据文件。因此,虽然客户端设备可以相信其正在播放替选内容的片段,诸如电台间歇或广告,但是实际解码的内容将是直播内容流的一部分。这允许制作者在清单内的任何片段间歇处中断替选内容流,而无需等待将修改后的清单传递到每个客户端,并且无需修改客户端设备、无需安装客户端代理或另外地不遵守协议要求。

虽然以上描述涉及使用本文描述的技术来恢复到直播或主内容流的示例,但是该技术可用于针对其他目的来中断经由清单不可侵犯流传输协议提供的流传输内容。例如,本文描述的技术可以用于中断流内容,以便提供通告,诸如公共服务通告。也就是说,尽管本文描述的技术可以用于返回先前流传输的内容,但是本文描述的技术不限于此。

因此,在此讨论的系统和方法提供了中断经由清单不可侵犯自适应比特率流传输协议提供的流传输内容。在第一方面,本公开描述了一种用于中断经由清单不可侵犯协议提供的流传输内容的方法。该方法包括由流传输服务器从客户端设备接收针对在包括多个流传输片段的标识符的清单中所识别的第一流传输片段的第一请求。该方法还包括由流传输服务器向客户端设备提供响应于第一请求的第一流传输片段。该方法还包括由流传输服务器接收向请求客户端设备提供预定内容的命令。该方法还包括由流传输服务器从客户端设备接收针对在清单中所识别的第二流传输片段的第二请求。该方法还包括响应于接收到提供预定内容的命令并且响应于第二请求,由流传输服务器向客户端设备与提供第二片段不同的第三流传输片段。

在一些实施方式中,在清单中未识别第三流式传输片段。在一些实施方式中,提供第三流式传输片段还包括修改第三流传输片段的标识符以匹配第二流传输片段的标识符。在一些实施方式中,提供第三流传输片段包括将第三流传输片段的数据文件发送到客户端设备。在进一步的实施方式中,该方法包括:在将第三流传输片段的数据文件发送到客户端设备之前,修改第三流传输片段的数据文件的元数据以匹配第二流传输片段的数据文件的元数据。

在一些实施方式中,该方法包括从第二客户端设备接收针对在清单中所识别的第二流传输片段的第三请求;从流传输服务器的高速缓存提供第三流传输片段的数据文件的修改的元数据和第三流媒体片段的数据文件。在一些实施方式中,该方法包括将针对内容选择标志的请求发送到内容提供者;并且响应于请求,接收包括内容选择标志的命令。在进一步的实施方式中,方法包括以预定频率向内容提供者发送针对内容选择标志的请求。在另一实施方式中,方法包括确定内容选择标志指示提供预定内容;并且其中,响应于指示提供预定内容的内容选择标志来执行提供第三流传输片段。

在另一方面,本公开涉及一种用于中断经由清单不可侵犯协议提供的流传输内容的系统。该系统包括流传输服务器,包括与内容提供者和客户端设备进行通信的网络接口、存储设备以及执行流控制器的流传输服务器的处理器。网络接口被配置用于从客户端设备接收针对在包括多个流传输片段的标识符的清单中所识别的第一流传输片段的第一请求;以及响应于第一请求,向客户端设备提供第一流传输片段。流控制器被配置为接收命令以向请求客户端设备提供预定内容。网络接口还被配置为从客户端设备接收针对在清单中所识别的第二流传输片段的第二请求;以及响应于接收到提供预定内容的命令并且响应于第二请求,向客户端设备提供与第二片段不同的第三流传输片段。

在一些实施方式中,在清单中未识别第三流传输片段。在一些实施方式中,流控制器还被配置为修改第三流传输片段的标识符以匹配第二流传输片段的标识符。在一些实施方式中,网络接口还被配置为将第三流传输片段的数据文件发送客户端设备。在另一实施方式中,流控制器还被配置为在将第三流传输片段的数据文件发送到客户端设备之前,修改第三流传输片段的数据文件的元数据以匹配第二流传输片段的数据文件的元数据。

在一些实施方式中,流传输服务器还包括高速缓存;网络接口还被配置为:从第二客户端设备接收针对在清单中所识别的第二流传输片段的第三请求;以及从流传输服务器的高速缓存提供第三流传输片段的数据文件的修改的元数据和第三流传输片段的数据文件。在一些实施方式中,流传输服务器还被配置为:经由网络接口将针对内容选择标志的请求发送到内容提供者;以及经由网络接口响应于请求,接收包括内容选择标志的命令。在另一实施方式中,流传输服务器还被配置为:以预定频率向内容提供者发送针对内容选择标志的请求。在另一实施方式中,流传输服务器还被配置为:确定内容选择标志指示提供预定内容;并且其中网络接口还被配置为响应于指示提供预定内容的内容选择标志来提供第三流传输片段。

在另一方面,本公开涉及一种存储有一个或多个程序的非暂时性计算机可读存储介质,该一个或多个程序被配置为由包括一个或多个处理器和存储一个或多个程序的存储器的第一计算设备执行。该一个或多个程序包括指令,用于:从客户端设备接收针对在包括多个流传输片段的标识符的清单中所识别的第一流传输片段的第一请求;向客户端设备提供响应于第一请求的第一流传输片段;接收向请求客户端设备提供预定内容的命令;从客户端设备接收针对在清单中所识别的第二流传输片段的第二请求;以及响应于接收到提供预定内容的命令并且响应于第二请求,向客户端设备与提供第二片段不同的第三流传输片段。在一些实施方式中,一个或多个程序还包括指令,用于:修改第三流传输片段的数据文件的元数据以匹配第二流传输片段的数据文件的元数据;以及将第三流传输片段的数据文件发送到客户端设备。

在许多实施方式中,关于用于替选内容选择的用户的人口统计信息可以是匿名的或消除歧义的,以保护设备用户的隐私。在许多这样的实施方式或可以收集关于客户端设备的用户的个人信息以用于测量或用于选择第三方内容的类似情况中,可以向用户提供控制可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户的偏好或用户的当前位置的信息)的程序或特征是否这样做的机会,或者控制是否或如何将测量数据发送到观众测量服务器和/或面板供应商的机会。另外,特定数据可以在被观众测量服务器存储或使用之前以一种或多种方式被处理,从而在生成参数(例如,人口统计参数)时移除个人可识别信息。在一些实施方式中,用户的身份可以是匿名的,使得不能针对用户确定个人可识别信息,或者可以概括获得位置信息的用户的地理位置(例如,城市、邮政编码或州级别),因此无法确定用户的具体位置。因此,用户可以控制如何收集关于他或她的信息并且由清单服务器、智能流传输服务器和内容提供者使用。

本说明书中描述的主题和操作的实施方式可以在数字电子电路中实现,或者在有形介质,固件或硬件上体现的计算机软件中实现(包括本说明书中公开的结构及其结构等同物),或者它们的一个或多个的组合中实现。本说明书中描述的主题的实施方式可以实现为在有形介质上体现的一个或多个计算机程序,即计算机程序指令的一个或多个模块,编码在一个或多个计算机存储介质上以供数据处理装置执行或控制数据处理装置的操作。可选地或另外,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电信号,光信号或电磁信号,该信号被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备,计算机可读存储基板,随机或串行存取存储器阵列或设备,或它们的一个或多个的组合,或包括在计算机可读存储设备,计算机可读存储基板,随机或串行存取存储器阵列或设备,或它们的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的组件或介质(例如,多个cd,磁盘或其他存储设备),或包括在一个或多个单独的组件或介质(例如,多个cd,磁盘或其他存储设备)中。因此,计算机存储介质可以是有形的。

本说明书中描述的操作可以实现为由数据处理装置对一个或多个计算机可读存储设备上存储的或从其他源接收的数据执行的操作。

术语“客户端”或“服务器”包括用于处理数据的所有类型的装置,设备和机器,诸如可编程处理器,计算机,片上系统,或多个,或前述的组合。装置可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件,协议栈,数据库管理系统,操作系统,跨平台运行时环境,虚拟机或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务,分布式计算和网格计算基础结构。

计算机程序(也称为程序,软件,软件应用,脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,声明性或过程语言,计算机程序可以是以任何形式部署,包括作为独立程序或作为模块,组件,子例程,对象或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块,库,子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。

本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,现场可编程门阵列(“fpga”)或专用集成电路(“asic”)。

适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或将数据传输到用于存储数据的一个或多个大容量存储设备,例如,磁盘,磁光盘或光盘。然而,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备中,例如,移动电话,个人数字助理(pda),移动音频或视频播放器,游戏控制台,全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器,介质和存储器设备,包括半导体存储器设备(例如,eprom,eeprom和闪存设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及cdrom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实现可以在具有显示设备(例如,crt(阴极射线管),lcd(液晶显示器),oled(有机发光二极管),tft(薄膜晶体管),等离子体,其他柔性配置,或用于向用户显示信息的任何其他监视器)和键盘,指示设备(例如,鼠标,轨迹球等)或用户可以向计算机提供输入的触摸屏,触摸板等的计算机上实现。其他类型的设备也可以用于提供与用户的交互;提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈,听觉反馈或触觉反馈;以及来自用户的输入可以以任何形式接收,包括声学,语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档;通过响应于从web浏览器接收的请求将网页发送到用户客户端设备上的web浏览器来与用户交互。

本说明书中描述的主题的实现可以在包括后端组件(例如,作为数据服务器)的计算系统中实现,或者在包括中间件组件(例如,应用服务器)的计算系统中实现,或者在包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可通过该图形用户界面或web浏览器与本说明书中描述的主题的实现进行交互)的计算系统中实现,或者在包括一个或多个这样的后端,中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过任何形式的数字数据通信或数字数据通信的介质互连,例如,通信网络。通信网络可以包括局域网(“lan”)和广域网(“wan”),互联网络(例如,互联网)和对等网络(例如,adhoc对等网络)。

本文公开的特征可以在智能电视模块(或连接的电视模块,混合电视模块等)上实现,其可以包括处理电路,被配置为将互联网连接与更传统的电视节目源集成(例如,通过电缆,卫星,无线或其他信号接收)。智能电视模块可以物理地结合到电视机中,或者可以包括单独的设备,诸如机顶盒,蓝光或其他数字媒体播放器,游戏控制台,酒店电视系统和其他伴随设备。智能电视模块可以被配置为允许观看者在网络上,在本地有线电视频道上,在卫星电视频道上搜索和查找视频,电影,照片和其他内容,或者搜索和查找存储在本地硬盘驱动器上的视频,电影,照片和其他内容。机顶盒(stb)或机顶盒单元(stu)可以包括信息家电设备,其可以包含调谐器并连接到电视机和外部信号源,将信号转换成内容,然后将内容显示在电视屏幕或其他显示设备上。智能电视模块可以被配置为提供主屏幕或顶级屏幕,其包括用于多个不同应用的图标,诸如网络浏览器和多个流传输媒体服务,连接的有线或卫星媒体源,其他网络“频道”等。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供关于可用节目的附加信息,允许用户控制智能电视模块等。在替换实现中,特征可以在膝上型计算机或其他个人计算机,智能手机,其他移动电话,手持计算机,平板电脑或其他计算设备上实现。

虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施方式的特征的描述。在单独实施方式的上下文中在本说明书中描述的特定特征也可以在单个实施方式中组合实现。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实现。此外,尽管上面的特征可以描述为以特定组合起作用并且甚至最初如此声明,但是在某些情况下可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或次序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在特定情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被打包到多种软件产品。

因此,已经描述了主题的特定实施方式。其他实现房子在所附权利要求的范围内。在某些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的处理不一定需要所示的特定顺序或次序来实现期望的结果。在某些实施方式中,可以使用多任务处理或并行处理。

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