CN110024411B - 用于流传输内容的网络流量分发 - Google Patents

用于流传输内容的网络流量分发 Download PDF

Info

Publication number
CN110024411B
CN110024411B CN201780074303.XA CN201780074303A CN110024411B CN 110024411 B CN110024411 B CN 110024411B CN 201780074303 A CN201780074303 A CN 201780074303A CN 110024411 B CN110024411 B CN 110024411B
Authority
CN
China
Prior art keywords
content
request
client device
container
streaming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780074303.XA
Other languages
English (en)
Other versions
CN110024411A (zh
Inventor
J.余
T.吴
C.丁
I.M.彭加鲁
J.吉尔斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202110275098.1A priority Critical patent/CN113099246B/zh
Publication of CN110024411A publication Critical patent/CN110024411A/zh
Application granted granted Critical
Publication of CN110024411B publication Critical patent/CN110024411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在此提供了用于在流传输期间分发网络流量的系统和方法。服务器可以向客户端设备提供第一内容容器,以用于插入分离流传输内容的第一部分与第二部分的内容中断。服务器可以在第一内容容器的回放期间从客户端设备接收对插入内容中断以用于在第一内容容器的回放之后进行回放的内容的请求。可以经由请求生成策略在从开始回放第一内容容器起的第一经过时间生成对内容的请求。服务器可以选择第二内容容器。服务器可以在回放第一内容容器期间向客户端设备提供第二内容容器,以用于在完成第一内容容器的回放之后进行回放。

Description

用于流传输内容的网络流量分发
背景技术
服务器可以经由计算机网络环境发送流传输内容,以便在众多客户端设备上进行呈现。处理和通信可以消耗网络的带宽以及服务器和客户端设备处的计算资源。另外,在流传输内容的传输期间,客户端设备和服务器可以交换数据分组。
发明内容
至少一个方面涉及一种在流传输期间分发网络流量的方法,包括:由具有一个或多个处理器的数据处理系统向多个客户端设备中的每个客户端设备提供相应第一内容项,相应第一内容项被布置为使客户端设备在内容流的第一部分与第二部分之间的内容中断期间播放相应第一内容;对于多个客户端设备中的每个客户端设备,由数据处理系统接收对相应第二内容项的相应请求,在相应第一内容项的回放期间接收每个相应请求;其中,在第一时间生成与多个客户端设备中的第一客户端设备相关联的第一相应请求,并且在与第一时间不同的第二时间生成与多个客户端设备中的第二客户端设备相关联的第二相应请求。在与相应第一内容项相关联的内容的回放期间,由数据处理系统向多个客户端设备中的每个提供第二相应内容项,每个第二相应内容项基于相应请求被提供并且被布置为使客户端设备在完成相应第一内容的回放之后播放相应第二内容。
可以在第三时间将相应第一内容项中的第一个提供给第三客户端设备,并且在第四时间将相应第一内容项中的第二个提供给第四客户端设备,其中,第三时间和第四时间不同。对相应第二内容项的每个第一相应请求可以包括与相应第二客户端设备相关联的相应内容选择参数,其中,每个第二相应内容项基于相应内容选择参数被提供。当相应第一内容正被播放时,由客户端设备可以生成与相应第二客户端设备相关联的内容选择参数。内容选择参数可以包括识别与内容相关联的信息资源的参考地址,第一客户端设备关于内容的历史交互数据或识别相应第一内容的参考中的至少一个。基于来自相应客户端设备的对相应第三内容项的至少一个另外的请求,还可以提供与相应客户端设备相关联的至少一个第二相应内容项,其中,至少一个另外的请求与在内容流的第一部分和第二部分之间的内容中断之前发生的内容中断相关联。至少一个另外的请求可以包括与相应客户端设备相关联的另外的内容选择参数。方法还可以包括由数据处理系统基于接收请求的时间确定在第一内容的回放期间生成从多个客户端设备的客户端设备接收的请求。提供第二相应内容项还可以包括:响应于确定在第一内容的回放期间生成从客户端设备接收的请求,选择第二内容项。
方法还可以包括:由数据处理系统维护包括多个条目的日志,日志的每个条目指示相应客户端设备是否将使用相应内容选择参数来选择对应内容项;由数据处理系统基于对应于相应客户端设备的日志的第一条目,确定客户端设备将使用在相应请求中包括的第一内容选择参数来接收第二内容项;以及其中,选择第二相应内容项还包括:响应于基于第一条目确定第一客户端设备将使用第一内容选择参数接收第二内容容器,基于第一相应请求的第一内容选择参数来选择第二内容项。接收第一相应请求还可以包括:接收对经由中心请求生成策略的第一请求生成策略所生成的内容的第一相应请求,中心请求生成策略指定用于为多个客户端设备中的每个客户端设备生成相应请求的相应时间;以及其中,接收第二相应请求还包括接收对经由中心请求生成策略的第二请求生成策略所生成的内容的第二相应请求。
方法还可以包括:在内容流的第二部分期间由数据处理系统从多个客户端设备中的客户端设备接收对插入分离内容流的第二部分与内容流的第三部分的第二内容中断的内容的另外的请求,经由第三请求生成策略在内容流的第二部分期间的第三时间生成第三请求;以及由数据处理系统向客户端设备提供第四内容项,以用于插入分离内容流的第二部分与内容流的第三部分的后续内容中断。
至少一个方面涉及一种在流传输期间分发网络流量的方法。具有一个或多个处理器的数据处理系统可以向多个客户端设备中的每个客户端设备提供对于客户端设备的第一相应内容容器,以用于插入分离流传输内容的第一部分与流传输内容的第二部分的内容中断。数据处理系统可以在第一内容容器的回放期间从多个客户端设备中的第一客户端设备接收对插入内容中断以在回放第一相应内容容器之后进行回放的内容的第一请求。可以经由第一请求生成策略在从开始回放第一内容容器起经过的第一时间生成对内容的第一请求。数据处理系统可以在第二内容容器的回放期间从多个客户端设备中的第二客户端设备接收对插入内容中断以在回放第二相应内容容器之后进行回放的内容第二请求。可以经由第二请求生成策略在从开始回放第二内容容器起经过的第二时间生成对内容的第二请求。数据处理系统可以响应于来自第一客户端设备的第一请求选择第二内容容器,并且响应于来自第二客户端设备的第二请求选择第三内容容器。数据处理系统可以在第一相应内容容器的回放期间将第二内容容器提供给第一客户端设备,并且将第三内容容器提供给第二客户端设备,以用于在完成第一相应内容容器的回放之后进行回放。
在一些实施方式中,提供给第一客户端设备的第一相应内容容器可以是第四内容容器,并且提供给第二客户端设备的第一相应内容容器可以是第五内容容器。在一些实施方式中,提供第一相应内容容器还可以包括:根据容器分发策略在流传输内容的第一部分期间的第三时间将向第一客户端设备提供第四内容容器,并且根据容器分发策略在流传输内容的第一部分期间的与第三时间不同的第四时间提供第五内容容器。
在一些实施方式中,提供第一相应内容容器还可以包括向多个客户端设备中的每个客户端设备提供第一相应内容容器。第一相应内容容器可以包括第一请求说明符,第一请求说明符指定客户端设备将发送具有内容选择参数的后续请求。在一些实施方式中,接收第一请求还可以包括从第一客户端设备接收第一请求,响应于第一相应内容容器包括的第一请求说明符经由第一请求生成策略在第一内容容器的回放期间的第一时间生成包括第一内容选择参数的第一请求。第一请求说明符指定第一客户端设备将发送具有第一内容选择参数的第一请求。
在一些实施方式中,选择第二内容容器还可以包括基于对插入先前的内容中断的内容的先前请求和流传输内容来选择第二内容容器。先前请求中的每个在对内容的第一请求之前从第一客户端设备接收,并且包括内容选择参数。在一些实施方式中,响应于来自第一客户端设备的第一请求选择第二内容容器还可以包括基于第一请求中包括的内容选择参数选择第二内容容器。内容选择参数可以在第一内容容器的回放期间的第一时间由第一客户端设备生成。内容选择参数可以包括识别显示流传输内容的信息资源的参考地址、第一客户端设备关于内容的历史交互数据或者识别提供给第一客户端设备的第一相应内容容器的容器参考中的至少一个。
在一些实施方式中,数据处理系统可以基于接收第一请求的时间,确定经由第一请求生成策略在第一内容容器的回放期间生成从第一客户端设备接收的第一请求。在一些实施方式中,选择第二内容容器还可以包括:响应于确定在第一内容容器的回放期间生成从第一客户端设备接收的第一请求,选择第二容器。
在一些实施方式中,数据处理系统可以维护包括多个条目的请求说明符日志。请求说明符日志的每个条目指示相应客户端设备是否将使用相应内容选择参数来选择对应的内容容器。在一些实施方式中,数据处理系统可以基于对应于第一客户端设备的请求说明符日志的第一条目,确定第一客户端设备将使用第一请求中包括的第一内容选择参数来接收第二内容容器。在一些实施方式中,选择第二内容容器还可以包括:响应于基于第一条目确定第一客户端设备将使用第一内容选择参数来接收第二内容容器,基于第一请求的第一内容选择参数来选择第二容器。
在一些实施方式中,接收第一请求还可以包括:接收对经由中心请求分发策略的第一请求生成策略生成的内容的第一请求。中心请求分发策略可以指定用于为多个客户端设备中的每个客户端设备生成相应请求的相应时间。在一些实施方式中,接收第二请求还可以包括:接收对经由中心请求分发策略的第二请求生成策略生成的内容的第二请求。
在一些实施方式中,数据处理系统可以在流传输内容的第二部分期间从多个客户端设备中的第一客户端设备接收对插入到分离流传输内容的第二部分与流传输内容的第三部分的第二内容中断的内容的第三请求,第三请求经由第三请求生成策略在流传输内容的第二部分期间的第三时间生成。在一些实施方式中,数据处理系统可以向第一客户端设备提供第四内容容器,以用于插入分离流传输内容的第二部分与流传输内容的第三部分的后续内容中断。
至少一个方面涉及一种用于在流传输期间分发网络流量的系统。系统可以包括在具有一个或多个处理器的数据处理系统上执行的响应管理器。响应管理器可以向多个客户端设备中的每个客户端设备提供对于客户端设备的第一相应内容容器,以用于插入分离流传输内容的第一部分与流传输内容的第二部分的内容中断。系统可以包括在数据处理系统上执行的请求处理器。请求处理器可以在第一内容容器的回放期间从多个客户端设备中的第一客户端设备接收对插入内容中断以在回放第一相应内容容器之后进行回放的内容的第一请求。可以经由第一请求生成策略在从开始回放第一内容容器起经过的第一时间生成对内容的第一请求。请求处理器可以在第二内容容器的回放期间从多个客户端设备中的第二客户端设备接收对插入内容中断以在回放第二相应内容容器之后进行回放的内容第二请求。可以经由第二请求生成策略从开始回放第二内容容器起经过的第二时间生成对内容的第二请求。系统可以包括内容选择器。内容选择器响应于来自第一客户端设备的第一请求选择第二内容容器,响应于来自第二客户端设备的第二请求选择第三内容容器。响应管理器可以在第一相应内容容器的回放期间将第二内容容器提供给第一客户端设备,并且将第三内容容器提供给第二客户端设备,以用于在完成第一相应内容容器的回放之后进行回放。
在一些实施方式中,提供给第一客户端设备的第一相应内容容器是第四内容容器,并且提供给第二客户端设备的第一相应内容容器是第五内容容器。在一些实施方式中,响应管理器可以根据容器分发策略在流传输内容的第一部分期间的第三时间向第一客户端设备提供第四内容容器。在一些实施方式中,响应管理器可以根据容器分发策略在流传输内容的第一部分期间的与第三时间不同的第四时间提供第五内容容器。
在一些实施方式中,响应管理器可以向多个客户端设备中的每个客户端设备提供第一相应内容容器。第一相应内容容器可以包括第一请求说明符,第一请求说明符指定客户端设备将发送具有内容选择参数的后续请求。在一些实施方式中,响应管理器可以向多个客户端设备中的每个客户端设备提供第一相应内容容器。第一相应内容容器可以包括第一请求说明符,第一请求说明符指定客户端设备将发送具有内容选择参数的后续请求。
在一些实施方式中,请求处理器可以从第一客户端设备接收第一请求。第一请求可以包括响应于第一相应内容容器包括的第一请求说明符经由第一请求生成策略在第一内容容器的回放期间的第一时间生成的第一内容选择参数。第一请求说明符指定第一客户端设备将发送具有第一内容选择参数的第一请求。
在一些实施方式中,内容选择器可以基于对插入先前的内容中断的内容的先前请求和流传输内容来选择第二内容容器。先前请求中的每个可以在对内容的第一请求之前从第一客户端设备接收,并且可以包括内容选择参数。
在一些实施方式中,内容选择器可以基于第一请求中包括的内容选择参数选择第二内容容器。内容选择参数可以在第一内容容器的回放期间的第一时间由第一客户端设备生成。内容选择参数可以包括识别显示流传输内容的信息资源的参考地址、第一客户端设备关于内容的历史交互数据或者识别提供给第一客户端设备的第一相应内容容器的容器参考中的至少一个。
在一些实施方式中,请求处理器可以基于接收第一请求的时间,确定经由第一请求生成策略在第一内容容器的回放期间生成从第一客户端设备接收的第一请求。在一些实施方式中,内容选择器可以响应于确定在第一内容容器的回放期间生成从第一客户端设备接收的第一请求,选择第二容器。
在一些实施方式中,响应处理器可以维护包括多个条目的请求说明符日志。请求说明符日志的每个条目指示相应客户端设备是否将使用相应内容选择参数来选择对应的内容容器。在一些实施方式中,基于对应于第一客户端设备的请求说明符日志的第一条目,确定第一客户端设备将使用第一请求中包括的第一内容选择参数来接收第二内容容器。在一些实施方式中,内容选择器可以响应于基于第一条目确定第一客户端设备将使用第一内容选择参数来接收第二内容容器,基于第一请求的第一内容选择参数来选择第二容器。
在一些实施方式中,请求处理器可以接收对经由中心请求分发策略的第一请求生成策略生成的内容的第一请求。中心请求分发策略可以指定用于为多个客户端设备中的每个客户端设备生成相应请求的相应时间。在一些实施方式中,请求处理器可以接收对经由中心请求分发策略的第二请求生成策略生成的内容的第二请求。
在一些实施方式中,请求处理器可以在流传输内容的第二部分期间从多个客户端设备的第一客户端设备接收对插入到分离流传输内容的第二部分与流传输内容的第三部分的第二内容中断的内容的第三请求。第三请求可以经由第三请求生成策略在流传输内容的第二部分期间第三时间生成。在一些实施方式中,内容选择器可以向第一客户端设备提供第四内容容器,以用于插入分离流传输内容的第二部分与流传输内容的第三部分的后续内容中断。
下面详细讨论这些和其他方面和实施方式。前述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供用于理解所要求保护的方面和实施方式的性质和特性的概述或框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且被并入和构成本说明书的一部分。
附图说明
附图不旨在按比例绘制。各个附图中相同的附图标记和名称指示相同的元件。为清楚起见,在每个附图中可能并非标记了每个组件。在附图中:
图1是描绘根据说明性实施方式的用于在流传输期间分发网络流量的计算机联网环境的框图;
图2是描绘根据说明性实施方式的在流传输期间分发网络流量的流序列的框图;
图3A至图3C各自是描绘根据说明性实施方式的在众多客户端设备之间进行流传输期间分发网络流量的流序列的框图;
图4A和图4B是描绘根据说明性实施方式的在流传输期间分发网络流量的方法的流程图;以及
图5是示出根据说明性实施方式的可以被用来实施本文描述和示出的系统和方法的元件的计算机系统的一般架构的框图。
具体实施方式
以下是与流传输期间分发网络流量的方法、装置和系统相关的各种概念和实施方式的更详细描述。以上介绍并在下面更详细讨论的各种概念可以以多种方式中的任何一种来实施,因为所描述的概念不限于任何特定的实施方式。
在用于将补充视听内容动态地插入流传输内容的当前方案中,被提供有流传输内容的每个客户端设备可以在内容中断到达时生成并且向外部服务器发送对内容的请求。然后,服务器可以使用该请求来选择为每个单独的客户端设备定制的一组内容容器(pod)(例如,可以是交互式或非交互式的音频、视频或视听内容项)。为了发送最新的信息以选择将要在内容中断处插入的相关内容容器,可以在内容中断之前立即对请求的生成和发送进行定时。
对于直播流传输内容,内容中断可以在众多客户端设备上同时发生。这样,来自众多客户端设备的所有内容请求可能同时地到达服务器。使用相关性信息选择要插入到流传输内容中的内容容器对于服务器来说可能是高度资源密集的。另外,请求同时地到达或近似同时地到达可能加剧服务器处的计算资源的消耗和网络中的可用带宽。
为了降低服务器处的资源消耗和通信网络处的带宽,而同时选择最相关的内容容器以插入到流式视频中,本系统和方法提供了一种混合方式。简而言之,第一,可以在直播流期间异步地选择内容容器以在内容中断中回放。第二,当在客户端设备处播放第一内容容器时,可以在任何时间采用最新的相关性信息同步地选择另一内容容器,并且可以将其插入与第一内容容器相同的内容中断。
在内容中断之前的任何时间,客户端设备可以发送对预取(pre-fetched)内容的请求。第一请求可以包括指示客户端设备将接收预取内容的说明符(specifier)。一旦接收到,服务器就可以向客户端设备提供具有内容容器的响应。该响应还可以包括以下说明符,该说明符指示客户端设备将在后续请求中发送对具有内容选择参数的补充内容的请求以插入到即将到来(upcoming)的内容中断中。一旦接收到,客户端设备就可以将内容容器缓存在本地缓存中。然后,在流传输内容中的内容中断开始时,客户端设备可以播放缓存的内容容器。
在播放预取内容容器期间的某个随机时间点,客户端设备可以基于来自先前响应的说明符来识别相关性信息以插入对补充内容的请求。可以设置随机时间点,使服务器不会一次从所有众多的客户端设备接收请求。对补充内容的后续请求还可以包括客户端设备基于相关性信息接收内容容器的说明符。在接收到第二请求时,服务器可以使用相关性信息选择另一内容容器,并且可以将包括选择的视频内容容器的响应发送到客户端设备。然后,客户端设备可以在预取的视频内容容器已经完成播放之后播放选择的视频内容容器。
通过交错安排(staggering)生成和发送对插入内容中断的补充内容的请求的时间,可以减少对于相同数量的客户端设备在任何给定时间在服务器处要处理的请求的数量。另外,可以释放网络带宽并且可以减轻计算资源的消耗。此外,还可以减少将选择的内容容器插入到内容中断中的延迟的可能性,同时仍然发送针对客户端设备定制的内容。
因此,主题可以解决与响应于全部在预定的(通常是短的)时间段内发生的来自多个设备的请求,而通过计算机网络向多个设备传递内容相关联的问题。另外,即使当多个设备中的每个全部在短时间段内(例如,在0到60秒内)请求内容时,主题可以允许将内容传递到多个设备,其基于多个设备和/或设备的用户中的每个的当前状态,而设备没有经历内容传递的延迟。
现在参照图1,图1是描绘用于在计算机网络环境中的流传输期间分发网络流量的环境的一种实施方式的框图。环境100包括至少一个数据处理系统110。虽然仅示出了一个数据处理系统110,但是在许多实施方式中,数据处理系统110可以是群(farm)、云(cloud)、集群或者多个数据处理系统或计算设备的其他分组。数据处理系统110可以包括至少一个处理器和存储器,有时称为处理电路,下面结合图5更详细地讨论它们中的每个。存储器存储处理器可执行指令,当由处理器执行时,处理器可执行指令使处理器执行本文描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等,或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除-可编程ROM(EPROM)、闪速存储器、光学介质或处理器可以从其读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
网络105可以包括诸如互联网、局域网、广域网、城域网或其他区域网络的计算机网络、内联网、卫星网络、诸如语音或数据移动电话通信网络的其他计算机网络以及它们的组合。系统100的数据处理系统110可以经由网络105与例如至少一个内容容器提供方115、至少一个流传输内容提供方120或至少一个客户端设备125进行通信。网络105可以是在内容容器提供方115,数据处理系统110,客户端设备125和一个或多个内容源(例如,web服务器、广告服务器等)之间中继信息的任何形式的计算机网络。例如,网络105可以包括互联网和/或其他类型的数据网络,诸如局域网(LAN)、广域网(WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络105还可以包括被配置为在网络105内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络105还可以包括任意数量的硬连线和/或无线连接。例如,客户端设备125可以在网络105中无线地(例如,经由WiFi、蜂窝、无线电等)与硬连线(例如,经由光纤电缆、CAT5电缆等)到其他计算设备的收发器通信。
内容容器提供方115、流传输内容提供方120和客户端设备125可以包括处理器和存储器或处理电路,如上所述并且如结合图5更详细地讨论。存储器存储机器指令,当由处理器执行时,机器指令使处理器执行本文描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等,或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除-可编程ROM(EPROM)、闪速存储器、光学介质或处理器可以从其读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
内容容器提供方115、流传输内容提供方120和客户端设备125还可以包括一个或多个用户接口设备。通常,用户接口设备是指通过生成感官信息(例如,显示器上的可视化、一个或多个声音等)向用户传达数据和/或将从用户接收的感官信息转换为电信号的任何电子设备(例如,键盘、鼠标、指点设备、触摸屏显示器、麦克风等)。根据各种实施方式,一个或多个用户接口设备可以在内容容器提供方115、流传输内容提供方120和客户端设备125的壳体内部(例如,内置显示器、麦克风等),或者在内容容器提供方115、流传输内容提供方120和客户端设备125的壳体外部(例如,连接到客户端设备125的监视器、连接到客户端设备125的扬声器等)。例如,内容容器提供方115、流传输内容提供方120和客户端设备125可以包括电子显示器,其可视地显示经由网络105从一个或多个内容源和/或从数据处理系统110接收的信息资源或多媒体内容。在一些实施方式中,内容放置(placement)管理器或第三方内容提供方可以经由内容容器提供方115与数据处理系统110通信。在一些实施方式中,内容放置管理器或第三方内容提供方可以经由在内容容器提供方115的用户接口设备上显示的用户界面(interface)与数据处理系统110通信。
内容容器提供方115可以包括由内容提供方实体操作的服务器或其他计算设备,以提供内容容器140A-N来提供在媒体播放器152或在客户端设备125上执行的另一应用上播放的流传输内容。在一些实施方式中,内容容器提供方115可以为客户端设备125的每个对应内容容器140A-N提供参考地址(有时称为指针)。内容容器提供方115每个可以包括台式计算机、膝上型计算机、平板计算机、可穿戴计算机、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端,数字视频记录器、用于电视的机顶盒、电视(例如,智能电视)、视频游戏控制台或被配置为经由网络105进行通信的任何其他计算设备。由内容容器提供方115提供的内容容器140A-N可以包括各种格式(例如,文本内容元素、图像文件、音频文件、视频文件、视听文件或任何其他多媒体格式)的第三方内容容器,以与由流传输内容提供方120提供的流传输内容一起显示或者插入由流传输内容提供方120提供的流传输内容。在一些实施方式中,内容容器140A-N可以是交互式的,并且可以包括一个或多个用户元件以触发各种功能(例如,取回目标页面(landing page)或在同一内容容器140A-N内显示其他内容)。与内容容器提供方115相关联的内容容器140A-N可以在由流传输内容提供方120提供的流传输内容的各个部分之间的内容中断中呈现。内容容器提供方115可以维护用于内容容器140A-N的数据库。每个内容容器140A-N可以由参考地址(例如,统一资源定位符(URL)或一些字母数字标识符)来识别。内容容器提供方115可以发送与对内容的请求中包括的参考地址(有时称为指针)相对应的内容容器140A-N。
流传输内容提供方120可以包括由流传输内容提供实体操作的服务器或其他计算设备,以提供将要在媒体播放器152或在客户端设备125上执行的另一应用上播放的流传输内容142。流传输内容提供方120每个可以包括台式计算机、膝上型计算机、平板计算机、可穿戴计算机、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字视频记录器、用于电视的机顶盒、电视(例如,智能电视)、视频游戏控制台或被配置为经由网络105进行通信的任何其他计算设备。流传输内容142可以包括具有多媒体内容的一个或多个数据分组。流传输内容提供方120可以经由网络105向客户端设备125顺序发送形成流传输内容142的一个或多个数据分组。用于流传输内容142的一个或多个数据分组的传输可以根据任何一种通信协议,诸如用户数据报协议(UDP)、传输控制协议(TCP)、实时流协议(RTSP)、实时传输协议(RTP)、实时传输控制协议(RTCP)和超文本传输协议(HTTP)等。在一些实施方式中,流传输内容提供方120可以通信地连接到直播流源(live stream source)144。直播流源144可以包括具有音频输入源(例如,麦克风或换能器)或视频输入源(例如,摄像机或相机等)的计算设备。直播流源144可以以一个或多个数据分组的形式将流传输内容142提供给流传输内容提供方120。当从直播流源144接收到数据分组时,流传输内容提供方120可以经由网络105向客户端设备125发送流传输内容142的一个或多个数据分组。流传输内容提供方120可以维护用于流传输内容142的数据库。流传输内容142可以由参考地址(例如,统一资源定位符(URL)或一些字母数字标识符))来识别。
客户端设备125可以包括用于经由网络105进行通信以显示数据(诸如来自流传输内容提供方120的流传输内容142和来自内容容器提供方115的内容容器140A-N等)的计算设备。客户端设备125每个可以包括台式计算机、膝上型计算机、平板计算机、可穿戴计算机、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字视频记录器、用于电视的机顶盒、电视(例如,智能电视)、视频游戏控制台或被配置为经由网络105进行通信的任何其他计算设备。客户端设备125可以是通信设备,端用户可以通过该通信设备提交对各种类型的内容的请求,诸如信息资源(例如,网页)和多媒体内容(例如,流传输内容142)。
数据处理系统110可以包括至少一个服务器。在一些实施方式中,数据处理系统110可以包括位于至少一个数据中心或服务器群中的多个服务器。在一些实施方式中,数据处理系统110可以包括内容放置系统。在一些实施方式中,数据处理系统110可以包括至少一个脚本提供器128、至少一个策略生成器130、至少一个请求处理器132、至少一个内容选择器134、至少一个响应处理器136。数据处理系统110还可以包括一个或多个内容存储库或数据库138。在一些实施方式中,内容容器提供方115可以是数据处理系统110的一部分。与内容容器提供方115相关联的实体可以和与数据处理系统110相关联的实体相同。在一些实施方式中,流传输内容提供方120可以是数据处理系统110的一部分。与流传输内容提供方120相关联的实体可以和与数据处理系统110相关联的实体相同。在一些实施方式中,数据处理系统110可以将流传输内容提供方142提供的流传输内容142与内容容器提供方115提供的内容容器140A-N组合在一起。流传输内容142可以在预先指定的内容中断处散布内容容器140A-N。数据处理系统110可以经由网络105将流传输内容142与内容容器140A-N的组合流传输到客户端设备125。
脚本提供器128、策略生成器130、请求处理器132、内容选择器134和响应处理器136每个可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、设备或被配置为经由网络105与数据库138以及与其他计算设备(诸如,内容容器提供方115、流传输内容提供方120和客户端设备125)进行通信的其他逻辑设备,诸如可编程逻辑阵列。脚本提供器128、策略生成器130、请求处理器132、内容选择器134和响应处理器136每个可以包括或执行至少一个计算机程序或至少一个脚本。脚本提供器128、策略生成器130、请求处理器132、内容选择器134和响应处理器136可以是单独的组件、单个组件或数据处理系统110的一部分。脚本提供器128、策略生成器130、请求处理器132、内容选择器134和响应处理器136可以包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器。
数据处理系统110还可以包括一个或多个内容存储库或数据库138。数据库138可以对于数据处理系统110是本地的。在一些实施方式中,数据库138可以对于数据处理系统110是远程的,但是可以经由网络105与数据处理系统110通信。数据库138可以包括由内容容器提供方115提供的内容容器140A-N或识别每个内容容器140A-N的参考地址。数据库138可以包括由流传输内容提供方142提供的流传输内容142或识别每个流传输内容142的参考地址。数据库138还可以包括请求分发策略和预定义的请求生成时间以将内容中断插入到每个流传输内容中142,以用于插入内容容器140A-N等。下面将提供数据库138的内容的附加细节。
脚本提供器128可以响应于从客户端设备125接收请求而将流处理器脚本150发送到客户端设备125。在一些实施方式中,请求可以对应于对流传输内容的请求。在客户端设备125(例如,web浏览器)上执行的应用可以生成并且向脚本提供器128发送对流传输内容的请求以进行显示。在一些实施方式中,该请求可以对应于对代码的请求。当请求对应于对代码请求时,流传输内容142可以已经在客户端设备125上运行的单独应用上提供。在任一情况下,请求可以包括识别在客户端设备125上正在播放或将被提供的流传输内容142的参考地址。脚本提供器128可以解析参考地址以识别流传输内容提供方120和流传输内容142。
通过流传输内容142的识别,脚本提供器128可以定义流传输内容142的一个或多个流传输内容部分156A-N。每个流传输内容部分156A-N可以对应于来自流传输内容提供方120的主流传输内容142的划分(partition)或者形成流传输内容142的一个或多个数据分组的子集。脚本提供器128还可以定义流传输内容142的一个或多个内容中断158A-N。一个或多个内容中断158A-N可以对应于插入内容容器140A-N的时间和用于在客户端设备125处回放内容容器140A-N的时间长度。一个或多个内容中断158A-N可以与流传输内容142的一个或多个流传输内容部分156A-N交织(interleave)。一个或多个内容中断158A-N可以在接收和播放流传输内容142的多个客户端设备125上同时进行。由于网络105中的延迟或每个客户端设备125处的计算资源的消耗,一个或多个内容中断158A-N可以在接收和播放流媒体内容142的多个客户端设备125上以基本相同(例如,66-99%相似)的时间发生。一个或多个内容中断158A-N可以在接收和播放流传输内容142的多个客户端设备125上具有相同的时间长度。由于网络105中的延迟或每个客户端设备125处的计算资源的消耗,一个或多个内容中断158A-N可以在接收和播放流传输内容142的多个客户端设备125上具有基本相同(例如,66-99%相似)的时间长度。在一些实施方式中,流传输内容部分156A-N和内容中断158A-N可以由流传输内容提供方120或脚本提供器128预先设置。在一些实施方式中,当流传输内容142被发送到客户端设备125时,流传输内容部分156A-N和内容中断158A-N可以由流传输内容提供方120或脚本提供器128动态地设置。当经由网络105发送流传输内容142时,流传输内容提供方120可以将内容中断指示符发送到脚本提供器128或发送到接收客户端设备125以插入内容中断158A-N。内容中断指示符可以指定将内容中断158A-N插入到流传输内容142中的时间。插入内容中断158A-N的时间可以是与从由在客户端设备125、流传输内容提供方120或数据处理系统110处维护的定时器测量的从流传输内容142或流传输内容部分156A-N之一的开始起的当前时间有关。
另外,脚本提供器128可以生成流处理器脚本150。流处理器脚本150可以包括请求生成器160、容器插入器162和请求生成策略164等。在一些实施方式中,流处理器脚本150可以包括媒体播放器152以播放来自流传输内容提供方120的流传输内容142。媒体播放器152可以包括识别将要提供给客户端设备125的流传输内容142的参考地址。在一些实施方式中,媒体播放器152可以与流处理器脚本150分离,并且可以与流处理器脚本150接口(interface)。在一些实施方式中,流处理器脚本150还可以包括流传输内容142中的一个或多个流传输内容部分156A-N和一个或多个中断158A-N的定义。在一些实施方式中,流处理器脚本150还可以包括请求说明符。请求说明符可以指定客户端设备125是否发送具有内容选择参数的、对内容的请求。可以将请求说明符初始地设置为指示客户端设备125发送不具有内容选择参数的、对内容的请求的第一值,然后将其设置为指示客户端设备125发送具有内容选择参数的、对内容的请求的第二值。在一些实施方式中,请求说明符可以在数据库138处维护。媒体播放器152、请求生成器160和容器插入器162每个可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、设备或被配置为经由网络105与其他计算设备(诸如数据处理系统110、内容容器提供方115和流传输内容提供方120)进行通信的其他逻辑设备,诸如可编程逻辑阵列。
为了包括在流处理器脚本150中,策略生成器130可以确定客户端设备125的请求生成策略164。客户端设备125的请求生成策略164可以是在数据库138处维护的中心请求分发策略的一部分。在一些实施方式中,请求生成策略164可以指定流处理器脚本150的请求生成器160将生成并且发送对内容的请求以将内容插入到内容中断158A-N中的多个预定义请求生成时间。可以在流传输内容142的流传输内容部分156A-N之一期间生成对插入到内容中断158A-N的内容的请求(有时称为对预取内容的请求)。可以在回放另一内容容器140A-N期间在内容中断158A-N之一期间生成对插入内容中断158A-N的内容的请求(有时称为实时请求)。策略生成器130可以基于流传输内容部分156A-N和内容中断158A-N的发生时间来确定预定义的请求生成时间。在一些实施方式中,策略生成器130的功能可以在客户端设备125接收到流处理器脚本150之后由客户端设备125执行。在接收到流处理器脚本150时,客户端设备125可以执行策略生成器130的功能,以为请求生成策略164生成多个预定义请求生成时间。
为了确定在流传输内容142的流传输内容部分156A-N之一期间生成对内容的请求的预定义请求生成时间,策略生成器130可以识别流传输内容142的对应流传输内容部分156A-N的开始时间和终止时间。开始时间可以对应于对应流传输内容部分156A-N将要开始播放的时间,并且先前的内容中断158A-N可以在其之前。终止时间可以对应于对应流传输内容部分156A-N要结束播放的时间,并且后续的内容中断158A-N可以在其之后。策略生成器130可以确定对应流传输内容部分156A-N的开始时间和终止时间之间的预定义请求生成时间。策略生成器130可以确定对特定客户端设备125的请求生成策略164的预定义请求生成时间,使至少一个客户端设备125生成对与至少一个其他客户端设备125不同的内容的请求。在一些实施方式中,策略生成器130可以生成对应流传输内容部分156A-N的开始时间和终止时间的随机概率分布(例如,均匀、卡方、正态或泊松等)。策略生成器130可以进一步基于接收流传输内容142的多个客户端设备125生成随机概率分布。使用随机概率分布,策略生成器130可以确定特定客户端设备125的预定义请求生成时间。在一些实施方式中,策略生成器130可以使用随机数生成器来为每个客户端设备125生成预定义的请求生成时间。可以使用对应流传输内容部分156A-N的预期的开始和终止时间来设置通过随机数生成器生成的预定义请求生成时间的范围。在一些实施方式中,策略生成器130可以使用对应流传输内容部分156A-N的预定义分配调度来确定请求生成策略164的预定义请求生成时间。预定义分配调度可以来自在数据库138处维护的中心请求分发策略。在一些实施方式中,策略生成器130可以将流传输内容142中的第一流传输内容部分156A-N的预定义请求生成时间设置为流传输内容部分156A-N的开始时间。
为了确定在内容中断158A-N期间将要生成内容的请求的预定义请求生成时间,策略生成器130可以识别对应内容中断158A-N的开始时间和终止时间。开始时间可以对应于对应内容中断158A-N将要开始播放的时间,并且先前的流传输内容部分156A-N可以在其之前。终止时间可以对应于对应内容中断158A-N将要结束播放的时间,并且后续的流传输内容部分156A-N可以在其之后。策略生成器130还可以确定将要插入到内容中断158A-N中的每个内容容器140A-N的预期持续时间。为了确定预期持续时间,策略生成器130可以识别要插入到内容中断158A-N中的内容容器140A-N的调度。调度可以由流传输内容提供方120预先确定,并且可以指示要插入到每个内容中断158A-N中的多个内容容器140A-N。基于调度,策略生成器130可以确定对应内容中断158A-N中的每个内容容器140A-N的预期持续时间。使用内容中断158A-N的开始时间和终止时间,策略生成器130可以确定要插入到内容中断158A-N中的每个内容容器140A-N的预期开始时间和估计终止时间。在一些实施方式中,策略生成器130可以使用用于对应内容中断158A-N的预定义分配调度来确定用于请求生成策略164的预定义请求生成时间。预定义分配调度可以来自在数据库138处维护的中心请求分发策略。
在识别出内容中断158A-N的开始时间和终止时间以及内容容器140A-N的预期开始时间和终止时间之后,脚本提供器可以确定每个内容中断158A-N的开始时间与终止时间之间的请求生成策略164的预定义请求生成时间。策略生成器130可以确定特定客户端设备125的请求生成策略164的预定义请求生成时间,使至少一个客户端设备125生成对与至少一个其他客户端设备125不同的内容的请求。在一些实施方式中,策略生成器130可以基于对应内容容器140A-N的预期开始时间和预期终止时间生成随机概率分布(例如,均匀、卡方、正态或泊松等)。策略生成器130可以进一步基于接收流传输内容142的多个客户端设备125来生成随机概率分布。在一些实施方式中,策略生成器130可以使用随机数生成器为每个客户端设备125生成预定义请求生成时间。可以使用对应内容容器140A-N的预期开始时间和终止时间来设置由随机数生成器生成的预定义请求生成时间的范围。使用随机概率分布,策略生成器130可以确定特定客户端设备125的预定义请求生成时间。
通过生成流处理器脚本150,脚本提供器128可以经由网络105将流处理器脚本150发送到客户端设备125。当接收到流处理器脚本150时,客户端设备125可以执行流处理器脚本150。在运行流处理器脚本150时,媒体播放器152可以初始化从流传输内容提供方120取回如通过参考地址识别的流传输内容142,并且在客户端设备125上播放流传输内容142。在一些实施方式中,媒体播放器152可以通过播放流传输内容142的第一流传输内容部分156A-N来初始化流传输内容142的取回。媒体播放器152可以连续地从流传输内容提供方120接收形成流传输内容142的一个或多个数据分组。如前所述,在一些实施方式中,客户端设备125可以在客户端设备125自身上执行策略生成器130的功能以生成请求生成策略164。
当从流传输内容提供方120连续接收流传输内容142时,请求生成器160可以根据请求生成策略164生成将内容插入内容中断158A-N的请求。请求生成器160可以识别流传输内容142的播放内的当前时间。当前时间可以指示流传输内容提供方120从流传输内容142的开始时间起经过的时间量。开始时间和从流传输内容的开始时间起经过的时间在接收流传输内容142的多个客户端设备125之间可以是相同的或基本相似的(例如,66-99%相似)。在一些实施方式中,请求生成器160可以维护定时器以从流传输内容142的开始保持跟踪流传输内容142的播放的当前时间。在一些实施方式中,请求生成器160可以从在形成流传输内容142的一个或多个数据分组中包括的时间戳来识别流传输内容142的当前时间。具有流传输内容142内当前时间的标识符,请求生成器160将当前时间与请求生成策略164指定的预定义请求生成时间之一进行比较。请求生成器160可以确定当前时间与请求生成策略164指定的预定义请求生成时间之一不匹配。如果当前时间与预定义请求生成时间之一不匹配,则请求生成器160可以继续监视当前时间并且将当前时间与请求生成策略164指定的预定义请求生成时间之一进行比较。
另一方面,请求生成器160可以确定当前时间与由请求生成策略164指定的预定义请求生成时间之一匹配。如果当前时间与预定义请求生成时间之一匹配,则请求生成器160可以生成对插入内容中断158A-N的内容的请求。对内容的请求可以包括与客户端设备125相对应的设备标识符、识别流传输内容142的参考地址、请求说明符、生成的时间戳、流传输内容部分156A-N中的剩余时间、在内容中断158A-N中的剩余时间,用于索引请求的序列号或内容选择参数等。如先前所讨论地,由请求生成策略164指定的预定义请求生成时间可以是在流传输内容部分156A-N之一或内容中断158A-N之一期间。这样,如果当前时间是在流传输内容部分156A-N之一期间,则对内容的请求的生成可以是在流传输内容142的播放期间。对内容本身的请求本身可以用于在媒体播放器152正在播放当前流内容部分156A-N之后将内容容器140A-N插入到内容中断158A-N中并且回放。相反,如果当前时间是在内容中断158A-N之一期间,则生成对内容的请求可以是在内容容器140A-N之一的回放期间。对内容本身的请求本身可以用于在媒体播放器152正在播放的当前内容容器140A-N的回放之后插入和回放内容容器140A-N。在生成对内容的请求之后,请求生成器160可以经由网络105将对内容的请求发送到数据处理系统110。
在生成对插入到内容中断158A-N的内容的请求时,请求生成器160可以识别请求说明符。最初可以从脚本提供器128接收请求说明符与流处理器脚本150。如前所述,请求说明符可以指定对内容的请求是否要与内容选择参数一起发送。请求生成器160可以确定请求说明符是否指定对内容的请求要与内容选择参数一起发送。如果请求说明符指定对内容的请求不与内容选择参数一起发送,则请求生成器160可以在没有任何内容选择参数的情况下发送对插入到内容中断158A-N的内容的请求。
相反,如果请求说明符指定对内容的请求要与内容选择参数一起发送,则请求生成器160可以确定内容选择参数。内容选择参数可以包括用于选择与客户端设备125相关的内容容器140A-N的各种信息。内容选择参数可以包括识别在其上显示流传输内容142的信息资源的参考地址。为了作为内容选择参数而包括,请求生成器160可以识别参考地址,该参考地址识别其上显示流传输内容142的信息资源。内容选择参数可以包括在内容中断158A-N之前的流传输内容部分156A-N的元数据,诸如一个或多个标记(tagged)的关键字。为了作为内容选择参数而包括,请求生成器160可以识别在内容中断158A-N之前的内容流传输内容部分156A-N的元数据。内容选择参数还可以包括媒体播放器152正在播放的内容容器140A-N的元数据,诸如一个或多个标记的关键字。为了作为内容选择参数而包括,请求生成器160可以识别媒体播放器152正在播放的内容容器140A-N的元数据。内容选择参数还可以包括媒体播放器152正在播放的内容容器140A-N的参考地址。为了作为内容选择参数而包括,请求生成器160可以识别媒体播放器152正在播放的内容容器140A-N的参考地址。内容选择参数可以包括客户端设备125关于内容(例如,信息资源、流内容142和其他内容容器140A-N)的历史交互数据。为了作为内容选择参数而包括,请求生成器160可以取回本地存储在客户端设备125上的历史交互数据。内容选择参数可以包括识别流传输内容142的参考地址。为了作为内容选择参数而包括,请求生成器160可以识别参考地址,该参考地址识别流传输内容142。内容选择参数还可以包括客户端设备125的位置标识符和帐户简档。
在生成对内容的请求之后,请求生成器160可以发送对插入到内容中断158A-N的内容的请求。请求处理器132可以从客户端设备125接收对插入内容中断158A-N的内容的请求。请求处理器132可以解析从客户端设备125接收的对内容的请求,以识别对应于客户端设备125的设备标识符、识别流传输内容142的参考地址、请求说明符、生成的时间戳、序列号、流传输内容部分156A-N中的剩余时间、内容中断158A-N中的剩余时间或者内容选择参数等。每次接收到对内容的请求时,请求处理器132可以存储对应于客户端设备125的设备标识符、识别流传输内容142的参考地址、请求说明符、生成的时间戳、序列号、流传输内容部分156A-N中的剩余时间、内容中断158A-N中的剩余时间或数据库138中的内容选择参数。应当注意,由于请求生成策略,可以在数据处理系统110处在不同时间从终端客户端设备125接收对内容的请求。
在解析从客户端设备125接收的对内容的请求时,请求处理器132可以识别对内容的请求的请求说明符。然后,请求处理器132可以确定请求说明符是否指示客户端设备125发送内容选择参数与请求。如果确定请求说明符指示客户端设备125不发送内容选择参数,则可以在没有内容选择参数的情况下执行选择提供给客户端设备125的内容容器140A-N,如下面详述。如果确定请求说明符指示客户端设备125发送内容选择参数,则请求处理器132可以解析对内容的请求以识别内容选择参数。内容选择参数可以用于选择内容容器140A-N以提供给客户端设备125。
请求处理器132还可以维护对于跨越客户端设备125接收的对内容的请求的请求说明符日志。请求说明符日志可以在数据库138维护。请求说明符日志可以是数据结构(例如,数组、矩阵、表格、链表、二叉树、哈希映射、堆等),并且可以包括一个或多个条目。请求说明符日志的每个条目可以包括对应于相应客户端设备125的设备标识符。每个条目还可以包括请求说明符,该请求说明符指示与设备标识符相关联的客户端设备125是否使用内容选择参数来选择内容容器140A-N。每个条目还可以包括来自客户端设备125的先前对内容的请求的一个或多个内容选择参数。在一些实施方式中,来自客户端设备125的对内容的请求可能缺少请求说明符。每次从客户端设备125接收到对内容的请求时,请求处理器132可以确定客户端设备125是否使用内容选择参数来接收内容容器140A-N。请求处理器132可以解析请求以识别设备标识符。
使用客户端设备125的设备标识符,请求处理器132可以访问在数据库138处维护的请求说明符日志以识别对应于客户端设备125的条目。从客户端设备125的条目,请求处理器132可以识别请求说明符和一个或多个先前的内容选择参数。如果请求说明符指示要在对内容容器140A-N的选择中使用内容选择参数,则请求处理器132可以解析对内容的请求以识别内容选择参数。请求处理器132可以将内容选择参数存储在条目中。另一方面,如果请求说明符指示内容选择参数不用于选择内容容器140A-N,则可以在不使用来自当前请求的内容选择参数的情况下继续选择内容容器140A-N。
在一些实施方式中,在经由网络105从客户端设备125接收到对内容的请求时,请求处理器132可以识别对内容的请求的接收时间。请求处理器132还可以确定流传输内容142的播放中的当前时间。当前时间可以对应于流传输内容部分156A-N之一或内容中断158A-N之一。基于所识别的对内容的请求的接收时间和流传输内容142的播放中的当前时间,请求处理器132可以确定在流传输内容部分156A-N之一或内容中断158A-N之一期间是否在客户端设备125处生成了对内容的请求。在一些实施方式中,请求处理器132可以基于网络105中的条件(例如,使用网络ping测试)确定在生成对内容的请求的时间与接收时间之间的估计延迟时间。请求处理器132可以从接收时间中减去估计延迟时间,以计算生成对内容的请求的时间。在一些实施方式中,请求处理器132可以解析对内容的请求以识别时间戳来确定生成请求的时间。如果确定在流传输内容部分156A-N之一期间生成了对内容的请求,则请求处理器132可以确定内容选择参数将用于选择内容容器140A-N。请求处理器132可以解析对内容的请求以识别内容选择参数。如果确定在流传输内容部分156A-N之一期间已经生成了对内容的请求,则可以在不使用来自当前请求的内容选择参数的情况下继续内容容器140A-N的选择。
基于从客户端设备125接收的对内容的请求,内容选择器134可以选择内容容器140A-N之一以提供给客户端设备125。根据对应于客户端设备125的设备标识符、识别流传输内容142的参考地址、请求说明符、生成的时间戳、序列号、流传输内容部分156A-N中的剩余时间、内容中断158A-N中的剩余时间或者从对内容的请求解析的内容选择参数,内容选择器134可以选择内容容器140A-N。内容选择器134可以针对客户端设备125从内容容器提供方115识别可用的多个内容容器140A-N以用于插入到内容中断158A-N。在一些实施方式中,内容选择器134可以识别具有与内容中断158A-N中的剩余时间相同或更短的长度的多个内容容器140A-N。在一些实施方式中,内容选择器134可以识别对应的多个内容容器140A-N的多个参考地址。内容选择器134还可以从内容容器提供方115识别每个内容容器140A-N的内容提供参数。内容容器140A-N的内容提供参数可以包括元数据(例如,一个或多个标记的关键字)、其他指定内容容器140A-N的参考地址、指定流传输内容142的参考地址、预先指定的内容历史交互、预先指定的位置标识符或预先指定的帐户简档等。使用内容提供参数和请求,内容选择器134可以在客户端设备125处的内容中断158A-N期间选择所识别的多个内容容器140A-N之一以用于插入和回放。
依赖于来自对内容的请求的请求说明符标识符或请求说明符日志,内容选择器134可以选择所识别的多个内容容器140A-N之一。如果请求说明符指示要在内容容器140A-N的选择中使用内容选择参数,则内容选择器134可以使用来自对内容的请求的内容选择参数来选择内容容器140A-N。内容选择器134可以基于来自当前请求的内容选择参数和内容容器140A-N的内容提供参数之间的匹配数量来确定选择优先级分数。例如,来自当前请求的客户端设备125的位置标识符与内容提供参数中的预先指定的位置标识符之一之间的匹配可能导致选择优先级分数的提高。然后,内容选择器134可以通过选择优先级分数对内容容器140A-N进行排名。为了在客户端设备125处的内容中断158A-N中插入和回放,内容选择器134可以选择与最高选择优先级分数相对应的内容容器140A-N。在一些实施方式中,内容选择器134可以识别选择的内容容器140A-N的参考地址。
另一方面,如果请求说明符指示在内容容器140A-N的选择中不使用内容选择参数,则内容选择器134可以使用来自存储在数据库138上的先前对内容的请求的内容选择参数。内容选择器134可以基于来自先前对内容的请求的内容选择参数与内容容器140A-N的内容提供参数之间的匹配数量来确定选择优先级分数。例如,来自先前请求的客户端设备125的位置标识符与内容提供参数中的预先指定的位置标识符之一之间的匹配可能导致选择优先级分数的提高。然后,内容选择器134可以通过选择优先级分数对内容容器140A-N进行排名。为了在客户端设备125处的内容中断158A-N中插入和回放,内容选择器134可以选择与最高选择优先级份数相对应的内容容器140A-N。在一些实施方式中,内容选择器134可以识别选择的内容容器140A-N的参考地址。
通过选择内容容器140A-N,响应处理器136可以向客户端设备125发送响应。响应于该选择,响应处理器136可以生成对客户端设备125的响应。响应可以包括选择的内容容器140A-N。在一些实施方式中,响应可以包括选择的内容容器140A-N的参考地址。响应可以包括请求说明符。响应处理器136可以基于来自先前的对内容的请求中的请求说明符来确定请求的新请求说明符。如果先前的对内容的请求中的请求说明符指示要使用内容选择参数,则响应处理器136可以将新的请求说明符设置为指示内容选择参数不用于选择下一内容容器140A-N。如果先前的对内容的请求中的请求说明符指示不使用内容选择参数,则响应处理程序136可以将新的请求说明符设置为指示内容选择参数将用于选择下一内容容器140A-N。
在一些实施方式中,响应处理器136可以识别从接收到先前的内容选择参数起经过的时间。响应处理器136可以将经过的时间与预定时间阈值(例如,15秒至30分钟)进行比较。如果经过的时间大于预定时间阈值,则响应处理器136可以将新的请求说明符设置为指示内容选择参数将用于选择下一内容容器140A-N。相反,如果经过的时间小于预定时间阈值,则响应处理器136可以将新的请求说明符设置为指示内容选择参数不用于选择下一内容容器140A-N。在生成响应之后,响应处理器136可以经由网络105将响应发送到客户端设备125,以在内容中断158A-N期间回放内容容器140A-N。
在一些实施方式中,响应处理器136可以根据容器分发策略将响应发送到客户端设备125。可以在数据库138处维护容器分发策略。容器分发策略可以指定响应处理器136将响应发送到特定客户端设备125的多个预定义容器分发时间,并且容器分发策略可以以与请求生成策略164类似的方式确定。预定义的容器分发时间可以基于流传输内容部分156A-N和内容中断158A-N出现的时间。响应处理器136可以识别流传输内容142期间的当前时间。响应处理器136可以将当前时间与容器分发策略的预定义的容器分发时间进行比较。如果当前时间与特定客户端设备125的预定义的容器分发时间之一匹配,则响应处理器136可以将响应发送到客户端设备125。以这种方式,可以进一步减少由于网络105中从数据处理系统110到客户端设备125的响应而消耗的带宽量。
在从响应处理器136接收到响应时,在客户端设备125上运行的容器插入器162可以将内容容器140A-N插入到内容中断158A-N中。在一些实施方式中,容器插入器162可以解析响应以识别对应于选择的内容容器140A-N的参考地址。采用所识别的参考地址,容器插入器162可以从内容容器提供方115取回内容容器140A-N。响应于接收到响应,容器插入器162可以存储内容容器140A-N。
当接收到响应时,媒体播放器152可以在内容中断158A-N之一期间播放流内容部分156A-N之一或另一内容容器140A-N。容器插入器162可以监视媒体播放器152以识别正在播放流传输内容部分156A-N之一还是另一内容容器140A-N。如果流传输内容部分156A-N之一被识别为正在播放,则内容插入器162可以等待直到检测到当前播放的流传输内容部分156A-N之后的内容中断158A-N的开始以插入内容容器140A-N。一旦检测到下一内容中断158A-N的开始,则内容插入器162可以从先前的流传输内容部分156A-N之后的响应调用媒体播放器152回放内容容器140A-N。如果另一内容容器140A-N被识别为在内容中断158A-N中播放,则内容插入器162可以等待直到检测到当前播放的内容容器140A-N的终止,以从响应插入内容容器140A-N。一旦检测到当前播放的内容容器140A-N的终止,内容插入器162就可以从先前的内容容器140A-N之后的响应调用媒体播放器152回放内容容器140A-N。
现在参照图2,描绘了在流传输期间分发网络流量的流序列200。在图1的上下文中,流序列200可以对应于以时间序列表示的客户端设备125处由媒体播放器152播放的流传输内容142。流序列200可以包括第一流传输内容部分156A,接着是内容中断158A,然后是第二流传输内容部分156B。根据请求生成策略164的预定义请求生成时间,在客户端设备125上运行的请求生成器160可以生成并且发送对内容的请求。
在第一部分期间的某个时间,请求生成器160可以生成对内容的第一请求205A并且将其发送到数据处理系统110。随后,容器插入器162可以接收具有第一内容容器140A的响应,并且可以将第一内容容器140A插入内容中断158A,用于在第一流传输内容部分156A结束之后回放。在播放流传输内容142的第一流传输内容部分156A之后,然后媒体播放器152可以开始第一内容容器140A的回放。
当媒体播放器152正在播放第一内容容器140A时,请求生成器160可以识别流传输内容142中的当前时间与由请求生成策略164指定的预定义请求生成时间之一是否匹配。请求生成策略164可以指定第一流传输内容部分156A结束之后的第一延迟210A以生成并且发送另一请求。在第一延迟210A,请求生成器160可以生成对内容的第二请求205B并且将其发送到数据处理系统110。再次,容器插入器162可以接收具有第二内容容器140B的响应,并且可以将第二内容容器140B插入到内容中断158A,以用于在第一内容容器140A结束之后回放。
在内容中断158A结束之后并且在第二流传输内容部分156B期间,请求生成器160可以继续识别流传输内容142中的当前时间与请求生成策略164指定的预定义请求生成时间之一是否匹配。请求生成策略164可以在内容中断158A结束之后指定第二延迟210B以生成并且发送另一请求。在第二延迟210B,请求生成器160可以生成对内容的第三请求205C并且将其发送到数据处理系统110发送。再次,内容插入器162可以接收具有第三内容容器140C的响应,并且可以将第二内容容器140插入到下一内容中断158B,以用于在第二流传输内容部分156B结束之后回放。可以在连续的流传输内容部分156C-N和内容中断158B-N上重复该处理。
现在参照图3A,描绘了众多客户端设备之间在流传输期间分发网络流量的流序列300A。在图1的上下文中,流序列300A可以对应于以时间序列表示的在各种客户端设备125A-C处由媒体播放器152播放的流传输内容142。请求生成策略164的预定义请求生成时间可以由策略生成器130确定,使由每个客户端设备125A-N在不同时间生成请求,并且因此在数据处理系统110处在不同时间接收请求。请求生成策略164可以指定第一客户端设备125A在某个预定义请求生成时间延迟之后生成第一请求205A,在第一流传输内容部分156A结束之后的第一延迟210A之后生成第二请求205B,以及在内容中断158A结束之后的第二延迟210B之后生成第二请求205C。请求生成策略164可以指定第二客户端设备125B在某个预定义请求生成时间延迟之后生成第一请求205A’,在第一流传输内容部分156A结束之后的第一延迟210A’之后生成第二请求205B’,以及在内容中断158A结束之后的第二延迟210B’之后的第二请求205C’。请求生成策略164可以指定第三客户端设备125C在某个预定义请求生成时间延迟之后生成第一请求205A”,在第一流传输内容部分156A结束之后的第一延迟210A”之后生成第二请求205B”,以及在内容中断158A结束之后的第二延迟210B”之后生成第二请求205C”。以这种方式,数据处理系统110可以接收分散在第一时间窗口305A上的第一批请求205A、205A’和205A”。数据处理系统110可以接收分散在第二时间窗口305B上的第二批请求205B、205B’和205B”。数据处理系统110可以接收分散在第三时间窗口305C上的第三批请求205C、205C’和205C”。当在时间窗口305A-C上分散地接收对每个内容容器140A-C的请求时,相对于已经单次地接收到对每个内容容器140A-N的所有请求,可以减少在单个时间点在数据处理系统110处的计算资源的消耗。
现在参照图3B,示出了众多客户端设备之间在流传输期间分发网络流量的流序列300B。在图1的上下文中,流序列300B可以是以时间序列表示的客户端设备125D处由媒体播放器152流传输和播放的流序列。在流序列300B中,尽管内容中断158A的长度可以与图3A中所描绘的先前示例相同,但是第一内容容器140A的长度可以不同于第二内容容器140B的长度。请求生成策略164的预定义请求生成时间可以适用于提供给客户端设备125D的内容容器140A和140B的长度可以不同的情况。
现在参照图3C,示出了众多客户端设备之间在流传输期间分发网络流量的流序列300C。在图1的上下文中,流序列300C可以是以时间序列表示的客户端设备125E处由媒体播放器152流传输和播放的流序列。在流序列300C中,尽管内容中断158A的长度可以与先前示例相同,内容中断158A中的内容容器140A-C的数量不同。请求生成策略164的预定义请求生成时间可以适用于对一个客户端设备125E内容中断158A中的内容容器140A-C的数量可以与如图3A和图3B中所描绘的其他客户端设备125A-D不同的情况。由于可能存在一个附加内容容器140C,因此请求生成器160可以在另一预定义请求生成时间延迟210D之后生成并且发送对内容的另一请求205D。
现在参照图4A和图4B,描绘了在流传输期间分发网络流量的方法400的流程图。本文关于方法400描述的功能可以由如图1所示的系统100(例如,数据处理系统110、内容容器提供方115、流传输内容提供方120和客户端设备125)或由图5所示的计算设备或者其任何组合执行或以其他方式运行。
更详细地,在步骤402,客户端设备可以播放流传输内容。在步骤404,客户端设备可以识别流传输内容中的当前时间。在步骤406,客户端设备可以确定当前时间与由请求生成策略定义的延迟是否匹配。如果当前时间不匹配,则客户端设备可以重复步骤404的功能。如果当前时间匹配,则在步骤408,客户端设备可以识别存储的请求说明符。在步骤410,客户端设备可以确定请求说明符是否指示包含内容选择参数。如果请求说明符指示包含,则在步骤412,客户端设备可以识别内容选择参数。在任一情况下,在步骤414,客户端设备可以生成对内容的请求。对内容的请求可以包括在步骤412中识别的内容选择参数。在步骤416,客户端设备可以将对内容的请求发送到数据处理系统。
在步骤418,数据处理系统可以接收对内容的请求。在步骤420,数据处理系统可以识别对内容的请求中的请求说明符。在步骤422,数据处理系统可以确定请求说明符是否指示包含内容选择参数。如果请求说明符指示包含内容选择参数,则在步骤424,数据处理系统可以从对内容的请求中识别内容选择参数。在步骤426,数据处理系统可以将后续请求说明符设置为排除内容选择参数。如果请求说明符未指示包含内容选择参数,则在步骤428,数据处理系统可以将后续请求设置为包括内容选择参数。在步骤430,数据处理系统可以选择内容容器。在步骤432,数据处理系统可以生成具有请求说明符和选择的内容容器的响应。在步骤434,数据处理系统可以将具有请求说明符和选择的内容容器的响应发送到客户端设备。
在步骤436,客户端设备可以从数据处理系统接收具有请求说明符和选择的内容容器的响应。在步骤438,客户端设备可以确定当前是否正在播放内容块。如果当前没有正在播放内容块,则客户端设备可以重复步骤438的功能。如果当前正在播放内容块,则在步骤440,客户端设备可以确定当前是否正在播放另一内容容器。如果正在播放另一内容容器,则客户端设备可以重复步骤440的功能。如果没有播放另一内容容器,则在步骤442,客户端设备可以播放来自响应的内容容器。在步骤444,客户端设备可以确定内容容器是否是内容中断中的最后一个。如果当前播放的内容容器是内容中断中的最后一个内容容器,则客户端设备可以重复步骤402的功能并且从步骤402开始重复方法400。如果当前播放的内容容器不是内容中断中的最后一个内容容器,则客户端设备可以重复步骤404的功能并且从步骤404开始重复方法400。
图5示出根据一些实施方式的可以被用于实施本文所讨论的任何计算机系统的说明性计算机系统500的一般架构(包括数据处理系统110及其组件、内容容器提供方115及其组件、流传输内容提供方120及其组件、直播流源144和客户端设备125及其组件)。计算机系统500可以用于经由网络105提供信息以用于供显示。图5的计算机系统500包括通信地耦合到存储器525的一个或多个处理器520、一个或多个通信接口505以及一个或多个输出设备510(例如,一个或多个显示单元)和一个或多个输入设备515。处理器520可以包括在数据处理系统110或数据处理系统110的其他组件中。处理器520可以包括在内容容器提供方115中。处理器520可以包括在流传输内容提供方120中。处理器520可以包括在客户端设备125或客户端设备125的其他组件中。
在图5的计算机系统500中,存储器525可以包括任何计算机可读存储介质,并且可以存储:计算机指令,诸如处理器可执行指令,用于针对各个系统实现本文描述的各种功能;以及与其相关的、由此生成的或通过通信接口或输入设备(如果存在)接收的任何数据。再次参照图1的系统100,数据处理系统110可以包括存储器525,以存储与一个或多个内容容器的可用性有关的信息等。存储器525可以包括数据库138。图5中所示的处理器520可以用于执行存储在存储器525中的指令,并且在这样做时,也可以从存储器读取或写入根据指令的执行处理的和或生成的各种信息。
图5中所示的计算机系统500的处理器520还可以通信地耦合到或用于控制通信接口505以根据指令的执行来发送或接收各种信息。例如,通信接口505可以耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统500向其他设备(例如,其他计算机系统)发送信息或从其接收信息。尽管未在图1或图5的系统中明确示出,一个或多个通信接口促进系统500的组件之间的信息流。在一些实施方式中,可以配置(例如,经由各种硬件组件或软件组件)通信接口以提供网站作为到计算机系统500的至少一些方面的访问门户。通信接口505的示例包括用户界面(例如,网页),用户可以通过该用户界面与数据处理系统110通信。
可以提供图5中所示的计算机系统500的输出设备510以例如允许与执行指令相结合地查看或以其他方式感知各种信息。例如,可以提供输入设备515以允许用户在执行指令期间以各种方式中的任何一种与处理器进行手动调整、进行选择、输入数据或进行交互。本文进一步提供了与可用于本文讨论的各种系统的通用计算机系统架构相关的附加信息。
本说明书中描述的主题和操作的实施方式可以实施在数字电子电路中,或者实施为在有形介质上体现的计算机软件、固件或硬件,包括本说明书中公开的结构及其结构等同物,或者其中一个或多个组合。本说明书中描述的主题的实施方式可以实施为编码在计算机存储介质上的一个或多个计算机程序(即,计算机程序指令的一个或多个模块),用于由数据处理装置执行或控制数据处理装置的操作。程序指令可以编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器设备以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或者它们中的一个或多个的组合;或可以被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储设备)或包括在一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储设备)中。
本文公开的特征可以实施在智能电视模块(或联网的(connected)电视模块、混合电视模块等)上,其可以包括处理模块,该处理模块被配置为将互联网连接与(例如,经由电缆、卫星、无线或其他信号接收的)更传统的电视节目源集成。智能电视模块可以物理地结合到电视机中,或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统或其他伴随设备。智能电视模块可以被配置为允许观看者在网络上、在本地有线电视频道上、在卫星电视频道上搜索和查找视频、电影、照片和其他内容,或者搜索和查找存储在本地硬驱上的视频、电影、照片和其他内容。机顶盒(STB)或机顶盒单元(STU)可以包括信息家电设备,该信息家电设备可以包含调谐器并且连接到电视和外部信号源,将信号转换成然后将内容显示在电视屏幕或其他显示设备上的内容。智能电视模块可以被配置为提供主屏幕或顶层屏幕,其包括用于多个不同应用的图标,诸如网络浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他网络“频道”等。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供关于可用节目的附加信息,允许用户控制智能电视模块等。在一些实施方式中,特征可以实施在膝上型计算机或其他个人计算机、智能电话、其他移动电话、手持计算机、平板计算机或其他计算设备中。在一些实施方式中,本文公开的特征可以实施在可穿戴设备或组件(例如,智能手表)上,该可穿戴设备或组件可以包括被配置为集成(例如,与另一计算设备或网络105)互联网连接的处理模块。
本说明书中描述的操作可以实施为由数据处理装置对存储在一个或多个计算机可读存储设备上的数据或从其他源接收的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或多个芯片或者前述的组合。装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。脚本提供器128、策略生成器130、请求处理器132、内容选择器134和响应处理器136可以包括或共享一个或多个数据处理装置、计算设备或处理器。
计算机程序(也称为程序、软件,软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言;并且可以以任何形式部署,包括作为独立程序或作为适用于计算环境的模块、组件、子例程、对象或其他单元。计算机程序可以但不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中或存储在多个协作的文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流也可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个大容量存储设备或者可操作地耦合以从一个或多个大容量存储设备接收数据或相一个或多个大容量存储设备传输数据或者两者,该一个或多个大容量存储设备用于存储数据,例如,磁盘、磁光盘或光盘。然而,计算机不必须具有这样的设备。此外,计算机可以嵌入在另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备(例如,EPROM,EEPROM和闪速存储器设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)、等离子或LCD(液晶显示器)监视器)以及键盘和指点设备(例如,鼠标或轨迹球,用户可以通过该设备向计算机提供输入)的计算机上实现。其他类型的设备也可用于提供与用户的交互。例如,提供给用户的反馈可以包括任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互,例如,响应于从web浏览器接收的请求,通过将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施方式可以实施在包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或浏览器与本说明书中描述的主题的实施方式进行交互),或者包括一个或多个这样的后端、中间件或前端的任何组合的计算系统中。系统的组件可以通过任何形式或介质的数字数据通信互连,例如,通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),互联网络(例如,互联网)和对等网络(例如,ad hoc对等网络)。
诸如系统500或系统100的计算系统可以包括客户端和服务器。例如,数据处理系统110可以包括一个或多个数据中心或服务器群中的一个或多个服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体实施方式细节,但这些不应被解释为对任何发明或可能要求保护的范围的限制,而是作为对本文所述系统和方法的具体实施方式的特定特征的描述。在单独实施方式的上下文中在本说明书中描述的特定特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实施。此外,虽然上面的特征可以描述为以特定组合起作用并且甚至最初如此声明,但是在某些情况下可以从组合中去除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定次序或按顺序次序执行这些操作或者执行所有示出的操作,来实现期望的结果。在一些情况下,权利要求中记载的动作可以以不同的次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定次序或顺序次序来实现期望的结果。
在特定情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被打包到多种软件产品。脚本提供器128、策略生成器130、请求处理器132、内容选择器134和响应处理器136可以是数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或更多服务器或者搜索引擎的一部分。
现在已经描述了一些说明性的实施方式和实现方式,明显的是前述是说明性的而非限制性的,已经通过示例的方式呈现。特别地,尽管本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是那些动作和那些元件可以以其他方式组合以实现相同的目的。仅与一个实施方式相关地讨论的动作、原件和特征不旨在从其他实施方式或实现方式中的类似角色中排除。
在此使用的措辞和术语是出于描述的目的,不应该被认为是限制性的。在本文中使用“包括”、“包含”、“具有”、“含有”、“涉及”、“特征是”、“特征在于”及其变形,意味着包括其后列出的项目、其等同物和附加项目,以及仅由其后列出的项目组成的替代实施方式。在一个实施方式中,本文中描述的系统和方法包括所描述的元件、动作或组件的一个、多于一个的每个组合或所有。
以单数形对在本文中提及的系统和方法的实施方式或元件或动作的任何引用也可以包含包括多个这些元件的实施方式,并且本文中的任何实施方式或元件或动作的任何复数引用也可以包含仅包括单个元件的实施方式。单数或复数形式的引用并不旨在将当前公开的系统或方法,它们的组件,动作或元件限制为单个或多个配置。对基于任何信息、动作或元件的任何动作或元件的引用可以包括其中动作或元件至少部分地基于任何信息、动作或元件的实施方式。
本文公开的任何实施方式可以与任何其他实施方式组合,并且对“实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是相互排斥的并且意在指示结合实施方式描述的特定特征、结构或特性可以包括在至少一个实施方式中。本文使用的这些术语不一定都是指同一实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式包含地或排他地与任何其他实施方式组合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示所描述的术语中的单个、多于一个和全部的任何术语。
在附图中、详细说明或任何权利要求中的技术特征后面附有附图标记的情况下,包括附图标记的唯一目的是增加附图、详细描述和权利要求的可理解性。因此,附图标记和它们的缺失都不会对任何权利要求要素的范围产生任何限制作用。
在不脱离本文描述的系统和方法的特征的情况下,本文描述的系统和方法可以以其他特定形式体现。尽管在此提供的示例涉及在流传输期间分发网络流量并且向其部署对策,但是本文描述的系统和方法可以包括应用于其他环境。前述实现方式是说明性的而非限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述来指示,并且落入权利要求的等同物的含义和范围内的改变包含在其中。

