CN110121871A - 对于流式内容部分的基于请求的编码 - Google Patents

对于流式内容部分的基于请求的编码 Download PDF

Info

Publication number
CN110121871A
CN110121871A CN201780064273.4A CN201780064273A CN110121871A CN 110121871 A CN110121871 A CN 110121871A CN 201780064273 A CN201780064273 A CN 201780064273A CN 110121871 A CN110121871 A CN 110121871A
Authority
CN
China
Prior art keywords
content
stream
inventory
request
computing devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780064273.4A
Other languages
English (en)
Other versions
CN110121871B (zh
Inventor
马修·布林克利
张晓晔
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Priority to CN202210247232.1A priority Critical patent/CN114666308B/zh
Publication of CN110121871A publication Critical patent/CN110121871A/zh
Application granted granted Critical
Publication of CN110121871B publication Critical patent/CN110121871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1089In-session procedures by adding media; by removing media
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • 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/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4882Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
    • 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

Abstract

描述了能够对要作为内容流的一部分回放的内容部分进行请求驱动的编码的系统和方法。内容流可以表示多种类型的内容,每种类型的内容最初都是根据不同的格式化参数进行编码的。因此,如最初编码的多种类型内容的回放将会导致格式化不一致的内容流。为了解决这个问题,流式内容传递服务可以通过确定一致格式化的内容部分是否可用而响应于请求,并且如果这些部分不可用,则选择后备内容部分以包括在所述流中。所述流式内容服务还可以响应于所述请求而起始所述一致格式化的内容部分的生成,使得可以使用所述一致格式化的内容部分来服务后续请求。

Description

对于流式内容部分的基于请求的编码
背景技术
一般来说,计算装置利用一个通信网络或一系列通信网络来交换数据。公司和组织操作计算机网络,所述计算机网络互连多个计算装置以支持运营或向第三方提供服务。计算系统可以位于单个地理位置或位于多个不同的地理位置(例如,经由私人或公共通信网络互连)。具体而言,数据中心或数据处理中心(本文中统称为“数据中心”)可以包括多个互连的计算系统以向数据中心的用户提供计算资源。数据中心可以是代表组织运营的私人数据中心,或者可以是代表公众或出于公众利益运营的公共数据中心。
服务提供商或内容创建者(例如企业、艺术家、媒体分发服务等)可以使用一系列互连的数据中心来向用户或客户端传递内容(例如网站、web内容或其他数字数据)。这些互连的数据中心有时被称为“内容传递网络”(CDN)或流式内容传递系统。现有的路由和寻址技术可以使与流式内容传递系统相关联的多个数据中心能够向客户端计算装置提供类似或相同的内容。在一些情况下,提供一组内容的每个数据中心都可以被称为存在点(“POP”)。流式内容传递系统可以在广泛的区域(或全球)维护POP,以使系统能够有效地服务来自各种位置的客户端的请求。
CDN可用于分发各种内容,并且在某些情况下可用于复制或替换先前的内容分发系统。例如,CDN可以以类似于传统电视或无线电网络的方式来提供基于网络的流式视频或音频内容。该内容有时分别称为“互联网电视”或“互联网广播”。流式内容通常可以通过专用计算装置(例如,机顶盒)、客户端计算装置上的专用观看器(例如,软件应用程序)或非专用软件应用程序(例如,web浏览器)来观看。通常,这些观看器提供的功能多于传统分发网络(如电视或广播)上可用的功能,例如能够“按需”播放内容。这种灵活性可导致多种多样的内容被包括在内容流内。例如,可以根据用户所属的司法管辖地点,为不同的用户提供不同的法律警告,或者根据用户的预测偏好,为不同的用户提供不同的广告。然而,内容的多样性也会导致内容流内的格式化不一致。例如,可以根据第一组参数来对主要内容进行格式化,而根据第二组不同的参数来对诸如广告等附加内容进行格式化。这种不一致的格式化可能既会由于回放装置试图播放不同格式的内容而导致技术问题,又会产生不期望的用户体验。
附图说明
图1是描绘了一种说明性逻辑网络环境的框图,所述说明性逻辑网络环境包括客户端计算装置、内容提供商和广告系统,以及被配置为向客户端计算装置提供内容流的流式内容传递系统,所述内容流包括在对内容流的请求中被编码为匹配内容流中包括的其他内容部分的内容部分;
图2是描绘可以在图1的流式内容传递系统内实现内容管理引擎的服务器的一个实施方案的说明性配置的框图;
图3A和图3B是描绘图1的流式内容传递系统的说明性交互的框图,所述流式内容传递系统用于通过生成标识形成内容流的内容部分的清单文件来响应对内容流的客户端请求,并且用于响应于客户端请求来编码所述内容部分中的至少一者,以匹配包括在内容流中的其他内容部分;
图4A和图4B是描绘图1的流式内容传递系统的说明性交互的框图,所述流式内容传递系统用于通过提供被编码成匹配清单文件中标识的其他内容部分的内容部分或后备内容部分来响应客户端对清单文件中标识的内容部分的请求;并且
图5是描绘用于基于客户端对内容流的请求在内容流内提供匹配内容部分的说明性例程的流程图。
具体实施方式
一般而言,本公开涉及通过通信网络提供内容流,其中响应于对内容流本身的请求来编码内容流的至少一部分。更具体地,本公开能够对内容流内的内容部分进行动态编码以匹配内容流内的其他部分的参数或方面,以减少与不一致的内容流的回放相关联的技术问题,并防止由于内容流中的格式化不一致而导致的对最终用户体验的干扰。说明性地,本公开的各方面可以实现将各种内容类型动态地插入到内容流中,同时保持内容流内的各内容部分之间的一致的格式化。该格式化可以包括例如视频内容的分辨率、比特率和帧速率。作为另一示例,格式化可以包括音频内容的比特率、帧速率或归一化值。作为示例,本公开能够以在内容流内维持一致格式化的方式在内容流内包括附加内容部分,诸如免责声明、法律警告或广告,而不需要在请求内容流之前将附加内容部分保持在预编码状态。因此,本公开的实施方案能够例如响应于对内容流的请求,使得附加内容部分被包括到要被动态确定的流中,同时还使得那些附加内容部分能够匹配内容流的格式化,从而导致更好的用户体验并减少由于格式化不一致而可能会出现的技术问题。另外,本公开的实施方案能够在“匹配”内容部分(例如,具有与内容流中的其他部分的格式匹配的格式的内容部分)不可用的情况下使用诸如默认内容部分等后备部分。
如本文所述,内容流通常是指如下内容:被分成可以独立传输和观看的部分(有时称为“段”或“块”),使得客户可以在下载第二部分时开始观看第一部分。内容流的各个部分通常在一个或多个清单内被标识,所述一个或多个清单提供关于流式内容的元数据以及所述内容内的各部分的列表。可以基于资源标识符(诸如统一资源指示符或“URI”)或文件名来在清单内标识每个部分,客户端计算装置可以使用该资源标识符或文件名来获得和输出这些部分。通常,在单个清单中标识多种类型的内容。例如,清单可以标识要输出的法律警告、主要内容的第一部分、广告、主要内容的第二部分等。这些部分中的每一个都可以对应于单独的文件,每一部分都根据潜在独立参数进行编码,以产生具有不同格式的部分。说明性地,法律警告可以以第一比特率、分辨率和帧速率编码,主要内容可以以第二比特率、分辨率和帧速率编码,广告可以以第三比特率、分辨率和帧速率等编码。虽然客户端计算装置通常可以输出根据不同参数编码的部分,但这可能会导致用户体验不佳。在某些情况下,它还可能导致回放出现技术问题,例如由于改变输出装置(例如,监视器)的配置以适应不同的编码参数,而引起延迟。此外,一些客户端计算装置可以利用关于这些部分的编码参数的信息来选择性地屏蔽或过滤不想要的内容,例如法律警告和通知、片头片尾演职员名单、题献或广告。屏蔽此类内容的装置或软件有时被称为“广告拦截器”。广告拦截器通常通过监视清单来查找将特定资源指定为不想要的内容的信息,来发挥作用。例如,广告拦截器可以通过检测不同部分的编码参数,并将具有给定参数(例如,比周围部分的比特率低)的部分标识为包含不想要的内容,来尝试标识不想要的内容。在标识出不想要的内容之后,广告拦截器可以从清单文件中移除那些部分或以其他方式阻止客户端计算装置显示该部分。这些修改会阻止客户观看重要内容并且可能会对内容提供商产生不利影响(例如,通过降低法律警告的有效性、减少内容提供商的广告收入等)。
本公开的实施方案通过能够创建包括“匹配”内容部分的内容流来解决这些问题,使得内容流内的各部分共享共同的格式化参数,即使这些部分对应于不同类型的内容(例如,主要内容和附加内容)。为了便于描述,将描述其中内容流包括对应于电视节目的部分作为主要内容以及广告作为附加内容的示例。然而,主要内容可以包括任何所请求的流式内容(例如,音频、视频或文本内容,以及其组合),而附加内容可以包括添加到主要内容以形成内容流的任何内容。在内容流包括电视内容和广告内容(例如,两者均由流内的相应内容部分表示)的情况下,电视内容和广告内容的不同编码参数可能会破坏最终用户体验和尝试输出内容流的客户端计算装置的操作中的任一者或两者。解决该问题的一种可能的解决方案是维护每个可能的广告内容的不同预编码版本,其中每一种版本都匹配每个可能的电视内容的每种可能格式。然而,可能的广告内容、电视内容和编码参数有各种各样,通常会使得这种方法不可能完成或不切实际。例如,在基于每个用户或每个请求确定广告内容的情况下,内容流中包括的特定广告内容可能在用户与用户之间或随着时间的推移而千差万别。此外,电视内容也可能会与各种不同版本相关联,每个版本都用各种不同的参数(例如,不同的分辨率)编码。因此,预编码所有可能的广告内容以匹配所有可能的电视内容的参数在计算上可能是令人难以承受的,无论是就进行这种预编码所需的处理能力而言,还是就维护预编码内容所需的存储容量而言。因此,本公开的实施方案提供了一种流式内容传递服务,其利用请求驱动的编码来在给定内容流内适当地对广告内容(或其他附加内容)进行编码。例如,在客户端请求包括期望电视内容的内容流的情况下,流式内容传递服务可以确定要包括在内容流中的广告内容,并且在客户端请求时,利用与电视内容的那些参数相匹配的参数,来对广告内容进行编码。因此,可以以恒定参数输出内容流,减少了由于那些参数的改变而导致的潜在技术问题,并且改善了可能会由于改变参数而中断的整体用户体验。此外,因为这种编码仅需要响应于客户端请求而发生,所以流式内容传递服务能够仅“根据需要”地利用匹配参数对广告内容进行编码,从而降低流式内容传递服务的计算要求。在一些情况下,流式内容传递服务被配置为高速缓存这样的已编码的广告内容(或其他附加内容),使得已高速缓存的内容可以包括在后续内容流中而无需重新编码。可以连续或周期性地删除高速缓存的内容以减少维护这种高速缓存所需的计算资源。
在一些情况下,流式内容传递服务可以通过使用针对内容流的“乐观地”创建的清单来实现请求驱动的编码。如上所述,清单通常可以包括内容的各个部分的标识信息,并且客户端计算装置可以通过检索和输出清单内标识的部分来处理清单。通常,可以预期在清单的生成和客户端计算装置检索在清单内标识的部分之间存在至少一些延迟,已知清单必须在清单内标识的部分能够被检索之前被传输到客户端计算装置。在一些情况下,这种延迟可能会很严重,因为客户端计算装置可能会被配置为仅在回放期间根据需要检索清单内标识的部分(例如,表示相对于当前回放位置后面的n秒内容流的部分)。因此,流式内容传递服务可以生成标识流的匹配内容部分的清单,例如表示广告内容的部分,甚至在创建那些匹配的内容部分之前。这在本文中通常称为“乐观的”清单创建。在生成这样的清单的同时或之后,流式内容传递服务可以开始生成匹配的内容部分,如下所述。在某一匹配内容部分在接收到来自客户端计算装置的针对该匹配内容部分的请求之前完成生成的情况下,可以将该匹配内容部分传输到客户端计算装置并将其包括在内容流内。因此,可以响应于客户端对内容流的请求,动态地创建匹配的内容部分。
在一些情况下,乐观清单创建可能会导致来自客户端计算装置的请求所请求的内容部分尚未可用。例如,假设乐观清单创建导致清单标识“前贴片内容”,例如法律警告,其使用与内容流的主要内容匹配的参数进行编码。进一步假设通过清单将前贴片内容安排在主要内容之前回放,并且流式内容传递系统尚未创建匹配的前贴片内容。在这种情况下,客户端计算装置可能会在流式内容传递服务完成前贴片内容的创建之前请求前贴片内容。在传统系统中,这样的请求可能会导致错误(例如,超文本传输协议,或“HTTP”,错误代码“404”),这通常是不期望的。因此,在客户端计算装置请求的内容部分尚不可用的情况下,本公开的实施方案能够使用后备内容部分。说明性地,在上面提供的示例中,流式内容传递服务可以维护在清单文件中标识的前贴片内容的默认版本,使得在匹配的前贴片内容不可用的情况下,客户端对匹配的前贴片内容的请求导致传递前贴片内容的默认版本。虽然后备内容部分的使用可能会导致内容流内的内容部分之间的不同格式化参数,但是这种结果可能比允许在客户端计算装置处发生错误更可取。如下面更详细描述的,在流式内容传递服务利用后备内容部分的情况下,这些内容部分可以被格式化,以使得能够由流式内容传递服务的各种部件正确处理后备内容部分。例如,可以生成具有低或零“生存时间”值的后备内容部分,使得流式内容传递系统的否则可能会高速缓存后备内容部分的部件(例如,存在点或“POP”)被指示不要这样做。作为另一示例,不是直接响应于对匹配内容部分的请求而返回后备内容部分,流式内容传递系统可以返回到后备内容部分的重定向(例如,经由HTTP 3xx重定向代码)。这些技术可以确保适当地处理对匹配内容部分的后续请求,而不是通过提供后备内容部分来自动地满足。
虽然针对特定类型的流式内容(例如音频和视频)提供了一些示例,但是本公开的实施方案可以用于控制划分为由清单向用户标识的离散部分的任何内容的传递。此外,尽管这里针对内容分发系统提供了示例,但是本公开的实施方案可以针对操作以向客户端计算装置提供流式内容的任何计算装置网络来实现。因此,本文提供的示例本质上是说明性的,而非穷举性的。
如本领域技术人员根据以上描述将理解的,本文公开的实施方案显著地提高了计算系统(例如流式内容传递系统)向用户传递流式内容的能力,流式内容是根据一组匹配的参数一致地编码的。此外,本文公开的实施方案显著地提高了计算系统(例如流式内容传递系统)以受保护的方式传递流式内容的能力,使得客户端装置被禁止或阻止修改内容流内的一个或多个部分的输出。因此,当前公开的实施方案通过使流式内容传递系统或其他联网装置能够复制和再现由传统分发网络(例如电视和无线电网络)提供的功能来表示这种计算系统的功能的改进。此外,当前公开的实施方案解决了计算系统内固有的技术问题;具体而言,可用于利用适当参数对内容进行编码的计算资源有限、网络传输系统在数据传输到客户端计算装置之后对数据的控制有限,以及客户端装置以不期望的方式修改该内容的可能性高。这些技术问题通过本文描述的各种技术解决方案来解决,包括对内容部分使用请求驱动的编码、乐观清单生成以及使用后备部分来服务对尚不可用的内容部分的请求。因此,本公开总体上表示对现有网络系统和计算系统的实质性改进。
在一些情况下,本公开的实施方案可以利用额外的技术来抑制对内容流的移除或篡改。例如,如本公开中描述的流式内容传递系统可以在流式内容的清单内利用隐藏标识符,其禁止客户端计算装置基于那些标识符区分不同类型的内容。在2016年5月23日提交的标题为“PROTECTING CONTENT-STREAM PORTIONS FROM MODIFICATION OR REMOVAL(防止内容流部分被修改或删除)”的美国专利申请号15/162,423(“‘423申请”)中更详细地描述了用于在流式内容中生成和利用隐藏标识符的系统和方法,该申请的全部内容在此通过引用并入本文中。
结合附图,通过参考以下内容,本公开的前述方面和许多伴随的优点将变得更容易理解。
图1是描绘包括经由网络106与流式内容传递系统110进行通信的多个客户端计算装置102、内容提供商104和广告系统130的说明性逻辑网络环境100的框图。虽然客户端计算装置102、内容提供商104和广告系统130被示为在图1中分为一组,但是客户端计算装置102、内容提供商104和广告系统130可以在地理上相距遥远,并且被独立拥有或操作。例如,客户端计算装置102可以表示访问流式内容传递系统110的各种全球性、大陆性或区域性位置的众多用户。此外,内容提供商104可以表示与流式内容传递系统110相关联,以向客户端计算装置102提供诸如网站、多媒体的内容或其他数字、可通过网络传递的内容的众多相关或不同的各方。更进一步地,广告系统130可以表示提供广告内容以包括在与内容提供商相关联的内容内(例如,并向内容提供商提供收入)的众多相关或不同的各方。尽管示为不同,但是客户端计算装置、内容提供商104或广告系统130可以由一个共同实体或一个共同计算装置操作。因此,图1中的客户端计算装置102、内容提供商104和广告系统130的分组旨在表示逻辑分组而非物理分组。类似地,流式内容传递系统110的每个部件都可以位于地理上分散的区域内。例如,流式内容传递系统110可以在各种全球性、大陆性或区域性不同的位置包含POP 112,以便为流式内容传递系统110提供广泛的地理存在。
网络106可以是任何有线网络、无线网络或其组合。另外,网络106还可以是个人区域网络、局域网、广域网、有线电视网络、卫星网络、蜂窝电话网络或其组合。在图1的示例环境中,网络106是全球区域网(GAN),例如互联网。用于通过其他上述类型的通信网络进行通信的协议和部件是计算机通信领域的技术人员所熟知的,因此,本文不需要进行更详细的描述。虽然客户端计算装置102、内容提供商104、广告系统130和流式内容传递系统110中的每一个都被描绘为具有到网络106的单个连接,但是客户端计算装置102、内容提供商104、广告系统130,以及流式内容传递系统110的单个部件都可以在不同的点连接到网络106。因此,通信时间和能力可以在图1的各部件之间有所不同。
客户端计算装置102可以包括能够与流式内容传递系统110进行通信的任何数量的不同计算装置。例如,各个客户端计算装置102可以对应于膝上型或平板计算机、个人计算机、可穿戴计算机、服务器、个人数字助理(PDA)、PDA/移动电话两用机、移动电话、电子书阅读器、机顶盒、相机、数字媒体播放器等。每个客户端计算装置102都可以包括能够接收和输出流式内容的硬件和/或软件,包括专用播放硬件、专用软件(例如,专门编程的应用程序),以及能够输出流式内容(例如,通过直接下载内容、下载包括内容的网页等)的通用软件(例如,web浏览器)。在一些情况下,客户端计算装置102还可以被配置为向流式内容传递系统110报告关于内容输出的信息,诸如是否由客户端计算装置输出内容的特定部分。各个客户端计算装置102的具体配置可以有所不同。例如,大多数客户端计算装置102可能会检索和输出流式内容而不会修改;然而,一些客户端计算装置102可能会包括被配置为修改流式内容以删除特定部分(例如,法律警告、片头片尾演职员名单、题献、广告等)的硬件或软件。
内容提供商104可以包括由实体拥有或操作的任何计算装置,实体向流式内容传递系统110提供内容以便随后传输到客户端计算装置(其可以包括一个或多个客户端计算装置102)。例如,内容提供商104可以包括托管流式音频、视频、文本、多媒体或交互式服务(例如,视频游戏、虚拟现实或增强现实内容或其他沉浸式内容)的服务器。虽然在图1中示例性地示为联网的计算装置,但是内容提供商104可以附加地或替代地经由非网络通信信道(例如,通过数据的物理传递)向流式内容传递系统110提供内容。
广告系统130可以包括由实体拥有或操作的任何计算装置,实体向流式内容传递系统110提供广告内容以包括在其他内容(例如,流式视频)内。广告可以包括图片、文本、音频、视频或要插入由流式内容传递系统110提供的其他类型的内容内的任何其他内容。说明性地,广告可以由广告系统130存储在广告内容数据存储区134内,广告内容数据存储区可以对应于任何持久或基本上持久的数据存储装置,例如硬盘驱动器(HDD)固态驱动器(SDD)、网络附加存储装置(NAS)、磁带驱动器或其任何组合。在一些情况下,广告系统130可以被配置为选择要包括在由流式内容传递系统110提供的流式内容内的特定广告(例如,基于客户端计算装置102的属性)。因此,广告系统130可以包括广告选择服务132,该服务被配置为接收关于要流式传输到客户端计算装置102的内容的信息(例如,包括客户端计算装置102自身的属性)并且返回对要包括在流式内容内的广告的选择。在一个实施方案中,流式内容传递系统110和广告选择服务132可以通过使用标准协议或规范(例如由INTERACTIVEADVERTISING BUREAUTM(“IAB”)提供的视频广告服务模板(VAST)规范)进行通信,这使得流式内容服务能够传输关于流式内容的信息并且从广告系统130接收关于应播放什么广告、应如何播放广告的信息以及广告的通知信息(例如,当输出广告的各个部分时,请求应被发送到的URI)。广告系统130(包括广告选择服务132)的操作,在本领域中通常是已知的,因此这里将不再详细描述。虽然针对选择广告以包括在内容流中的不同广告系统130描述了说明性实施方案,但是流式内容传递服务110可以附加地或替代地在不与广告系统130交互的情况下操作(例如,通过将广告选择服务132集成到流式内容传递系统110中,通过基于一组规则来选择广告,通过提供静态广告,通过将非广告内容集成为受保护内容等)。
流式内容传递服务110可以包括各种部件和装置,其被配置为使得客户端计算装置102能够访问由内容提供商104和广告系统130提供给流式内容传递服务110的流式内容。具体而言,流式内容传递系统110可以包括多个POP 112,其被配置为托管流式内容,或者用作由流式内容传递系统110、内容提供商104和/或广告系统130托管的流式内容的高速缓存点。每个POP 112都可以包括被配置为向客户端计算装置102提供内容的各种计算装置。因此,尽管未在图1中示出,但是,每个POP 112都可以包括任何数量的处理器、数据存储区或网络部件,它们协同操作以便于检索流式内容并将其传递到客户端计算装置。POP 112可以经由该系统110的内部网络与流式内容传递系统110的其他部件进行通信,内部网络可以包括任何有线网络、无线网络或其组合,并且可以是个人区域网络、局域网、广域网、有线电视网络、卫星网络,蜂窝电话网络或其组合。在一些情况下,内部网络可以至少部分地由网络106实现(例如,作为虚拟专用网络或“VPN”)。说明性地,每个POP 112都可以用于在本地高速缓存数据存储区内保留有限选择的内容部分(例如,最近请求的n个内容部分),使得这些内容部分可以快速地传输到客户端计算装置102。当本地高速缓存数据存储区不包括所请求的内容部分时,POP 112可以被配置为从远程数据存储区(例如流式内容传递系统110内的内容服务120的内容数据存储区124、广告内容数据存储区134,或内容提供商104的系统内的数据存储区(未在图1中示出))检索内容部分,并将内容部分返回到请求客户端计算装置102。
流式内容传递服务110还可以包括:清单生成服务114,其被配置为响应客户端对流式内容的请求,并生成清单,清单标识要提供给请求客户端计算装置102的多个内容部分。如下面将更详细描述的,清单生成服务114可以与流式内容传递服务110的其他部件以及诸如广告系统130等外部部件进行交互,以选择要在清单内标识的特定内容部分。例如,可以选择这些内容部分,使得每个内容部分都根据匹配或可互换的参数(例如,公共比特率、帧速率或分辨率)来编码。在一些情况下,清单生成服务114还可以将信息传送到流式内容传递服务110的其他部件,例如监视和报告服务118和POP 112,这些信息使得这些部件能够与从客户端计算装置接收的内容交互或处理从客户端计算装置接收的内容。例如,在清单生成服务114生成包括隐藏标识符的清单的情况下,如‘423申请(上面通过引用并入)中所描述的,清单生成服务114可以将隐藏的标识符信息传输到监视和报告服务118和POP112,使这些部件能够确定每个被观看部分的基础(非隐藏)标识符。根据本公开的实施方案,清单生成服务114在一些情况下可以乐观地生成清单,使得清单中标识的至少一个内容部分在流式内容传递系统110处还不可用。因此,清单生成服务114可以向内容服务120通知这种乐观清单生成,使得内容服务120可以开始生成尚不可用的任何内容部分。
内容服务120可以被配置为生成用于内容流的内容部分,诸如在清单文件内标识但在流式内容传递系统110上尚不可用的内容部分。说明性地,内容服务120可以包括内容管理引擎122,其从清单生成服务114接收清单信息,标识清单内引用的、内容数据存储区124内尚不可用的任何内容部分,并生成这样的内容部分。在一个实施方案中,内容管理引擎122本身可以通过检索源内容(例如,要包括在内容流中的内容项的未压缩或高质量版本)并根据源内容的所需编码参数,从源内容生成内容部分,来对这样的内容部分进行编码。在另一实施方案中,内容管理引擎122可以与单独的编码系统进行交互,以指示系统根据期望的编码参数对源内容进行编码。2016年6月27日提交的标题为“SYNCHRONIZATION OFMULTIPLE ENCODERS FOR STREAMING CONTENT(用于流式内容的多个编码器的同步)”的美国专利申请号15/194.347(“‘347申请”)中描述了单独的编码系统的一个示例,该专利申请的全部内容在此通过引用并入本文中。在内容部分已被编码之后,它们可以存储在内容数据存储区124中,以使得这些部分对已经接收到清单的客户端计算装置102可用、对POP 112或流式内容传递系统110的其他部件可用。可以用于存储所生成的内容部分以及其他内容(例如,由内容提供商104、广告系统130等提供)的内容数据存储区124可以对应于任何持久或基本上持久的数据存储装置,例如硬盘驱动器(HDD)、固态驱动器(SDD)、网络附加存储装置(NAS)、磁带驱动器或其任何组合。
内容服务120还可以被配置为处理对内容部分的请求,如可以从POP 112或客户端计算装置102接收到的那些请求。说明性地,内容管理引擎122可以接收对内容部分的请求,并确定内容部分是否包括在内容数据存储区124内。如果是,则内容管理引擎122可以将所请求的内容部分返回给请求装置。否则,内容管理引擎122可以将后备内容部分返回给请求装置。如下面将更详细描述的,后备内容部分可以对应于所请求的内容部分的不同版本,诸如具有根据与内容流内的其他内容部分不匹配的参数编码的内容的版本,并且可以提供这些后备内容部分,以防止否则将与对不可用内容部分的请求相关联的错误。在一些情况下,内容服务120可以以这样的方式返回后备内容部分,以防止将来对所请求的内容部分的请求通过传递后备内容部分来自动满足。说明性地,内容服务120可以防止POP 112将后备内容部分高速缓存为所请求的内容部分,使得对所请求的内容部分的后续请求也被传递到内容服务120(例如,而不是从POP 112的高速缓存满足这些请求)。
流式内容传递服务还可以包括监视和报告服务118,其包括被配置为处理关于客户端计算装置上的内容的输出的监视信息的一个或多个服务器。说明性地,监视和报告服务118可以记录指出在客户端计算装置102上输出了什么内容的信息。在一些情况下,监视和报告服务118还可以响应于客户端计算装置102上的内容的输出来传输通知。关于监视和报告服务118的通知的传输的进一步细节包括在标题为“OUTPUT TRACKING FOR PROTECTEDCONTENT-STREAM PORTIONS(对于受保护的内容部分的输出跟踪)”的、并且在2016年9月30日与本申请同时提交的美国专利申请号15/282,929中,该专利申请的全部内容在此通过引用并入本文中。
本领域技术人员将理解,流式内容传递服务110可以具有比图1中所示更少或更多的部件。此外,流式内容传递系统110还可以包括各种web服务和/或对等网络配置。因此,图1中对流式内容传递服务110的描绘应被视为说明性的。例如,在一些实施方案中,流式内容传递服务110的部件(诸如清单生成服务114或内容服务120)可以由在托管计算环境中实现的一个或多个虚拟机来执行。托管计算环境可以包括一个或多个快速供应和释放的计算资源,这些计算资源可以包括计算、网络和/或存储装置。托管计算环境也可以称为云计算环境。
图2描绘了可以实现本文描述的内容管理引擎122的服务器200的架构的一个实施方案。图2中描绘的服务器200的一般架构包括可用于实现本公开的各方面的计算机硬件和软件部件的布置。如图所示,服务器200包括处理单元204、网络接口206、计算机可读介质驱动器207、输入/输出装置接口208、显示器202和输入装置224,所有这些都可以通过通信总线彼此进行通信。网络接口206可以提供到一个或多个网络(例如图1的网络106)或计算系统的连接。处理单元204可因此经由网络接收来自其他计算系统或服务的信息和指令。处理单元204还可往返于存储器210进行通信,以及经由输入/输出装置接口208进一步提供可选显示器202的输出信息。输入/输出装置接口220还可以接受来自可选输入装置224(例如键盘、鼠标、数字笔等)的输入。在一些实施方案中,服务器200可以包括比图2中所示的部件更多(或更少)的部件。例如,服务器200的一些实施方案可以省略显示器202和输入装置224,同时通过一个或多个备选通信信道(例如,经由网络接口206)提供输入/输出能力。
存储器210可以包括处理单元204执行以便实现一个或多个实施方案的计算机程序指令。存储器210通常包括随机存取存储器(RAM)、只读存储器(ROM)和/或其他持久存储器或非暂时性存储器。存储器210可以存储操作系统214,操作系统提供计算机程序指令以供处理单元204在服务器200的一般管理和操作中使用。存储器210还可以包括计算机程序指令和其他信息,用于实现本公开的方面。例如,在一个实施方案中,存储器210包括用户界面软件212,其生成用户界面(和/或因此生成指令)以用于在计算装置上显示,例如,经由导航界面,诸如安装在计算装置上的web浏览器。此外,存储器210可以包括一个或多个辅助数据存储区(例如数据存储区220)或与之进行通信,其可以对应于任何持久或基本上持久的数据存储装置,例如硬盘驱动器(HDD)、固态驱动器(SDD)、网络附加存储装置(NAS)、磁带驱动器或其任何组合。
除了用户界面模块212之外,存储器210还可以包括可以由处理单元204执行的内容管理软件216。在一个实施方案中,内容管理软件216实现本公开的各个方面,例如,标识在流式内容传递系统处尚不可用的内容部分,根据期望参数生成那些内容部分,以及管理对内容部分的请求(例如,通过在内容部分可用时提供内容部分,或者在请求的内容部分不可用时提供后备内容部分)。虽然在图2中作为服务器200的一部分示出了内容管理软件216,但是在其他实施方案中,软件的全部或一部分可以由流式内容传递系统110内的替代计算装置(例如清单生成服务114)来实现。
图3A和图3B描绘了用于生成传递给客户端计算装置102的清单以使装置102能够从流式内容传递系统110输出内容流的一组说明性交互,所述内容流包括根据一组匹配参数编码的一组部分。虽然显示为两个图,但是图3A和图3B的交互是按顺序编号的,并且可以结合进行。
交互开始于图3A的(1),客户端计算装置102从流式内容传递系统110的清单生成服务114请求内容。请求可以由客户使用客户端计算装置102(例如通过启动用于观看流式内容的应用程序、web浏览器应用程序等或与其进行交互)来生成。请求可以至少指出客户期望的主要内容,例如电视节目、电影、视频、音频节目等。在一些情况下,请求还可以指出关于客户端计算装置102或利用客户端计算装置102的客户的信息,例如装置102的配置、装置102的位置、装置102或客户在流式内容传递系统110上的帐户。如下所述,流式内容传递系统110和/或广告系统130可以利用该信息来确定要提供给客户端计算装置102的附加内容,例如法律警告、片头片尾演职员名单、题献或广告,响应于来自客户端计算装置102的请求,流式内容传递系统110可以动态编码前述各项附加内容中的任何一项,使得附加内容在带有与内容流中的其他部分(例如,主要内容的部分)匹配的编码的部分被提供。
如上所述,除了客户端计算装置102请求的主要内容之外,流式内容还可以包括一种或多种其他类型的内容,诸如法律警告、片头片尾演职员名单、题献或广告。该内容在此通常将被描述为“附加内容”。在一些情况下,清单生成服务114本身可以确定将哪些附加内容包括在内容流中。例如,清单生成服务114可以将特定法律警告包括在所有内容流内,或者可以维护一组规则,该组规则确定应在流内提供什么附加内容(例如,基于诸如所请求的主要内容、请求的属性、客户端计算装置102的属性等的标准)。在其他情况下,清单生成服务114可以与诸如广告系统130等其他部件进行交互,以确定要将哪些附加内容包括在内容流中。因为可以在生成清单文件时确定附加内容,所以附加内容可以专门针对客户端计算装置102或该装置102的客户。例如,可以将可能与客户相关的特定广告包括在内容流中。出于描述图3A的目的,将假设清单生成服务114被配置为与广告系统130A进行交互,以确定要作为附加内容包括在内容流内的至少一个广告。
因此,在(2)处,清单生成服务114向广告系统130A传输选择要包括在内容流内、并因此要在传递到客户端计算装置102的清单文件内标识的广告的请求。在一个实施方案中,可以根据VAST规范来对请求进行格式化,并且可以包括关于请求的任何信息,诸如关于所请求的主要内容的信息、客户端计算装置102的属性、该装置102的客户的属性,作为响应,在(3)处,广告系统130A返回要包括在内容流中的广告的指示作为附加内容。广告系统130A选择广告的具体交互超出了本公开的范围,因此不再详细讨论。
如上所述,通常可能希望形成内容流的一部分的每个内容部分根据匹配参数(例如,比特率、帧速率、分辨率等)进行编码。因此,在(4)处,清单生成服务114可以与内容服务120进行交互,以确定对应于所选择的广告的内容部分在根据与形成内容流的一部分的其他内容部分(例如,如客户端计算装置102所请求的,对应于主要内容的内容部分)匹配的参数编码的格式下是否可用。在对应于所选择的广告并且根据匹配参数编码的内容部分在内容服务120处可用的情况下,例如在内容数据存储区124内,清单生成服务114可以在内容流的清单包括匹配内容部分的标识符,并将清单返回给客户端计算装置102,以使客户端计算装置102能够输出内容流。然而,出于描述图3A的目的,将假设在内容服务120处不能获得所选广告的匹配内容部分(例如,表示广告的、如根据与要包括在内容流中的其他内容部分的参数匹配的参数编码的内容部分)。因此,在(5)处,清单生成服务114与内容服务器120进行交互,以确定要包括在内容流内的一个或多个后备内容部分。在一个实施方案中,后备内容部分可以表示所选广告的非匹配版本,诸如根据与要包括在内容流中的其他内容部分的编码参数不同的参数编码的所选广告的版本。例如,后备内容部分可以表示所选广告的低清晰度版本,而内容流内的剩余内容部分是高清晰度。在另一个实施方案中,后备内容部分可以表示除所选广告之外的内容,例如替代广告。说明性地,后备内容部分可以表示以与内容流内的其他内容的编码参数匹配的格式编码的替代广告,使得将后备内容部分包括在内容流中不会破坏内容流的回放。例如,在根据“高清晰度”参数对内容流内的主要内容进行格式化的情况下,清单生成服务114可以确定所选择的广告在根据“高清晰度”参数格式化的内容部分中不可用,但是可以有根据“低清晰度”参数格式化的部分的替代广告可用。因此,清单生成服务可以选择对应于替代广告的部分作为后备内容部分。
此后,在(6)处,清单生成服务114生成内容流的清单,标识后备内容部分以及对应于所请求的主要内容的部分。一般而言,清单的生成可以包括标识将要流式传输到客户端计算装置的内容(例如,主要内容和任何附加内容)、该内容的相对顺序(例如,根据由广告系统130A提供的信息,或在清单生成服务114处维护的其他信息确定),以及一组内容部分,当按顺序播放时,它们形成期望的内容流。例如,在清单生成服务114确定在流式传输三十分钟的电视节目之前应流式传输三分钟广告的情况下,清单生成服务114可以生成清单,该清单标识形成三分钟广告的内容部分以及形成三十分钟电视节目的内容部分。因此,参考图3A的交互,清单的生成可以包括创建清单文件,该清单文件包括对应于主要内容的一组内容部分的标识符,以及后备内容部分的标识符。清单还可以包括关于流的元数据,诸如内容部分的格式、每个部分的长度、流的总持续时间等。在一个实施方案中,清单根据APPLETMHTTP实时流传输协议或“HLS”来格式化。在其他实施方案中,可以根据其他流传输协议,例如HTTP上的动态自适应流传输(“DASH”)协议、ADOBETM HTTP动态流(HDS)协议,或者MICROSOFTTM平滑流传输(MSS)协议,来对清单进行格式化。通常,根据这些协议生成的清单包括与基于网络的系统上的实际文件相对应的每个内容部分的标识符。例如,清单可以指出与存储在基于网络的存储装置上的视频文件(如传输流或“ts”文件)相对应的每个内容部分的URI。因此,通过下载和输出这些视频文件,客户端可以流式播放清单中标识的内容。
在一些情况下,在清单内直接放置实际标识符可以为客户端计算装置102提供选择性地修改清单以移除不想要的部分或阻止特定内容部分的下载或输出的机会。因此,清单生成服务114可以在(4)处生成“隐藏”清单,其通过隐藏标识符来标识内容部分,隐藏标识符阻止或禁止客户端计算装置102区分不同类型的内容,如‘423申请(上面通过引用并入)中所述。
图3A的交互在图3B上继续,其中清单生成服务114在(7)处将内容流的清单传输到客户端计算装置102。如下面将描述的(例如,针对图4A和图4B),客户端计算装置102此后可以处理清单以便检索形成内容流的内容部分,并将内容流输出到客户端。
如上所述,通常期望在清单内标识的每个内容部分表示根据匹配参数(例如,比特率、帧速率、分辨率等)编码的内容。在图3A的交互中,假设对应于被选择包括在内容流中的广告的内容部分在根据与内容流的其他部分匹配的参数编码的格式下可用。虽然清单生成服务114可以操作以在这种情况下选择后备内容部分以包括在流中,但是清单生成服务114可以被配置为响应于对内容流的请求,通过指示内容服务120根据匹配参数对所选广告进行编码,来尝试限制进一步的出现。以这种方式,可以使根据匹配参数编码的表示所选广告的内容部分在内容服务120处可用于包括在其他内容流中,例如替代客户端计算装置102所请求的相同主要内容,或者根据与参考图3A讨论的内容流中表示的主要内容相同的参数格式化的其他主要内容。
因此,在(8)处,清单生成服务114向内容服务120传输生成表示先前选择包括在内容流内的广告的内容部分的请求,该内容部分根据与内容流内的其他内容部分匹配的参数进行编码。
在(9)处,内容服务120从广告系统130A检索附加内容。说明性地,附加内容可以由广告系统130A以使得内容服务120能够根据各种不同参数对附加内容进行重新编码或转码的格式来提供,以匹配给定内容流的编码参数。例如,附加内容可以以“原始”或未压缩格式提供,或者以足够高质量的压缩格式提供,以允许使用选择的参数进行重新编码以匹配内容流内的其他内容部分(例如,作为一个“夹层”文件)。在一个实施方案中,附加内容的位置可以由广告系统130A识别(例如,在VAST响应内),以使内容服务器120能够检索附加内容。
此后,在(10)处,内容服务120生成表示所选广告的内容部分,该内容部分根据与内容流中包括的其他内容部分匹配的参数进行编码。例如,在内容流包括根据一组给定参数(例如,特定比特率、帧速率或分辨率、与特定编码参数相关联的预定义配置文件等)编码的一组内容部分的情况下,内容服务120可以处理从广告系统130接收的附加内容,以便生成清单文件中要求的内容部分。说明性地,内容管理引擎可以与内容编码器池进行交互,例如在上面通过引用并入的‘347申请中描述的,以指示内容编码器池用适当的参数对附加内容进行编码。此后,在(11)处,内容服务120可以将编码的匹配内容部分存储在内容数据存储区124内,以便稍后由POP 112或客户端计算装置102检索。因此,通过图3A和图3B的交互,在广告或其他附加内容被选择包括在内容流中,但是还没有利用与内容流的其他部分匹配的参数编码的形式的这种附加内容可用的情况下,可以将后备内容部分包括在内容流中以使内容流能够回放。此外,响应于对内容流的请求,可以利用与内容流匹配的参数,将附加内容重新编码为一组内容部分。此后,由该组内容部分表示的重新编码的附加内容可以包括在清单文件中,以满足内容流的后续请求。
虽然上面按顺序描述了图3A和图3B的交互,但是可以预期,一些或所有交互可以重复发生,并且这些交互可以至少部分并行地发生。例如,清单生成服务114可以并行地或同时将清单传输到POP 112并请求创建清单内的内容部分。作为另一示例,流式内容传递系统110可以被配置为传递给定流式内容项的多个清单,或者随时间将单个清单作为多次传输进行传递。因此,在新清单或清单的一部分被传输到客户端计算装置102的每个时间点之前,清单生成服务114都可以确定要在新清单或清单的一部分内标识的新的内容部分组。在一些情况下,新的内容部分组可以基于监视到的关于流式内容的信息(例如,如从监视服务118获得的)而变化。例如,在监视信息指出客户端计算装置102未输出一部分(或者可能地,客户端计算装置102从未请求该部分)的情况下,清单生成服务114可以在新的清单中或清单的一部分中标识该部分(或另一附加内容部分)。因此,在用户“跳过”受某一部分(例如,广告)以试图不观看该部分的情况下,可以在清单中标识新广告或受保护部分。在一些情况下,新的清单可以仅标识附加内容(例如,而不标识其他内容,例如主要内容),直到客户端计算装置102输出该内容,此时可以提供其他清单(或清单的小部分),包括其他内容。
此外,尽管图3A和图3B的交互是针对内容部分的单个系列描述的,但是本公开的各实施方案可以允许使用内容部分的不同系列,每个系列都形成不同版本的流式内容。例如,第一系列内容部分可以以第一质量等级呈现流式内容,第二系列以第二质量等级呈现等等。可以在提供给客户端计算装置102的单个清单或多个清单中标识各种系列。在一些情况下,客户端计算装置102可以在输出不同系列的内容部分之间切换以考虑装置102的状态(例如,考虑装置102和流式内容传递系统110之间的慢速通信)。因此,在一些情况下,内容服务120可以根据各种不同参数来对附加内容进行重新编码,以满足在清单文件中标识的内容部分。
虽然上述交互示出了在选择的广告在与内容流内的其他部分匹配的格式下可用的情况下识别清单文件中的后备内容部分,但是替代实现方式是可能的并且在本文中已经被考虑到。例如,清单生成服务114在某些情况下可以识别匹配的内容部分以包括在清单内,而不管这些匹配的内容部分在清单生成时是否在流式内容传递系统110处实际可用。例如,清单生成服务114可以在清单内包括用于针对给定内容部分标识要包括在该部分内的内容(例如,广告的一部分)的信息,以及内容的期望编码参数,而无需首先验证适当编码的内容在内容服务120处是否可用。在一些情况下,标识信息可以包括文件标识符或统一引用标识符,包括期望内容和编码参数(例如,http://scds.tld/ad1_segment1_hd.ts”)。此后,清单生成服务114可以向内容服务120传输生成在清单内标识但在流式内容传递系统110处(例如,在内容数据存储区124内)尚未可用的任何内容部分的请求。在一个实施方案中,清单生成服务114可以将完整清单传输到内容服务120,并且内容管理引擎122可以识别清单内引用,但内容数据存储区124处尚未可用的任何内容部分。在另一个实施方案中,清单生成服务114可以识别清单内引用,但内容数据存储区124处尚未可用的任何内容部分。说明性地,识别清单内引用,但内容数据存储区124处尚未可用的内容部分可以包括确定清单中引用的基础内容的特定部分(例如,特定广告、警告、免责声明等)在内容数据存储区124中是否存在用匹配清单内引用的其他内容部分的参数编码的版本可用。在一个实施方案中,识别清单内引用,但内容数据存储区124处尚未可用的内容部分可包括比较清单文件内引用的文件标识符(例如,URI)和内容数据存储区124内包括的对应标识符。此后,内容服务120可以开始对清单文件中标识的内容部分进行编码,使得如果在对内容部分的请求之前编码完成,则可以将新编码的内容部分传输到客户端计算装置102。在编码未在对内容部分的请求之前完成的情况下,可以将后备内容部分传输到请求客户端计算装置102。
将参考图4A来描述用于使客户端装置102能够基于包括可能尚未在内容服务102处可用的内容部分的清单文件来查看流式内容的说明性交互。具体而言,图4A描绘了用于响应于确定所请求的内容部分在内容服务120处不可用而提供后备内容部分的一组说明性交互,而图4B描绘了用于提供所请求的内容部分(例如在所请求的内容部分的请求驱动的编码已经完成的情况下)的一组说明性交互。
图4A的交互开始于(1),其中客户端计算装置102使用清单内包括的部分的标识符来从流式内容传递系统110的POP 112请求内容部分。出于描述图4A的目的,将假设所请求的内容部分对应于附加内容(例如,免责声明或广告),其已被编码以匹配清单内的其他内容部分(例如,主要内容)的编码参数。如上所述,可以通过引用内容部分来生成清单文件,而不管内容部分在流式内容传递服务110处是否实际可用。因此,图4A和图4B的交互不假设所请求的匹配内容部分在流式内容传递服务110处实际存在。
在一个实施方案中,请求通过使用预期在流式内容传递服务110处可用的内容部分的文件名来识别所请求的内容部分(例如,根据请求驱动的编码生成)。在另一实施方案中,请求通过使用根据上面通过引用并入的‘423申请的实施方案生成的隐藏标识符来识别所请求的内容部分,隐藏标识符对应于预期在流式内容传递系统110处可用的内容部分的实际标识符。请求可以由客户端计算装置102(例如,通过web浏览器或其他应用程序)基于处理先前从流式内容传递系统110获得的清单来自动生成。在接收到请求时,POP 112在(2)处基于标识符确定所请求的部分。说明性地,在未使用隐藏标识符的情况下,POP 112可以直接根据客户端计算装置102提供的标识符(例如,所请求部分的实际标识符)来识别所请求的内容部分。在使用通过用加密密钥加密实际标识符而生成的隐藏标识符的情况下,POP112可以利用该密钥来解密隐藏标识符,从而确定所请求部分的实际标识符。在使用通过其他转换(例如,随机分配)生成的隐藏标识符的情况下,POP 112可以利用清单生成系统114提供的信息,诸如隐藏标识符到实际标识符的映射,以确定哪个实际标识符对应于所请求的那一部分。
如上所述,POP 112可以用于高速缓存客户端计算装置102请求的至少一些内容部分,使得相同或不同的客户端计算装置102对内容部分的第二或后续请求可以通过提供包括在高速缓存内的内容部分的副本来服务。因此,如果POP 112最近已经接收到对匹配内容部分的请求,则POP 112可以将匹配内容部分直接返回到客户端计算装置102。然而,如果最近没有客户端计算装置102请求匹配内容部分(如果匹配内容部分是动态生成的,以匹配清单文件中标识的其他部分的参数,则可能是这种情况),则POP 112可以在(3)确定匹配的内容部分未被高速缓存。这样,POP 112在(4)处从内容服务120请求匹配的内容部分。
在(5)处,内容服务120(例如,经由内容管理引擎122)确定所请求的匹配内容部分是否在内容数据存储区124内可用。说明性地,假设所请求的匹配内容部分是与上面针对图3B的交互(10)讨论的相同的匹配内容部分。此外,还假设内容服务120在完成匹配内容部分的生成之前获得对该匹配内容部分的请求,这可能例如由于生成匹配内容部分所需的计算时间而发生。在这种情况下,一个选项可以是内容服务120向POP 112返回错误,例如“未找到文件”错误,该POP又可以将错误传输到客户端计算装置102。如本领域技术人员所理解的,这种选择可能不是可取的。因此,在(6)处,在所请求的匹配内容部分不可用的情况下,内容服务120不是返回错误,而可以改为识别后备内容部分。如上面针对图3A和图3B所讨论的,后备内容部分在某些情况下可以包括与所请求的内容部分相同的基础内容,但是它们根据不同的参数进行编码。例如,后备内容部分可以包括以较低分辨率、比特率或帧速率编码的相同音频、视频或文本内容。在其他情况下,后备内容部分可以表示与所请求的内容部分不同、但是根据与匹配内容部分相同的参数格式化的基础内容,例如不同广告。虽然与使用匹配内容部分相比,使用后备部分可能是不合需要的,但是使用后备部分在许多情况下可能能够实现请求驱动的编码,同时在请求驱动的编码无法及时完成的情况下仍提供可接受的内容流传递。此外,对于通常访问的内容流,后备部分的使用可能相对较少,因为对匹配内容部分的后续请求可能会在内容服务120已经生成了这样的匹配内容部分之后出现。在一些情况下,内容提供商(例如,主要内容或附加内容的提供商)可以会指定内容服务120可以选择后备内容应遵循的标准。例如,广告系统130可以在VAST响应内包括在主要选择内容不可用时选择后备内容的标准。作为非限制性示例,这样的标准可以包括后备内容的编码参数、后备内容的主题、与后备内容相关联的标签,或者后备内容的提供商。
在后备内容部分表示与所请求的内容部分相同、但是根据不同参数编码的基础内容的情况下,这样的后备内容部分可以被格式化,使得每个潜在内容部分的后备内容部分都可以被存储,存储在流式内容传递系统110处或存储在外部服务处。例如,后备内容部分可以以相对低的比特率或分辨率编码,使得每个后备内容部分的存储都在内容数据存储区124中需要相对小的存储空间。作为另一示例,后备内容部分可以被托管在流式内容传递系统110外部,诸如在后备内容部分的基础内容(例如,附加内容)的提供商的系统处,因此不需要内容数据存储区124的存储空间。
因此,在(7)处,内容服务120可以将后备内容部分返回到POP 112。在后备内容部分112存储在内容数据存储区内的情况下,内容服务120可以直接返回后备内容部分。在后备内容部分112存储在外部数据存储区(例如,后备内容部分的基础内容的提供商的数据存储区(例如,广告系统130的数据存储区))内的情况下,内容服务120可以向POP 112返回对后备内容部分的位置的引用,使得POP 112然后可以从该位置检索后备内容部分。
在一些实施方案中,可以形成由内容服务120提供的响应,以禁止在POP 112处对后备内容部分进行不正确的高速缓存。回想一下,例如,响应于对匹配内容部分的请求,后备内容部分被返回到POP 112。这样,POP 112的配置可以使POP 112将后备内容部分高速缓存为匹配内容部分。这可以导致POP 112使用后备内容部分来服务对匹配内容部分的后续请求,而不管实际匹配内容部分当时是否在内容服务120处可用。为了解决该问题,在一个实施方案中,内容服务120可以为后备内容部分规定小的或零生存时间或“TTL”值,向POP112表明后备内容部分应被认为立即或基本上立即(例如,在几毫秒或几秒内)无效。因此,假设POP 112适当地识别TTL值,可以预期后备内容部分不被高速缓存在POP 112处,并且对匹配内容部分的进一步请求可能会导致图4A或图4B的交互的重复。
在一些实施方案中,内容服务120可以通过利用重定向来进一步解决POP 112处的潜在高速缓存的问题。例如,不是响应于对匹配内容部分的请求而直接返回后备内容部分,内容服务120可以返回到后备内容部分的URI的重定向。例如,使用重定向可能是有利的,以允许在POP 112处高速缓存后备内容部分。例如,在POP 112检索到与后备内容部分相关联的URI的重定向的情况下,POP 112可以通过与URI相关联的后备内容部分的本地高速缓存版本来满足请求。说明性地,重定向可以与低TTL值或零TTL值相关联,使得POP 112不太可能认为重定向对于访问匹配内容部分的后续请求而言是有效的。
在(9)处,POP 112可以将检索到的后备内容部分返回到客户端计算装置102,以便满足对匹配内容部分的请求。然后,客户端计算装置102可以在(10)输出后备内容部分作为内容流的一部分,从而观看在后备内容部分内编码的内容。
参考图4B,描绘了可以替代图4A的那些交互发生的一组交互。具体而言,图4A的交互是在所请求的匹配内容部分在内容服务120处不可用(例如,因为匹配内容部分仍在由内容服务120生成)的情况下发生的,而图4B描绘了所请求的匹配内容部分在内容服务120处可用的情况。例如,图4B的交互可能会发生在这样的情况下:所请求的匹配内容部分出现在清单文件内标识的一系列内容部分的末尾附近,使得在清单文件传输到客户端计算装置与客户端计算装置请求匹配内容部分之间产生的时间量足以使内容服务120能够生成匹配内容部分。这样,图4B的交互(1)至(4)基本上类似于图4A的相应交互,此处将不再描述。然而,与图4B的交互不同,在(5)处,内容服务120确定所请求的匹配内容部分在内容服务120处可用(例如,在响应于引用匹配内容部分的清单文件的生成而生成之后)。因此,在(6)处,匹配内容部分被返回到POP 112。说明性地,匹配内容部分可以被格式化为具有鼓励POP 112高速缓存匹配内容部分的元数据,或者与所述元数据相关联,使得对匹配内容部分的后续请求(例如,由相同或不同的客户端计算装置102发出)可以由POP 112从高速缓存的副本来服务。例如,内容服务120可以在返回匹配内容部分时将匹配内容部分与相对长的(例如,大约几分钟或几小时)TTL值相关联。
此后,在(7)处,匹配内容部分可以从POP 112返回到客户端计算装置102。然后,客户端计算装置102可以在(8)输出匹配内容部分。因此,客户端计算装置102能够输出由根据匹配参数编码的一组内容部分形成的内容流,而不需要流式内容传递服务102维护预先生成的一组匹配内容部分。相反,响应于对内容流的请求,可以动态地编码至少一些内容部分(例如,对应于包括在内容流中以伴随主要内容的附加内容)。在对相应内容部分的请求之前完成这种动态编码的情况下,可以将那些内容部分返回给客户端计算装置。此外,可以在POP 112或内容服务器120处高速缓存那些内容部分,使得可以基于先前生成的内容部分来满足对包括内容部分的内容流的后续请求。然而,在客户端计算装置102发出请求的时间动态编码的内容部分不可用的情况下,客户端计算装置102仍然可以利用后备内容部分输出内容流。
虽然图4A和图4B的交互是参考来自客户端计算装置102对对应于清单文件中包括的标识符的特定内容部分的请求来描述的,但是本公开的一些实施方案可以利用不直接对应于任何给定内容部分的标识符。例如,在要将附加内容包括在内容流中的情况下,清单生成服务114可以被配置为将这种附加内容的“占位符”标识符包括在清单文件内,而不必一定确定要包括哪个附加内容。说明性地,占位符标识符可以引用不与单独内容部分相关联的内容服务120的URI(例如,“http://contentservice.tld/placeholder.ts”)。在接收到对应于占位符标识符的部分的请求时,内容服务器120可以响应于请求而动态地确定要返回的内容部分。说明性地,可以基于内容服务器120处可用的内容部分来确定内容部分,这些内容部分的参数匹配由请求装置输出的流的其他部分。在一些情况下,可以例如通过VAST规范,基于与广告系统130的交互来确定内容部分。
参考图5,将描述用于提供包括通过请求驱动的编码来创建的部分的流式内容的一个说明性例程500。例程500可以例如由图1的内容传递系统110执行(例如,利用内容服务120)。例程500开始于框502,其中内容传递系统110从客户端计算装置102获得对流式内容的请求。请求可以由客户使用客户端计算装置102(例如通过启动用于观看流式内容的应用程序、web浏览器应用程序等或与其进行交互)来生成。请求可以至少指出客户期望的主要内容,例如电视节目、电影、视频、音频节目等。在一些情况下,请求还可以指出关于客户端计算装置102或利用客户端计算装置102的客户的信息,例如装置102的配置、装置102的位置、装置102或客户在流式内容传递系统110上的帐户。
在框504处,流式内容传递服务110选择要包括在内容流中的附加内容作为一组匹配的内容部分,其中编码参数与流内的其他内容部分(例如,表示主要内容的那些部分)的编码参数匹配。在一些情况下,流式内容传递系统110可以通过与第三方外部系统(例如广告系统130)的交互来确定另外的内容。此外,流式内容传递服务110可以基于关于客户端计算装置102的信息来确定附加内容,例如通过将关于客户端计算装置102的信息传递给广告系统130以用于广告选择算法。
在框505处,流式内容传递服务110生成内容流的清单文件,引用共同表示内容流的一系列内容部分。该系列内容部分可以包括对应于主要内容的第一组内容部分,以及对应于附加内容的第二组内容部分。第一组内容部分可以存储在流式内容传递服务110处,并且表示根据第一组参数(例如,比特率、帧速率、分辨率等)编码的主要内容。第二组内容部分可以表示根据一组匹配的参数(例如,相同或相似的比特率、帧速率、分辨率等)编码的附加内容,使得第二组内容部分的输出不太可能在客户端计算装置上导致技术困难或客户的破坏性消费体验。出于图5的目的,该第二组内容部分将被称为“匹配内容部分”。然而,尽管在清单文件中被引用,但是这些匹配内容部分可能尚未在流式内容传递服务110上存在,因为预生成每个可能的匹配内容部分在计算上可能是令人难以承受的。
因此,在框508处,流式内容传递服务110可以开始生成匹配的内容部分。说明性地,流式内容传递服务110可以获得对应于匹配的内容部分的附加内容的副本,其适合于利用与内容流的其他部分匹配的参数进行重新编码。该副本可以包括未压缩或高分辨率的副本,例如“原始”文件、“主”副本或“夹层”文件,并且可以存储在流式内容传递服务110处或从另一系统(例如附加内容的提供商的系统)检索。此后,流式内容传递服务110可以将副本重新编码为经格式化以包括在内容流中的一组部分。例如,可以基于清单文件中包括的信息,例如部分的数量和持续时间以及用于对部分进行编码的编码参数,来确定这些部分。在一些情况下,流式内容传递服务110可以与其他服务(例如上面通过引用并入的‘347申请的内容流式传输系统)一起工作,以对匹配的内容部分进行编码。
另外,在框510(其可以在框508的实现之前或同时发生,并且因此在完成匹配内容的生成之前)处,清单文件被传输到与对内容流的请求相关联的客户端计算装置。
在框512处,接收对如清单文件中所引用的匹配内容部分的请求。说明性地,可以基于由客户端计算装置传输到POP的请求,从POP接收请求。反过来,来自客户端计算装置的请求也可以基于通过回放应用程序(例如web浏览器、视频播放器、音频播放器等)来处理清单文件。在其他实施方案中,可以直接从客户端计算装置接收请求。
在框514处,流式内容传递服务110确定所请求的匹配内容部分在流式内容传递服务110处是否可用。在完成匹配内容部分的生成(例如,如框508开始)的情况下,框518可以评估为真,并且例程500可以进行到框520,其中流式内容传递服务110将所请求的匹配内容部分返回到请求装置(例如,POP或客户端计算装置)。在一些情况下,流式内容传递服务110可以修改所请求的匹配内容部分,或者将所请求的匹配内容部分与元数据相关联,以便于匹配内容部分的高速缓存。例如,流式内容传递服务110可以为匹配的内容部分规定相对长的(例如,大约几分钟或几小时)TTL值,使得POP可能高速缓存匹配的内容部分,并且使得对匹配内容部分的后续请求可以由POP基于高速缓存的数据来满足。此后,例程500可以在框526处结束。
在所请求的匹配内容部分在流式内容传递服务110处不可用的情况下,例如在匹配内容部分的生成尚未完成的情况下,框518可以评估为假。例程500因此进行到框522,其中识别后备内容部分。后备内容部分可以表示根据不同参数编码的,与所请求内容部分相同的基础内容(例如,相同的基础音频、视频或文本)。例如,后备内容部分可以表示所请求的匹配内容部分的低质量或低分辨率副本。在一个实施方案中,流式内容传递服务110可以为可能包括在内容流中的每个附加内容维护一组后备内容部分。因为这些后备内容部分可以在许多不同的内容流中使用(例如,不管内容流的编码参数如何),并且在一些情况下可能是相对低质量的,所以在流式内容传递服务110处存储预先生成的后备内容部分可能在计算上不是令人难以承受的。在其他实施方案中,后备内容部分可以存储在外部系统中,例如基础内容的提供商的系统。因此,流式内容传递服务110可以识别这种外部系统上的后备内容部分。
在框524处,流式内容传递服务110将后备内容部分返回到请求装置(例如,POP或客户端计算装置)。在一些情况下,流式内容传递服务110可以直接返回后备内容部分。在其他情况下,流式内容传递服务110可以返回对后备内容部分的引用(例如,HTTP 3xx重定向),以使请求装置能够检索后备内容部分。在任一情况下,返回的信息可以由流式内容传递服务110修改以禁止高速缓存该信息或将来依赖于该信息。例如,流式内容传递服务110可以将返回的信息(例如,后备内容部分或对后备内容部分的引用)与零或低TTL值相关联,使得可以预期对匹配内容部分的后续请求再次被传输到流式内容传递服务110(而不是基于在框524处返回的信息的高速缓存版本来满足)。此后,例程500可以在框526处结束。
虽然顺序地描述例程600,但是例程600的各种框的实现可以至少部分地同时发生,并且可以由流式内容传递系统110内的不同部件来实现。例如,流式内容传递服务110可以利用清单生成服务来实现例程600的某一部分(例如,框502、504、506和510),并使用内容服务来实现例程600的其他框(例如,框508和512-524)。例程600的功能可以进一步部分地或全部地在POP上实现(例如,在内容传递网络内)。此外,虽然针对形成给定内容流的内容部分的单个系列说明性地描述例程600,但是一些实施方案可以提供内容部分的多个系列,每个系列都形成内容流的一个版本,并且这些系列可以在在客户端计算装置上输出期间根据需要进行组合。例如,内容部分的每个系列都可以形成不同质量等级(例如,不同的比特率或分辨率)的内容流的不同版本,并且客户端计算装置可以根据客户端计算装置的计算资源(例如,网络带宽、处理能力、存储器等)在不同的系列之间进行选择。在这样的情况下,可以在清单文件中标识每个系列,并且每个系列都包括在流式内容传递服务110处可能尚不可用的内容部分。例如,清单文件可以引用内容部分的标准清晰度、高清晰度和超高清版本,而不管这些版本是否在流式内容传递服务110处可用。流式内容传递服务110又可以在生成清单文件时开始创建这样的版本,使得它们可以在生成之后被提供给客户端计算装置。在所请求的版本尚不可用的情况下,流式内容传递服务110可以提供在流式内容传递服务110处预先生成的默认后备版本。
上述所有方法和过程可以通过由一个或多个计算机或处理器执行的软件代码模块来体现并且完全自动化。代码模块可存储在任何类型的非暂时性计算机可读介质或其他计算机存储装置中。所述方法中的一些或所有可以替代地以专用计算机硬件来体现。
除非另外特别说明,否则诸如“能够”、“可以”、“可能”或“也许”等的条件语言在上下文中通常应理解为用于表示:某些实施方案包括某些特征、元件和/或步骤,但是其他实施方案不包括这些特征、元件和/或步骤。因此,这样的条件语言通常不意图以任何方式暗指一个或多个实施方案需要特征、元件和/或步骤,或者一个或多个实施方案有必要包括用于在具有或不具有用户输入或提示的情况下决定这些特征、元件和/或步骤是否包括在任何特定实施方案中或将在其中执行。
除非另外特别说明,否则诸如短语“X、Y或Z中的至少一个”的析取语言在上下文中通常应理解为用于呈现项目、项等可以是X、Y或Z或它们的任意组合(例如,X、Y和/或Z)。因此,这种析取语言通常不旨在且不应暗示某些实施方案需要X中的至少一个、Y中的至少一个或Z中的至少一个各自都存在。
除非以其他方式明确说明,否则诸如“一个”或“一种”的冠词一般应被解释为包括一个或多个所描述物品。因此,诸如“被配置来...的装置”的短语意图包括一个或多个所列举装置。此类一个或多个所列举装置还可共同被配置来执行所陈述表述。例如,“被配置来执行表述A、B和C的处理器”可包括被配置来执行表述A的第一处理器,与被配置来执行表述B和C的第二处理器共同工作。
在本文中所述和/或附图中示出的任何例程描述、元件或方框应理解成潜在地表示包括用于实施例程中的特定逻辑功能或元件的一个或多个可执行指令的模块、片段或代码部分。替代实现方式包括在本文中所述实施方案的范围内,其中如本领域中的技术人员所理解的那样,根据所涉及的功能,元件或功能可删除、不按照所示出或描述的顺序执行,包括基本上同时执行或逆序执行。
依据以下条款可更好地理解前述内容:
1.一种用于提供流式内容的系统,所述系统包括:
数据存储区,其包括对应于主要内容的第一组内容部分,其中所述第一组内容部分是根据一个或多个第一参数编码的;以及
一个或多个计算装置,其配置有计算机可执行指令,所述计算机可执行指令在被执行时使所述计算装置:
获取来自客户端计算装置的提供包括所述主要内容的内容流的请求;
确定要包括在所述内容流中的附加内容;
确定所述数据存储区不包括根据所述一个或多个第一参数编码的表示所述附加内容的第二组内容部分;
选择用于包括在所述内容流中的后备内容,其中所述数据存储区还包括根据所述一个或多个第一参数编码的表示所述后备内容的第三组内容部分;
生成所述内容流的清单,其中所述清单包括所述第一组内容部分内的相应内容部分的标识符和所述第三组内容部分内的相应内容部分的标识符;
将所述清单传输到所述客户端计算装置;以及
开始根据所述一个或多个第一参数对所述附加内容进行编码,以产生根据所述第一组参数编码的表示所述附加内容的第二组内容部分。
2.如条款1所述的系统,其中所述主要内容是音频、视频或文本内容中的至少一者。
3.如条款1所述的系统,其中所述附加内容是免责声明、警告、片头片尾演职员名单、题献或广告中的至少一者。
4.如条款1所述的系统,其中所述一个或多个计算装置还被配置有所述计算机可执行指令以:
获取提供包括所述主要内容的第二内容流的第二请求;
响应于所述第二请求:
确定所述附加内容将包括在所述第二内容流中;
确定所述数据存储区包括根据所述一个或多个第一参数编码的表示所述附加内容的所述第二组内容部分;
生成所述第二内容流的第二清单,其中所述第二清单包括所述第一组内容部分内的相应内容部分的标识符和所述第二内容部分内的相应内容部分的标识符;
将所述第二清单传输到所述客户端计算装置。
5.如条款1所述的系统,其中所述一个或多个计算装置还被配置有所述计算机可执行指令以:
接收对所述第三组内容部分的内容部分的请求;以及
响应于所述请求,传输所述内容部分;
其中所述内容部分被传输到内容分发网络内的客户端计算装置或存在点(POP)中的至少一者。
6.如条款1所述的系统,其中所述一个或多个计算装置还被配置有所述计算机可执行指令以:
向与所述附加内容的所述提供商相关联的系统传输选择用于在所述内容流中表示的所述附加内容的请求;以及
获取标识所述内容流中的所述附加内容表示的响应。
7.一种由流式内容传递系统实现的计算机实现的方法,所述计算机实现的方法包括:
获取来自客户端计算装置的提供内容流的请求;
确定所述内容流的一个或多个编码参数;
选择要包括在所述内容流中的内容;
确定所述内容在根据所述一个或多个编码参数编码的格式下不可用;
开始根据所述一个或多个编码参数对所述内容进行编码;
选择后备内容以包括在所述内容流中;
生成所述内容流的清单,其中所述清单包括对应于所述后备内容的标识符;以及
将所述清单传输到所述客户端计算装置。
8.如条款7所述的计算机实现的方法,其中选择要包括在所述内容流中的所述内容包括:
向与所述内容的所述提供商相关联的系统传输选择用于在所述内容流中表示的所述内容的请求;以及
获取标识用于在所述内容流中表示的所述内容的响应。
9如条款8所述的计算机实现的方法,其中根据所述视频广告服务模板(VAST)规范来格式化所述响应。
10.如条款7所述的计算机实现的方法,其中所述一个或多个编码参数包括要作为所述内容流的一部分输出的内容部分的比特率、音频归一化值、帧速率或分辨率中的至少一者的值。
11.如条款7所述的计算机实现的方法,其中所述清单还包括对应于要作为所述内容流的一部分输出的主要内容的标识符。
12.如条款7所述的计算机实现的方法还包括:
接收对所述内容流的第二请求;
确定所述内容在根据所述一个或多个编码参数编码的所述格式下可用;以及
生成所述内容流的第二清单,其中所述第二清单包括对应于如根据所述一个或多个编码参数编码的所述内容的标识符;以及
将所述清单传输到所述客户端计算装置。
13.如条款7所述的计算机实现的方法,其中所述后备内容对应于根据一个或多个替代编码参数编码的所述内容的替代或所述内容的表示中的至少一者。
14.包括计算机可执行指令的非暂时性计算机可读介质,当由流式内容传递系统实现时,指令使得所述流式内容传递系统:
获取来自客户端计算装置的提供内容流的请求;
生成所述内容流的清单文件,其中所述清单文件包括要作为所述内容流的一部分输出的内容部分的标识符,并且其中要作为所述内容流的一部分输出的至少一个内容部分尚未在所述流式内容传递系统可用;
将所述清单文件传输到所述客户端计算装置;以及
开始对内容文件进行编码,以产生在所述清单文件中标识的所述至少一个内容部分;
接收对所述至少一个内容部分的请求;
确定所述清单文件中标识的所述至少一个内容部分不可用于传输到所述客户端计算装置;
选择后备内容部分;以及
传输所述后备内容部分或标识所述后备内容部分的信息。
15.如条款14所述的非暂时性计算机可读介质,其中根据超文本传输协议(HTTP)实时流传输协议(HLS)、HTTP上的动态自适应流传输(DASH)、MICROSOFT平滑流传输(MSS)协议或HTTP动态流(HDS)协议中的至少一者来格式化所述内容流。
16.如条款14所述的非暂时性计算机可读介质,其中所述计算机可执行指令还使得所述流式内容传递服务为所述至少一个内容部分选择一个或多个参数,并且其中所述计算机可执行指令使得所述流式内容传递服务开始根据所述一个或多个参数来对所述内容文件进行编码。
17.如条款14所述的非暂时性计算机可读介质,其中至少部分地基于要作为所述内容流的一部分输出的其他内容部分的一个或多个参数来选择用于所述至少一个内容部分的所述一个或多个参数。
18.如条款14所述的非暂时性计算机可读介质,其中所述计算机可执行指令还使得所述流式内容传递服务选择对应于所述内容文件内的内容的默认表示的后备内容部分。
19.如条款14所述的非暂时性计算机可读介质,其中标识所述后备内容部分的所述信息是到所述后备内容部分的位置的重定向。
20.如条款19所述的非暂时性计算机可读介质,其中所述重定向与选择的TTL值相关联以阻止所述重定向的高速缓存。
应强调的是,可以对上述实施方案作出许多变化和修改,其中的元件将被理解为是其他可接受的示例。本文中所有这些修改和变化都旨在包括在本公开的范围内并且由以下权利要求保护。

Claims (15)

1.一种用于提供流式内容的系统,所述系统包括:
数据存储区,其包括对应于主要内容的第一组内容部分,其中所述第一组内容部分是根据一个或多个第一参数编码的;以及
一个或多个计算装置,其配置有计算机可执行指令,所述计算机可执行指令在被执行时使所述计算装置:
获取来自客户端计算装置的提供包括所述主要内容的内容流的请求;
确定要包括在所述内容流中的附加内容;
确定所述数据存储区不包括根据所述一个或多个第一参数编码的表示所述附加内容的第二组内容部分;
选择用于包括在所述内容流中的后备内容,其中所述数据存储区还包括根据所述一个或多个第一参数编码的表示所述后备内容的第三组内容部分;
生成所述内容流的清单,其中所述清单包括所述第一组内容部分内的相应内容部分的标识符和所述第三组内容部分内的相应内容部分的标识符;
将所述清单传输到所述客户端计算装置;以及
开始根据所述一个或多个第一参数对所述附加内容进行编码,以产生根据所述第一组参数编码的表示所述附加内容的第二组内容部分。
2.如权利要求1所述的系统,其中所述主要内容是音频、视频或文本内容中的至少一者。
3.如权利要求1所述的系统,其中所述附加内容是免责声明、警告、片头片尾演职员名单、题献或广告中的至少一者。
4.如权利要求1所述的系统,其中所述一个或多个计算装置还被配置有所述计算机可执行指令以:
获取提供包括所述主要内容的第二内容流的第二请求;
响应于所述第二请求:
确定所述附加内容将包括在所述第二内容流中;
确定所述数据存储区包括根据所述一个或多个第一参数编码的表示所述附加内容的所述第二组内容部分;
生成所述第二内容流的第二清单,其中所述第二清单包括所述第一组内容部分内的相应内容部分的标识符和所述第二内容部分内的相应内容部分的标识符;
将所述第二清单传输到所述客户端计算装置。
5.如权利要求1所述的系统,其中所述一个或多个计算装置还被配置有所述计算机可执行指令以:
接收对所述第三组内容部分的内容部分的请求;以及
响应于所述请求,传输所述内容部分;
其中所述内容部分被传输到内容分发网络内的客户端计算装置或存在点(POP)中的至少一者。
6.如权利要求1所述的系统,其中所述一个或多个计算装置还被配置有所述计算机可执行指令以:
向与所述附加内容的所述提供商相关联的系统传输选择用于在所述内容流中表示的所述附加内容的请求;以及
获取标识所述内容流中的所述附加内容表示的响应。
7.一种由流式内容传递系统实现的计算机实现的方法,所述计算机实现的方法包括:
获取来自客户端计算装置的提供内容流的请求;
确定所述内容流的一个或多个编码参数;
选择要包括在所述内容流中的内容;
确定所述内容在根据所述一个或多个编码参数编码的格式下不可用;
开始根据所述一个或多个编码参数对所述内容进行编码;
选择后备内容以包括在所述内容流中;
生成所述内容流的清单,其中所述清单包括对应于所述后备内容的标识符;以及
将所述清单传输到所述客户端计算装置。
8.如权利要求7所述的计算机实现的方法,其中选择要包括在所述内容流中的所述内容包括:
向与所述内容的所述提供商相关联的系统传输选择用于在所述内容流中表示的所述内容的请求;以及
获取标识用于在所述内容流中表示的所述内容的响应。
9.如权利要求8所述的计算机实现的方法,其中根据视频广告服务模板(VAST)规范来格式化所述响应。
10.如权利要求7所述的计算机实现的方法,其中所述一个或多个编码参数包括要作为所述内容流的一部分输出的内容部分的比特率、音频归一化值、帧速率或分辨率中的至少一者的值。
11.如权利要求7所述的计算机实现的方法,其中所述清单还包括对应于要作为所述内容流的一部分输出的主要内容的标识符。
12.如权利要求7所述的计算机实现的方法,其还包括:
接收对所述内容流的第二请求;
确定所述内容在根据所述一个或多个编码参数编码的所述格式下可用;以及
生成所述内容流的第二清单,其中所述第二清单包括对应于如根据所述一个或多个编码参数编码的所述内容的标识符;以及
将所述清单传输到所述客户端计算装置。
13.如权利要求7所述的计算机实现的方法,其中所述后备内容对应于根据一个或多个替代编码参数编码的所述内容的替代或所述内容的表示中的至少一者。
14.一种系统,其包括:
一个或多个处理器;以及
一个或多个存储器,其上存储有计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时致使所述一个或多个处理器:
获取来自客户端计算装置的提供内容流的请求;
生成所述内容流的清单文件,其中所述清单文件包括要作为所述内容流的一部分输出的内容部分的标识符,并且其中要作为所述内容流的一部分输出的至少一个内容部分尚未在流式内容传递系统可用;
将所述清单文件传输到所述客户端计算装置;以及
开始对内容文件进行编码,以产生在所述清单文件中标识的所述至少一个内容部分;
接收对所述至少一个内容部分的请求;
确定所述清单文件中标识的所述至少一个内容部分不可用于传输到所述客户端计算装置;
选择后备内容部分;以及
传输所述后备内容部分或标识所述后备内容部分的信息。
15.如权利要求14所述的系统,其中根据超文本传输协议(HTTP)实时流传输协议(HLS)、HTTP上的动态自适应流传输(DASH)、MICROSOFT平滑流传输(MSS)协议或HTTP动态流(HDS)协议中的至少一者来格式化所述内容流。
CN201780064273.4A 2016-09-30 2017-09-28 对于流式内容部分的基于请求的编码系统和方法 Active CN110121871B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210247232.1A CN114666308B (zh) 2016-09-30 2017-09-28 对于流式内容部分的基于请求的编码系统和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/283,075 US10063612B2 (en) 2016-09-30 2016-09-30 Request-based encoding for streaming content portions
US15/283,075 2016-09-30
PCT/US2017/053924 WO2018064283A1 (en) 2016-09-30 2017-09-28 Request-based encoding for streaming content portions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210247232.1A Division CN114666308B (zh) 2016-09-30 2017-09-28 对于流式内容部分的基于请求的编码系统和方法

Publications (2)

Publication Number Publication Date
CN110121871A true CN110121871A (zh) 2019-08-13
CN110121871B CN110121871B (zh) 2022-04-01

Family

ID=60084089

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210247232.1A Active CN114666308B (zh) 2016-09-30 2017-09-28 对于流式内容部分的基于请求的编码系统和方法
CN201780064273.4A Active CN110121871B (zh) 2016-09-30 2017-09-28 对于流式内容部分的基于请求的编码系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210247232.1A Active CN114666308B (zh) 2016-09-30 2017-09-28 对于流式内容部分的基于请求的编码系统和方法

Country Status (5)

Country Link
US (2) US10063612B2 (zh)
EP (2) EP3520358B1 (zh)
JP (1) JP6856747B2 (zh)
CN (2) CN114666308B (zh)
WO (1) WO2018064283A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10193944B2 (en) * 2016-06-17 2019-01-29 Q Technologies Inc. Systems and methods for multi-device media broadcasting or recording with active control
US10063612B2 (en) 2016-09-30 2018-08-28 Amazon Technologies, Inc. Request-based encoding for streaming content portions
JP6663082B2 (ja) * 2016-11-10 2020-03-11 ソニーモバイルコミュニケーションズ株式会社 ノードタイプに基づくデータストリーミングの支援制御
US10986152B2 (en) * 2016-12-29 2021-04-20 Arris Enterprises Llc Method for dynamically managing content delivery
JP6797755B2 (ja) * 2017-06-20 2020-12-09 キヤノン株式会社 撮像装置、撮像装置の処理方法およびプログラム
US10356447B2 (en) * 2017-09-25 2019-07-16 Pluto Inc. Methods and systems for determining a video player playback position
US10838924B2 (en) * 2017-10-02 2020-11-17 Comcast Cable Communications Management, Llc Multi-component content asset transfer
US11533527B2 (en) 2018-05-09 2022-12-20 Pluto Inc. Methods and systems for generating and providing program guides and content
JP6772218B2 (ja) * 2018-06-29 2020-10-21 Line株式会社 プログラム、情報処理方法、端末
JP7175658B2 (ja) * 2018-07-25 2022-11-21 キヤノン株式会社 映像配信装置、配信方法及びプログラム
US10863179B1 (en) * 2018-09-05 2020-12-08 Amazon Technologies, Inc. Overlapped rate control for high-quality segmented video encoding
US10963534B2 (en) * 2018-12-04 2021-03-30 Paypal, Inc. Systems, methods, and computer program products for providing backup data to an application in response to service failure
US10958737B2 (en) * 2019-04-29 2021-03-23 Synamedia Limited Systems and methods for distributing content
AU2020293224A1 (en) * 2019-06-14 2022-01-27 GumGum, Inc. Dynamic overlay video advertisement insertion
US11284130B2 (en) 2019-06-14 2022-03-22 GumGum, Inc. Dynamic insertion of content within live streaming video
US11843680B2 (en) * 2020-02-13 2023-12-12 Comcast Cable Communications, Llc Methods and systems for cache optimization
EP4111698A4 (en) * 2020-02-28 2024-03-13 Hulu Llc CLIENT-BASED REMOTE ELEMENT RESOLUTION STORAGE
EP4111700A4 (en) 2020-02-28 2024-03-20 Hulu Llc IDENTIFICATION OF ELEMENTS IN A GROUP TO REPLACE DYNAMIC ELEMENTS
US20220239968A1 (en) * 2021-01-22 2022-07-28 Arris Enterprises Llc System for content delivery estimation
US20230139635A1 (en) * 2021-11-03 2023-05-04 Tencent America LLC Method for streaming dynamic 5g ar/mr experience to 5g devices with updatable scenes

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356605A (zh) * 2009-03-16 2012-02-15 微软公司 平滑、无状态的客户端媒体流式传输
US20130275557A1 (en) * 2012-04-12 2013-10-17 Seawell Networks Inc. Methods and systems for real-time transmuxing of streaming media content
WO2014004955A1 (en) * 2012-06-28 2014-01-03 Azuki Systems, Inc. Method and system for ad insertion in over-the-top live media delivery
CN103931204A (zh) * 2011-10-05 2014-07-16 高通股份有限公司 媒体数据的网络流
CN104718752A (zh) * 2012-09-04 2015-06-17 高通股份有限公司 在可缩放视频译码中减少取样相位信息的发信
US20150334431A1 (en) * 2013-09-04 2015-11-19 Arris Enterprises, Inc. Averting Ad Skipping in Adaptive Bit Rate Systems
CN105450724A (zh) * 2014-09-17 2016-03-30 尼尔森(美国)有限公司 监测媒体呈现的方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003242093A (ja) * 2001-12-03 2003-08-29 Canon Inc 画像形成装置
US8498422B2 (en) * 2002-04-22 2013-07-30 Koninklijke Philips N.V. Parametric multi-channel audio representation
KR20090004661A (ko) * 2007-07-04 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US9955122B2 (en) * 2008-04-11 2018-04-24 Mobitv, Inc. Dynamic advertisement stream replacement
US8264524B1 (en) * 2008-09-17 2012-09-11 Grandeye Limited System for streaming multiple regions deriving from a wide-angle camera
US8606071B2 (en) * 2010-04-15 2013-12-10 Leonid Remennik Method and apparatus for presenting interactive multimedia using storage device interface
US9774923B2 (en) * 2010-05-28 2017-09-26 Verizon Patent And Licensing Inc. Bandwidth management and advertisement insertion in media content delivery systems and methods
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US9445136B2 (en) * 2011-09-21 2016-09-13 Qualcomm Incorporated Signaling characteristics of segments for network streaming of media data
US9213605B2 (en) * 2012-01-23 2015-12-15 Intel Corporation IP multimedia subsystem and method for MBMS file repair using HTTP servers
US9549000B2 (en) * 2013-03-15 2017-01-17 Arris Enterprises, Inc. Streaming media from a server delivering individualized content streams to clients
US9215080B2 (en) * 2013-05-31 2015-12-15 Broadcom Corporation Adaptive bit rate distribution of multicast streams
CN104396270A (zh) * 2013-07-02 2015-03-04 华为技术有限公司 一种流媒体处理的方法、装置及系统
US9923771B2 (en) * 2014-01-15 2018-03-20 Cisco Technology, Inc. Adaptive bitrate modification of a manifest file
WO2015135576A1 (en) 2014-03-11 2015-09-17 Telefonaktiebolaget L M Ericsson (Publ) Distributing media content services and alternative media content
MX2017015855A (es) * 2015-06-09 2018-06-06 Arris Entpr Llc Sincronizacion de cliente de video de transmision por secuencias en vivo http (hls).
CN105049896B (zh) * 2015-07-23 2019-11-12 Tcl集团股份有限公司 一种基于hls协议的流媒体广告插入方法及系统
US20170118537A1 (en) * 2015-10-21 2017-04-27 Nagravision S.A. Adaptive watermarking for streaming data
US10148989B2 (en) * 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10652594B2 (en) * 2016-07-07 2020-05-12 Time Warner Cable Enterprises Llc Apparatus and methods for presentation of key frames in encrypted content
US10063612B2 (en) 2016-09-30 2018-08-28 Amazon Technologies, Inc. Request-based encoding for streaming content portions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356605A (zh) * 2009-03-16 2012-02-15 微软公司 平滑、无状态的客户端媒体流式传输
CN103931204A (zh) * 2011-10-05 2014-07-16 高通股份有限公司 媒体数据的网络流
US20130275557A1 (en) * 2012-04-12 2013-10-17 Seawell Networks Inc. Methods and systems for real-time transmuxing of streaming media content
WO2014004955A1 (en) * 2012-06-28 2014-01-03 Azuki Systems, Inc. Method and system for ad insertion in over-the-top live media delivery
CN104718752A (zh) * 2012-09-04 2015-06-17 高通股份有限公司 在可缩放视频译码中减少取样相位信息的发信
US20150334431A1 (en) * 2013-09-04 2015-11-19 Arris Enterprises, Inc. Averting Ad Skipping in Adaptive Bit Rate Systems
CN105450724A (zh) * 2014-09-17 2016-03-30 尼尔森(美国)有限公司 监测媒体呈现的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHIH-YING CHANG、HSIN-TA CHIAO: ""An Inter-Layer Protection Scheme with Block-Based Interleaving for MPEG-DASH over WiFi Multicast"", 《2014 IEEE 79TH VEHICULAR TECHNOLOGY CONFERENCE (VTC SPRING)》 *
李建、 别红霞: ""对主流自适应码率流媒体技术的分析"", 《电视技术》 *

Also Published As

Publication number Publication date
CN114666308A (zh) 2022-06-24
JP6856747B2 (ja) 2021-04-14
EP3520358B1 (en) 2021-11-03
US10063612B2 (en) 2018-08-28
US20180097864A1 (en) 2018-04-05
EP3520358A1 (en) 2019-08-07
EP3979602A1 (en) 2022-04-06
CN114666308B (zh) 2023-01-31
US10616301B2 (en) 2020-04-07
CN110121871B (zh) 2022-04-01
JP2019535191A (ja) 2019-12-05
EP3979602B1 (en) 2023-07-05
WO2018064283A1 (en) 2018-04-05
US20190068674A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
CN110121871A (zh) 对于流式内容部分的基于请求的编码
US11902258B2 (en) Protecting content-stream portions from modification or removal
US8245124B1 (en) Content modification and metadata
US8898303B2 (en) Enterprise grade rights management
US9201942B2 (en) Community based digital content auditing and streaming
US20190246149A1 (en) Protected multimedia content transport and playback system
US20130080268A1 (en) Multi-platform media syndication customization
US10034031B2 (en) Generating a single content entity to manage multiple bitrate encodings for multiple content consumption platforms
CN109791557B (zh) 用于管理资产存储的计算机实现的方法以及存储系统
US11916992B2 (en) Dynamically-generated encode settings for media content
WO2019195848A1 (en) Dynamic watermarking of digital media content at point of transmission
KR20170015912A (ko) 매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템
US11212332B2 (en) Dynamic archiving of streaming content
CN107077543B (zh) 流媒体中内容成分的所有权标识、信令和处理
US20200029104A1 (en) Systems and methods for securely generating live previews
WO2008121755A1 (en) Methods and apparatus for distributing media content for the purpose of enhancing existing media
CN108377429A (zh) 一种视频流的拆条和抽帧方法
US10389786B1 (en) Output tracking for protected content-stream portions

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