Claims (30)

1.一种在流传输期间分发网络流量的方法,包括:
由具有一个或多个处理器的数据处理系统向多个客户端设备中的每个客户端设备提供相应第一内容项,所述相应第一内容项被布置为使客户端设备在内容流的第一部分与第二部分之间的内容中断期间播放相应第一内容,其中,在第三时间将相应第一内容项中的第一个提供给第三客户端设备,并且在第四时间将相应第一内容项中的第二个提供给第四客户端设备,其中,第三时间与第四时间不同;
对于多个客户端设备中的每个客户端设备,由数据处理系统接收对第二相应内容项的相应请求,在相应第一内容项的回放期间接收每个相应请求;
其中,在第一时间生成与多个客户端设备中的第一客户端设备相关联的第一相应请求,并且在与第一时间不同的第二时间生成与多个客户端设备中的第二客户端设备相关联的第二相应请求;
在与相应第一内容项相关联的内容的回放期间,由数据处理系统向多个客户端设备中的每个提供第二相应内容项,每个第二相应内容项基于相应请求被提供并且被布置为使客户端设备在完成相应第一内容的回放之后播放相应第二内容。
2.根据权利要求1所述的方法,其中,对第二相应内容项的每个第一相应请求包括与相应第二客户端设备相关联的相应内容选择参数,其中,每个第二相应内容项基于相应内容选择参数被提供。
3.根据权利要求2所述的方法,其中,当相应第一内容正被播放时,由客户端设备生成与相应第二客户端设备相关联的内容选择参数。
4.根据权利要求2或3所述的方法,其中,内容选择参数包括识别与内容相关联的信息资源的参考地址、第一客户端设备关于内容的历史交互数据或者识别相应第一内容的参考中的至少一个。
5.根据权利要求1所述的方法,其中,基于来自相应客户端设备的对相应第三内容项的至少一个另外的请求,还提供与相应客户端设备相关联的至少一个第二相应内容项,其中,所述至少一个另外的请求与在内容流的第一部分与第二部分之间的内容中断之前发生的内容中断相关联。
6.根据权利要求5所述的方法,其中,所述至少一个另外的请求包括与相应客户端设备相关联的另外的内容选择参数。
7.根据权利要求1所述的方法,还包括:
由数据处理系统基于接收请求的时间确定在第一内容的回放期间生成从多个客户端设备中的客户端设备接收的请求;以及
其中,提供第二相应内容项还包括:响应于确定在第一内容的回放期间生成从客户端设备接收的请求,选择第二内容项。
8.根据权利要求1所述的方法,还包括:
由数据处理系统维护包括多个条目的日志,日志的每个条目指示相应客户端设备是否将使用相应内容选择参数来选择对应内容项;
由数据处理系统基于对应于相应客户端设备的日志的第一条目,确定客户端设备将使用在相应请求中包括的第一内容选择参数来接收第二内容项;以及
其中,选择第二相应内容项还包括:响应于基于第一条目确定第一客户端设备将使用第一内容选择参数接收第二内容项,基于第一相应请求的第一内容选择参数来选择第二内容项。
9.根据权利要求1所述的方法,其中,接收第一相应请求还包括:接收经由中心请求生成策略的第一请求生成策略所生成的对内容的第一相应请求,中心请求生成策略指定用于为多个客户端设备中的每个客户端设备生成相应请求的相应时间;以及
其中,接收第二相应请求还包括接收经由中心请求生成策略的第二请求生成策略所生成的对内容的第二相应请求。
10.根据权利要求1所述的方法,还包括:
在内容流的第二部分期间由数据处理系统从多个客户端设备中的客户端设备接收对插入分离内容流的第二部分与内容流的第三部分的第二内容中断的内容的另外的请求,经由第三请求生成策略在内容流的第二部分期间的第三时间生成第三请求;以及
由数据处理系统向客户端设备提供第四内容项,以用于插入分离内容流的第二部分与内容流的第三部分的后续内容中断。
11.一种承载包括计算机可读指令的计算机程序的计算机可读介质,所述计算机可读指令被配置为使计算机执行根据权利要求1至10中任何一项所述的方法。
12.一种用于在流传输期间分发网络流量的计算机装置,包括:
存储器,存储处理器可读指令;以及
一个或多个处理器,被布置为读取和执行在存储器中所存储的指令;
其中,处理器可读指令包括被布置为控制计算机装置执行根据权利要求1至10中任何一项所述的方法的指令。
13.一种在流传输期间分发网络流量的方法,包括:
由具有一个或多个处理器的数据处理系统向多个客户端设备中的每个客户端设备提供对于客户端设备的第一相应内容容器,以用于插入分离流传输内容的第一部分与流传输内容的第二部分的内容中断;
由数据处理系统在第一内容容器的回放期间从多个客户端设备中的第一客户端设备接收对插入内容中断以在回放第一相应内容容器之后进行回放的内容的第一请求,经由第一请求生成策略在从开始回放第一内容容器起经过的第一时间生成对内容的第一请求;
由数据处理系统在第二内容容器的回放期间从多个客户端设备中的第二客户端设备接收对插入内容中断以在回放第二相应内容容器之后进行回放的内容的第二请求,经由第二请求生成策略在从开始回放第二内容容器起经过的第二时间生成对内容的第二请求,第二时间与第一时间不同;
由数据处理系统响应于来自第一客户端设备的第一请求选择第二内容容器,并且响应于来自第二客户端设备的第二请求选择第三内容容器;以及
由数据处理系统在第一相应内容容器的回放期间将第二内容容器提供给第一客户端设备并且将第三内容容器提供给第二客户端设备,以用于在完成第一相应内容容器的回放之后进行回放,
其中,提供给第一客户端设备的第一相应内容容器是第四内容容器,并且提供给第二客户端设备的第一相应内容容器是第五内容容器;以及
其中,提供第一相应内容容器还包括:根据容器分发策略在流传输内容的第一部分期间的第三时间向第一客户端设备提供第四内容容器,并且根据容器分发策略在流传输内容的第一部分期间的与第三时间不同的第四时间提供第五内容容器。
14.根据权利要求13所述的方法,其中,提供第一相应内容容器还包括向多个客户端设备中的每个客户端设备提供第一相应内容容器,第一相应内容容器包括第一请求说明符,所述第一请求说明符指定客户端设备将发送具有内容选择参数的后续请求。
15.根据权利要求13所述的方法,其中,接收第一请求还包括从第一客户端设备接收第一请求,响应于第一相应内容容器包括的第一请求说明符经由第一请求生成策略在第一内容容器的回放期间的第一时间生成包括第一内容选择参数的第一请求,第一请求说明符指定第一客户端设备将发送具有第一内容选择参数的第一请求。
16.根据权利要求13所述的方法,其中,选择第二内容容器还包括基于对插入先前的内容中断的内容的先前请求和流传输内容来选择第二内容容器,先前请求中的每个在对内容的第一请求之前从第一客户端设备接收并且包括内容选择参数。
17.根据权利要求13所述的方法,其中,响应于来自第一客户端设备的第一请求选择第二内容容器还包括基于第一请求中包括的内容选择参数选择第二内容容器,内容选择参数在第一内容容器的回放期间的第一时间由第一客户端设备生成,并且内容选择参数包括识别显示流传输内容的信息资源的参考地址、第一客户端设备关于内容的历史交互数据或者识别提供给第一客户端设备的第一相应内容容器的容器参考中的至少一个。
18.根据权利要求13所述的方法,还包括:
由数据处理系统基于接收第一请求的时间,确定经由第一请求生成策略在第一内容容器的回放期间生成从第一客户端设备接收的第一请求;以及
其中,选择第二内容容器还包括:响应于确定在第一内容容器的回放期间生成从第一客户端设备接收的第一请求,选择第二内容容器。
19.根据权利要求13所述的方法,还包括:
由数据处理系统维护包括多个条目的请求说明符日志,请求说明符日志的每个条目指示相应客户端设备是否将使用相应内容选择参数来选择对应的内容容器;
由数据处理系统基于对应于第一客户端设备的请求说明符日志的第一条目,确定第一客户端设备将使用第一请求中包括的第一内容选择参数来接收第二内容容器;以及
其中,选择第二内容容器还包括:响应于基于第一条目确定第一客户端设备将使用第一内容选择参数来接收第二内容容器,基于第一请求的第一内容选择参数来选择第二内容容器。
20.根据权利要求13所述的方法,其中,接收第一请求还包括:接收经由中心请求分发策略的第一请求生成策略生成的对内容的第一请求,所述中心请求分发策略指定用于为多个客户端设备中的每个客户端设备生成相应请求的相应时间;以及
其中,接收第二请求还包括:接收经由中心请求分发策略的第二请求生成策略生成的对内容的第二请求。
21.根据权利要求13所述的方法,还包括:
由数据处理系统在流传输内容的第二部分期间从多个客户端设备中的第一客户端设备接收对插入到分离流传输内容的第二部分与流传输内容的第三部分的第二内容中断的内容的第三请求,第三请求经由第三请求生成策略在流传输内容的第二部分期间的第三时间生成;以及
由数据处理系统向第一客户端设备提供第四内容容器,以用于插入分离流传输内容的第二部分与流传输内容的第三部分的后续内容中断。
22.一种用于在流传输期间分发网络流量的系统,包括:
在具有一个或多个处理器的数据处理系统上执行的响应管理器,被配置为:向多个客户端设备中的每个客户端设备提供对于客户端设备的第一相应内容容器,以用于插入分离流传输内容的第一部分与流传输内容的第二部分的内容中断;
在数据处理系统上执行的请求处理器,被配置为:
在第一内容容器的回放期间从多个客户端设备中的第一客户端设备接收对插入内容中断以在回放第一相应内容容器之后进行回放的内容的第一请求,经由第一请求生成策略在从开始回放第一内容容器起经过的第一时间生成对内容的第一请求;以及
在第二内容容器的回放期间从多个客户端设备中的第二客户端设备接收对插入内容中断以在回放第二相应内容容器之后进行回放的内容的第二请求,经由第二请求生成策略从开始回放第二内容容器起经过的第二时间生成对内容的第二请求;以及
在数据处理系统上执行的内容选择器,被配置为:响应于来自第一客户端设备的第一请求选择第二内容容器,并且响应于来自第二客户端设备的第二请求选择第三内容容器;
其中,响应管理器还被配置为在第一相应内容容器的回放期间将第二内容容器提供给第一客户端设备并且将第三内容容器提供给第二客户端设备,以用于在完成第一相应内容容器的回放之后进行回放,
其中,提供给第一客户端设备的第一相应内容容器是第四内容容器,并且提供给第二客户端设备的第一相应内容容器是第五内容容器;以及
其中,响应管理器还被配置为根据容器分发策略在流传输内容的第一部分期间的第三时间向第一客户端设备提供第四内容容器,并且根据容器分发策略在流传输内容的第一部分期间的与第三时间不同的第四时间提供第五内容容器。
23.根据权利要求22所述的系统,其中,响应管理器还被配置为向多个客户端设备中的每个客户端设备提供第一相应内容容器,第一相应内容容器包括第一请求说明符,所述第一请求说明符指定客户端设备将发送具有内容选择参数的后续请求。
24.根据权利要求22所述的系统,其中,请求处理器还被配置为从第一客户端设备接收第一请求,第一请求包括响应于第一相应内容容器包括的第一请求说明符经由第一请求生成策略在第一内容容器的回放期间的第一时间生成的第一内容选择参数,第一请求说明符指定第一客户端设备将发送具有第一内容选择参数的第一请求。
25.根据权利要求22所述的系统,其中,内容选择器还被配置为基于对插入先前的内容中断的内容的先前请求和流传输内容来选择第二内容容器,先前请求中的每个在对内容的第一请求之前从第一客户端设备接收并且包括内容选择参数。
26.根据权利要求22所述的系统,其中,内容选择器还被配置为基于第一请求中包括的内容选择参数选择第二内容容器,内容选择参数在第一内容容器的回放期间的第一时间由第一客户端设备生成,并且内容选择参数包括识别显示流传输内容的信息资源的参考地址、第一客户端设备关于内容的历史交互数据或者识别提供给第一客户端设备的第一相应内容容器的容器参考中的至少一个。
27.根据权利要求22所述的系统,其中,请求处理器还被配置为基于接收第一请求的时间,确定经由第一请求生成策略在第一内容容器的回放期间生成从第一客户端设备接收的第一请求;以及
其中,内容选择器还被配置为响应于确定在第一内容容器的回放期间生成从第一客户端设备接收的第一请求,选择第二内容容器。
28.根据权利要求22所述的系统,其中,响应处理器还被配置为:
维护包括多个条目的请求说明符日志,请求说明符日志的每个条目指示相应客户端设备是否将使用相应内容选择参数来选择对应的内容容器;
基于对应于第一客户端设备的请求说明符日志的第一条目,确定第一客户端设备将使用第一请求中包括的第一内容选择参数来接收第二内容容器;以及
其中,内容选择器还被配置为响应于基于第一条目确定第一客户端设备将使用第一内容选择参数来接收第二内容容器,基于第一请求的第一内容选择参数来选择第二内容容器。
29.根据权利要求22所述的系统,其中,请求处理器还被配置为:
接收经由中心请求分发策略的第一请求生成策略生成的对内容的第一请求,所述中心请求分发策略指定用于为多个客户端设备中的每个客户端设备生成相应请求的相应时间;以及
接收经由中心请求分发策略的第二请求生成策略生成的对内容的第二请求。
30.根据权利要求22所述的系统,其中,请求处理器还被配置为在流传输内容的第二部分期间从多个客户端设备中的第一客户端设备接收对插入到分离流传输内容的第二部分与流传输内容的第三部分的第二内容中断的内容的第三请求,第三请求经由第三请求生成策略在流传输内容的第二部分期间的第三时间生成;以及
其中,内容选择器还被配置为向第一客户端设备提供第四内容容器,以用于插入分离流传输内容的第二部分与流传输内容的第三部分的后续内容中断。
CN201780074303.XA 2017-10-25 2017-10-25 用于流传输内容的网络流量分发 Active CN110024411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110275098.1A CN113099246B (zh) 2017-10-25 2017-10-25 用于流传输内容的网络流量分发

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2017/058235 WO2019083520A1 (en) 2017-10-25 2017-10-25 NETWORK TRAFFIC DISTRIBUTION FOR CONTINUOUS DIFFUSION CONTENT

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110275098.1A Division CN113099246B (zh) 2017-10-25 2017-10-25 用于流传输内容的网络流量分发

Publications (2)

Publication Number Publication Date
CN110024411A CN110024411A (zh) 2019-07-16
CN110024411B true CN110024411B (zh) 2021-03-23

Family

ID=60268510

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110275098.1A Active CN113099246B (zh) 2017-10-25 2017-10-25 用于流传输内容的网络流量分发
CN201780074303.XA Active CN110024411B (zh) 2017-10-25 2017-10-25 用于流传输内容的网络流量分发

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110275098.1A Active CN113099246B (zh) 2017-10-25 2017-10-25 用于流传输内容的网络流量分发

Country Status (4)

Country Link
US (1) US11184669B2 (zh)
EP (2) EP3533228B1 (zh)
CN (2) CN113099246B (zh)
WO (2) WO2019083520A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2019356584A1 (en) * 2018-10-11 2021-05-13 Invidi Technologies Corporation Method and apparatus for combining metadata and content stream manifest files for processing on client devices
US20210109822A1 (en) * 2019-10-11 2021-04-15 EMC IP Holding Company LLC Systems and methods for backup and restore of container-based persistent volumes
US11899757B2 (en) * 2019-12-02 2024-02-13 Cox Automotive, Inc. Systems and methods for temporary digital content sharing
JP2022012403A (ja) * 2020-07-01 2022-01-17 キヤノン株式会社 プログラム、情報処理装置及び制御方法
US11574065B1 (en) * 2021-05-13 2023-02-07 Skypod, LLC Parameter-triggered multimedia sharing system
US11914637B2 (en) * 2022-07-25 2024-02-27 Sap Se Image scaling cloud database

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104509125A (zh) * 2012-04-03 2015-04-08 谷歌公司 在实况流中派发广告的同时预取广告

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW416224B (en) * 1998-07-07 2000-12-21 United Video Properties Inc Interactive television program guide system with local advertisements
US6704930B1 (en) * 1999-04-20 2004-03-09 Expanse Networks, Inc. Advertisement insertion techniques for digital video streams
US7228555B2 (en) * 2000-08-31 2007-06-05 Prime Research Alliance E., Inc. System and method for delivering targeted advertisements using multiple presentation streams
US6615039B1 (en) * 1999-05-10 2003-09-02 Expanse Networks, Inc Advertisement subgroups for digital streams
US20040268387A1 (en) * 2001-06-11 2004-12-30 Bertrand Wendling Field of programme delivery
US20040237102A1 (en) * 2003-03-07 2004-11-25 Richard Konig Advertisement substitution
US20060293954A1 (en) * 2005-01-12 2006-12-28 Anderson Bruce J Voting and headend insertion model for targeting content in a broadcast network
US8893210B2 (en) * 2010-08-20 2014-11-18 Sony Corporation Server load balancing for interactive television
US9419845B2 (en) * 2013-06-27 2016-08-16 Cisco Technology, Inc. Dynamic content distribution network selection based on context from transient criteria
US20150325268A1 (en) * 2014-05-12 2015-11-12 Penthera Partners, Inc. Downloading videos with commercials to mobile devices
US9420351B2 (en) * 2014-06-06 2016-08-16 Google Inc. Systems and methods for prefetching online content items for low latency display to a user
US9984049B2 (en) * 2015-07-14 2018-05-29 Google Llc Systems and methods for providing call context to content providers
US9674567B1 (en) * 2015-07-23 2017-06-06 BlackArrow Addressable linear digital advertising system utilizing CPE splicer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104509125A (zh) * 2012-04-03 2015-04-08 谷歌公司 在实况流中派发广告的同时预取广告

Also Published As

Publication number Publication date
WO2019083520A1 (en) 2019-05-02
CN113099246A (zh) 2021-07-09
EP3533228A1 (en) 2019-09-04
US11184669B2 (en) 2021-11-23
CN110024411A (zh) 2019-07-16
CN113099246B (zh) 2023-09-15
US20190373316A1 (en) 2019-12-05
EP3533228B1 (en) 2021-08-11
WO2019083570A1 (en) 2019-05-02
EP3908005A1 (en) 2021-11-10

Similar Documents

Publication Publication Date Title
CN110024411B (zh) 用于流传输内容的网络流量分发
KR101493034B1 (ko) 비디오 세그먼트 프리젠테이션 추적
CN107710199B (zh) 用于在内容列表中提供内容的系统和方法
EP3238418B1 (en) Interactive ad rendering application for low-bandwidth communication environments
CN108140196B (zh) 使用客户端生成的点击标识符减少内容项交互的时延的系统和方法
US20230368250A1 (en) Systems and methods for dynamically inserting content item slots in an information resource
EP3676709B1 (en) Controlling the triggering of function calls from content items
US20210352150A1 (en) Maintaining session identifiers across multiple webpages for content selection
US11989755B1 (en) Expansion of high performing placement criteria
WO2022060956A1 (en) User interfaces for refining video group packages
WO2022150053A1 (en) Selection and provision of digital components during display of content
CA3175544A1 (en) Digital video analysis

Legal Events

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