CN111316652A - 使用对齐编码内容片段的个性化内容流 - Google Patents

使用对齐编码内容片段的个性化内容流 Download PDF

Info

Publication number
CN111316652A
CN111316652A CN201880054202.0A CN201880054202A CN111316652A CN 111316652 A CN111316652 A CN 111316652A CN 201880054202 A CN201880054202 A CN 201880054202A CN 111316652 A CN111316652 A CN 111316652A
Authority
CN
China
Prior art keywords
content
stream
segments
personalized
content stream
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.)
Pending
Application number
CN201880054202.0A
Other languages
English (en)
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
Publication of CN111316652A publication Critical patent/CN111316652A/zh
Pending legal-status Critical Current

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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • 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
    • 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/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

描述了用于实现个性化内容流的系统和方法,所述个性化内容流的内容可以被用户动态地改变,以使得多个基本内容可以被无缝地包括在所述个性化内容流内。多个输入内容流被编码成包括时间上对齐的拼接点帧,所述拼接点帧打破了给定拼接点帧之前和之后的帧间依赖性。然后依据所述编码流生成时间上对齐的片段。此后,用户可以选择所述输入内容流中要包括在个性化内容流内的任何输入内容流的各片段,并且输出装置可以将依据不同的输入内容流生成的各片段解码为所述个性化内容流的一部分,而不会由于所述片段来自不同输入内容流而将错误引入所述内容流。因此,用户可以基于他们的偏好而动态地改变所述个性化内容流的内容。

Description

使用对齐编码内容片段的个性化内容流
背景技术
一般来说,计算装置利用一个通信网络或一系列通信网络来交换数据。公司和组织操作互连若干计算装置的计算机网络以支持操作或向第三方提供服务。计算系统可以位于单个地理位置或位于多个不同的地理位置(例如,经由专用或公共通信网络互连)。具体而言,本文统称为“数据中心”的数据中心或数据处理中心可以包括若干互连的计算系统以向数据中心的用户提供计算资源。数据中心可以是代表组织运营的专用数据中心,或者可以是代表公众或出于公众利益运营的公共数据中心。
服务提供者或内容创建者(诸如企业、艺术家、媒体分发服务等)可以采用互连的计算装置(例如,在数据中心内)将内容递送给用户或客户端。在一些情况下,这些计算装置可以支持传统的内容分发系统,诸如通过创建、修改或分发流电视或无线电内容。在其他情况下,这些计算装置可以用来复制或替换先前的内容分发系统。例如,数据中心可以以类似于传统电视或无线电网络的方式提供基于网络的流音频或视频内容。有时将该内容分别称为“互联网电视”或“互联网广播”。这些分发系统提供的内容(例如,传统的内容和基于计算网络的内容)都可以是预先录制的或实时的。通常,在使用计算装置来促进传统或基于网络的分发系统的情况下,使用专用软件来替换或复制专用硬件装置的功能。例如,软件应用可以用于编码和打包包含实时视频内容的数据流,从而减少或消除对专用硬件执行这些功能的需求。由于基于软件的解决方案的灵活性,因此单个计算装置可以用于为传统生成系统和基于网络的生成系统二者生成内容。
附图说明
图1是在输出装置上输出的个性化内容流以及可以用于修改个性化内容流内的基本内容的视图选择装置的图解;
图2是示出根据本公开的一些实施方案的说明性逻辑环境的框图,在所述说明性逻辑环境中,流内容递送系统可以操作以提供个性化内容流;
图3是示出服务器的可以实现图1的流内容递送系统的要素的一个实施方案的说明性配置的框图;
图4是可以由图1的流内容递送系统基于表示多个基本内容的输入流而提供给不同的输出计算装置的多个个性化内容流的说明性可视化;
图5是示出用于处理表示图1的流内容递送系统处的多个基本内容的输入流以使得能够在个性化内容流内混合基本内容的各片段的说明性交互的框图;
图6A至图6C是示出与图1的流内容递送系统的说明性交互以将个性化内容流提供给输出装置的框图;并且
图7是示出用于提供个性化内容流的说明性例程的流程图,所述个性化内容流包括表示多个基本内容的片段。
具体实施方式
一般而言,本公开的各方面涉及提供基于每个用户可动态定制的视频流,以使得用户可以在流正在进行的同时改变流中包括哪些视频内容,并且以使得流的视频内容的改变导致在输出装置上无缝播放。如本文所述,流内容可以包括在流的输出期间连续地或反复地递送到输出装置的任何内容。可以将流内容与下载的内容进行比较,这通常需要在内容的输出可以开始之前获得内容的整体(例如,完整的视频文件)。在一个实施方案中,流内容是实时内容(例如,既被录制又被“即时”呈现,这可以包括较小的延迟,诸如提供用于内容审查或过滤的能力)。流内的实际基本内容(例如,视频或音频内容)通常是由流的提供者预先选择并包括在流中的。例如,内容提供者(例如,流内容服务)可以选择在内容流内包括实时事件,诸如体育比赛或音乐会。这样,虽然观看者可以能够从多个不同的内容流(例如,每一个包括不同的内容)中进行选择,但是观看者通常无法修改流内包括的基本内容。此外,在不同的流之间切换观看装置会负面地影响观看体验,因为这种切换通常不是无缝的。而是,观看装置通常必须获得有关新的流的信息,检索所述流的(例如,进入缓冲器)的一个或多个片段,并且另外准备输出新流。当切换流时,该过程可能会导致大量延迟,从而使用户无法进行频繁的流切换。在用户希望在相关内容的多个流(诸如,实时体育赛事的多个不同录制(例如,来自相同或不同内容提供者))之间切换的情况下,这种延迟可能尤其成问题。本申请的一些实施方案通过提供基于每个用户可动态定制的内容流来解决这些问题和其他问题,以使得用户可以在流正在进行的同时选择要包括在内容流内的基本内容。例如,根据本公开的实施方案,用户可以开始消费描绘实时事件(例如,体育比赛)的第一视图的流,并且在流的输出期间,动态地改变流的内容以使得其描绘实时事件的第二视图。可以针对用户使流个性化,以使得内容的改变不一定影响提供给其他用户的流。因此,可以使得实时事件的每次观看能够动态地改变他们对事件的观看,如个性化视频流中所示。所述流可以由流内容递送服务提供,所述流内容递送服务操作而以无缝方式改变流的基本内容,以使得不需要观看装置来切换流或招致切换流通常需要的延迟。在一些情况下,流内容递送服务可以修改或生成基本内容,以使得观看装置不知道相对于视频流已经发生任何改变。此外,流内容递送服务可以通过动态地重新组合各种不同的编码内容来向观看用户提供个性化内容流,而无需将此类内容重新编码到每一个性化流中。因此,可以减少或最小化提供个性化内容流所需的计算资源。因此,本公开的实施方案提供了资源高效的流内容递送服务,所述服务使用户能够无缝地改变个性化内容流内提供的基本内容。
作为说明性实例,考虑诸如体育比赛等实时事件,其中内容提供者(诸如视频制作公司)从多个角度拍摄该事件,从而产生多个内容流,每一内容流对应于不同的视图。通常,提供者的主管或其他雇员将确定在任何给定时间在最终输出内容流中包括多个视图中的哪一个,并且然后将最终输出流提供给查看用户。用户可能根本无法从不同角度观看事件,或者可能被迫切换到不同输出流(例如,不同提供者的输出流)来观看事件,这时,用户将被要求从不同的输出流内包括的任何角度观看事件。然而,根据本公开的实施方案,流内容递送系统可以使这种事件的多个视图同时可用。例如,流内容递送系统可以获得三个不同的内容流,每一内容流表示从不同的角度进行的事件拍摄,并使每一这种流对终端用户可用。此外,流内容递送系统可以使用户能够将每一内容流的各片段混合和匹配在一起以形成个性化内容流。
例如,参考图1,用户可以在诸如电视(其可以表示例如:具有集成计算系统、网络接口等的“智能”电视,或具有连接网络的计算装置(诸如个人视频播放装置、家庭影院计算装置或游戏机)的非计算机化电视)等观看设备60上观看个性化内容流。个性化内容流可以由流内容递送系统提供,并且可以最初描绘给定事件的第一视图,诸如从本垒后面观看棒球比赛的视图。用户还可以与诸如计算机化电话或平板计算机等输入装置52相关联,从而使用户能够通过动态地改变包括在个性化内容流内的各片段来改变在观看装置60上描绘的视图。说明性地,输入装置52可以描绘包括要素54-58的图形用户界面(例如,如由在输入装置52上执行的应用所提供的),所述要素中的每一个都提供在个性化内容流上可用的事件的各种视图的图形表示。所述图形表示可以包括例如在流内容递送系统处可用的、描绘事件的视图的内容流的低分辨率(例如,“缩略图”)版本,或描绘事件的视图的定期刷新图像(例如,屏幕截图)。每一要素54-58可由用户选择,以请求改变在观看装置60上输出的个性化内容流,以描绘对应于选定要素54-58的视图。因此,通过选择输入装置52上的要素54,用户可以使观看设备60输出事件的第一视图(“视图A”);通过选择要素56,用户可以使观看设备60输出事件的第二视图(“视图B”);并且通过选择要素58,用户可以使观看设备60输出事件的第三视图(“视图C”)。虽然图1中将图形要素描绘成是可选的以修改视图,但是也可以使用输入装置52上的其他输入。例如,输入装置52可以包括陀螺仪,以使得装置52的特定取向致使特定视图被选定。因此,使用户能够动态地选择他们的事件视图。此外,不是要求改变观看装置60的操作,而是可以通过动态地改变包括在如在观看装置60上显示的个性化内容流内的各片段,来在流内容递送系统处控制观看装置60的输出。因此,可以在观看装置60上无缝地互换事件的不同视图,而没有切换内容流典型的延迟或中断。
在一些实施方案中,可以通过同步或对齐内容流的各方面来促进个性化内容流内的各片段的无缝互换。例如,流内容递送系统可以被配置成生成或修改不同输入内容流(例如,事件的不同视图)的各片段,以使得所述片段在跨不同输入内容流的共同位置处包含专门的“拼接点”帧(例如,在同一时间)。拼接点帧可以表示专门的内容帧,所述内容帧打破了特定点处内容流的帧间依赖性,以使得可以解码任何后续帧而无需引用拼接点帧之前的任何帧(并且以使得可以解码拼接点帧之前的帧,而无需引用拼接点帧之后的任何帧)。这种专门的内容帧的一个实例是由H.264视频编码格式定义的IDR帧,所述格式在本领域中是已知的。IDR帧在插入H.264兼容视频流时,确保可以解码视频流的所有后续帧,而无需引用视频流在IDR帧之前的任何帧。通过在不同输入内容流的各片段之间的共同位置处包括拼接点帧,流内容递送系统可以在输出内容流内互换不同的输入内容流,而不会中断对输出内容流的解码。例如,在两个输入内容流之间的公共拼接点位置处,流内容递送系统停止在输出内容流中包括两个输入内容流中的第一个,并且开始在输出内容流中包括两个输入内容流中的第二个。因为拼接点帧确保两个输入内容流的各帧之间不存在帧间依赖性,所以下游解码装置将不会由于破坏的帧间依赖性而在输出内容流中经历解码错误。2017年6月5日提交的且标题为“OUTPUT SWITCHING FOR ENCODED CONDENT STREAMS”的美国专利申请第15/614,345号(“’345申请”)中更详细地描述了用于对齐不同编码内容流内的拼接点帧的示例性机制,所述美国专利申请的完整内容以引用的方式并入本文。例如,如在’345申请中所公开的,一种系统可以包括输出切换控制器,所述输出切换控制器被配置成协调内容编码器和内容打包器的操作,以使得内容打包器在给定的时间点被启用以在打包第一编码内容流与第二编码内容流之间切换,而无需对内容流进行解码,也不会将错误引入输出流。具体地,输出切换控制器可以被配置成指示内容编码器中的每一个在给定的时间点将拼接点帧插入它们各自的编码内容流中,并确保编码内容流的后续帧不引用拼接点帧之前的任何帧。拼接点帧因此充当“切换点”,以使得观看装置可以从对应于拼接点帧的点开始观看编码的内容流,而不会由于丢失帧间依赖性而产生错误。在一个实施方案中,拼接点帧是满足H.264视频编码格式的IDR帧。输出切换控制器还可以被配置成指示每一内容打包器关于编码内容流预期会包括拼接点帧的时间。因此,内容打包器在所述时间点可以从将第一编码内容流打包到输出流中切换到将第二编码内容流打包到输出流中。因为内容打包器在对应于拼接点帧的时间切换到第二编码内容流,所以可以进行内容流的后续解码而不会由于丢失帧间依赖性而经历错误。以此方式,使得内容打包器能够将输出流切换到任何数量的编码内容流,而不会在输出流中引入错误,也不需要对内容流进行解码和重新编码。
在一些情况下,流内容递送系统还可以致使不同编码内容流的其他属性对齐或同步。例如,流内容递送系统可以对齐或同步表示输入内容流的编码内容流的时间戳或时间码,以使得在个性化内容流内互换输入内容流不会导致个性化内容流内的时间戳或时间码的连续性中断。2016年6月27日提交的且标题为“SYNCHRONIZATION OF MULTIPLE ENCODERSFOR STREAMING CONTENT”的美国专利申请第15/194,347号(“’347申请”)中更详细地描述了用于对齐或同步编码内容流的属性(诸如时间戳或时间码)的示例性机制,所述美国专利申请的完整内容以引用的方式并入本文。例如,如在’347申请中所公开的,为了确保由内容编码器输出的内容的互换性,内容编码器可以被配置成检测编码器池内的内容编码器之间的潜在去同步,并利用同步协议来交换状态信息,从而使内容编码器能够重新建立同步,并且因此提供可互换的输出。状态信息可以包括例如将输入时间码映射到用于编码内容流的输出时间戳的信息,以及针对给定的输入时间码和输出时间戳的图片组(GOP)数量或经过的帧的计数。更具体地,在一个实施方案中,池内的每一编码器可以被配置成周期性地将关于其编码状态的信息传输至每一其他编码器。在从另一个编码器接收到编码状态时,接收编码器可以验证接收到的编码状态与其自身状态相匹配(例如,可以互换)。在接收到的编码状态不匹配编码器的当前状态的情况下,编码器可以确定接收到的状态是否是权威的(指示其自身的状态已变得从池中去同步),并且如果是,则修改其输出以使其状态与池的状态重新同步。可以利用任何数量的一致性保证协议来标识权威信息并确保池当中的一致性。例如,每一编码器可以被配置成将“最旧的”状态信息(将最早的时间戳或最大的GOP数量应用于给定时间码)标识为权威的。在一些实施方案中,诸如内容引入器等单个部件可以充当控制器,以便确定该池的权威性编码状态。因此,引入器可以周期性地从每一编码器接收状态信息,并且使用接收到的状态信息来检测是否有任何编码器变得去同步。在编码器已经变得去同步的情况下,引入器可以将指令传输到去同步的编码器以重新建立同步。说明性地,内容编码器可以利用权威状态信息来确定用于其自身编码内容的分段边界,并且可以将那些分段边界用于内容。对于视频,分段边界可以指定视频流内的GOP的对齐。每一GOP的大小通常取决于编码器的配置,并且相同或可互换内容的输出可以取决于相同分段边界的使用。通过利用权威状态信息,编码器可以确定下一个GOP片段应该在哪里开始。说明性地,去同步的内容编码器可以根据以下等式从状态信息中计算要开始GOP的下一视频帧:
NextGOPFrame=Timecoden+GOPSize-((Timecoden-Timecodei)mod GOPSize)
其中:
NextGOPFrame表示GOP将会开始的下一个时间码;
Timecoden表示视频内的任何时间码(例如,去同步编码器114的当前时间码);
Timecodei表示已知已经开始GOP的时间码(例如,权威状态信息内指示为对应于GOP的最新时间码);并且
GOPSize表示GOP内的帧数量。
请注意,该等式假设Timecoden不等于GOP将开始的时间码。在Timecoden表示GOP将开始的时间码(例如,(Timecoden-Timecodei)mod GOPSize=0)的情况下,则NextGOPFrame等于Timecoden。此外,该等式假设诸如加法等运算基于这些单位之间的关系(例如,每秒30帧)在诸如时间码和帧等不同单位之间进行适当的转换而发生。
在一些情况下,引入器和编码器中的任何一个或二者都可以被配置成接收并响应对权威状态的请求。例如,当编码器加入池中时,所述编码器可以被配置成向池中的引入器和其他编码器中的任何一个或二者传输对权威状态的请求,并使其自身的状态与权威状态同步。
当不同的输入内容流的属性对齐或同步时,在个性化内容流中已经发生的基本内容的任何互换从输出个性化内容流的观看装置的视点来看可能并不明显。因此,个性化内容流可以允许不同输入内容流之间的无缝转变。此外,如下面将描述,输入内容流可以由流内容递送系统以编码格式来处理,并且在个性化内容流内互换,而无需对输入内容流进行解码或重新编码。因此,相对于试图对个性化内容流进行单独编码的系统,流内容递送系统可以以计算效率高的方式进行操作。
虽然上面关于表示共同事件的不同视图的输入内容流描述了示例性实施方案,但是本公开的一些实施方案可以使得能够基于表示不同事件或不同类型的内容的输入内容流(诸如不同的实时事件、电视节目等)而生成个性化内容流。例如,个性化内容流可以用作个性化“频道”,所述个性化“频道”提供由用户从多种电视节目、电影、粉丝制作内容等中选择的内容流。此外,虽然可以关于视频内容讨论各实例,但是在一些情况下,本公开的实施方案可以实现包括其他类型的内容(诸如音频内容)的个性化内容流。例如,通过改变音频流内的编码器边界点(EBP)处的基本输入音频流,可以使不同的输入音频流混杂在个性化内容流内,所述点将音频流划分成各片段,以使得不同音频流的各片段可以混杂在个性化内容流内,而不会在个性化内容流中引入错误。因此,本文提供的实例意在本质上是说明性的。
如本领域技术人员根据本公开将了解的,本文公开的实施方案改善了诸如内容流系统等计算系统向用户递送内容的能力。具体地,本公开的各方面改善了内容流递送系统的以下能力:基于每个用户提供定制的内容流,以及动态和无缝地改变将哪些编码内容包括在内作为对输出内容流的输入,而不会在输出内容流中引入错误,且无需对输入内容流进行解码或重新编码。此外,当前公开的实施方案解决了计算系统内固有的技术问题;具体而言,计算装置传输信息的能力有限,计算装置解码和编码内容的能力有限,以及当尝试在现有系统下组合编码信息时发生的固有错误。这些技术问题通过本文描述的各种技术解决方案解决,所述各种技术解决方案包括通过选择性地将输入内容流的不同片段包括在个性化内容流中来生成个性化内容流,每一片段可与其他片段无缝地互换。
当结合附图时,本公开的前述方面和许多伴随的优点将变得更加容易理解,因为通过参考以下内容可以更好地理解本公开。
图2是示出包括经由网络106通信的多个内容提供者计算装置108、输出计算装置102、视图选择计算装置104和流内容递送系统110的说明性环境100的框图。虽然内容提供者计算装置108、输出计算装置102和视图选择计算装置104被示出如图2内所分组,但是内容提供者计算装置108、输出计算装置102和视图选择计算装置104可能在地理上相距遥远,并且是独立拥有或操作的。例如,输出计算装置102和视图选择计算装置104可以被访问流内容递送系统110的在各种全球位置、大陆位置或区域位置中的众多用户使用。此外,内容提供者计算装置104可以表示与流内容递送系统110相关联的众多相关方或不同方以向客户端计算装置102提供流内容。因此,内容提供者计算装置108、输出计算装置102和视图选择计算装置104在图1内的分组意在表示逻辑分组,而不是物理分组。类似地,流内容递送系统110的部件中的每一个都可以位于地理上分散的区域内。例如,流内容递送系统110可以在多种不同的全球位置、大陆位置或区域位置包含存在点(“POP”)112,以便为流内容递送系统110提供广泛的地理存在。虽然被示出为不同的,但是内容提供者计算装置108、输出计算装置102、视图选择计算装置104和流内容递送系统110中的两者或更多者可以由公共实体或由公共计算装置来操作。在一些情况下,内容提供者计算装置108、输出计算装置102和视图选择计算装置104中的两者或更多者可以表示单个物理装置。例如,单个物理计算装置既可以用作输出计算装置102以输出个性化内容流,也可以用作视图选择计算装置104以选择在个性化内容流内表示的视图。
网络106可以是任何有线网络、无线网络或它们的组合。另外,网络106还可以是个人区域网络、局域网、广域网、有线电视网络、卫星网络、蜂窝电话网络或它们的组合。在图2的示例性环境中,网络106是诸如互联网等全域网(GAN)。用于经由其他上面提及类型的通信网络进行通信的协议和部件是计算机通信领域的技术人员所熟知的,并且因此,本文不需要进行更详细的描述。虽然内容提供者计算装置108、输出计算装置102、视图选择计算装置104和流内容递送系统110中的每一个被描绘为具有与网络106的单个连接,但是内容提供者计算装置108、输出计算装置102、视图选择计算装置104和流内容递送系统110中的各个部件可以在不同的点连接到网络106。因此,通信时间和能力可以在图2的部件之间变化。
输出计算装置102可以包括能够输出由流内容递送系统110提供的流内容的任何数量的不同计算装置。例如,各个输出计算装置102可以对应于膝上计算机或平板计算机、个人计算机、可穿戴计算机、服务器、个人数字助理(PDA)、混合PDA/移动电话、移动电话、电子书阅读器、机顶盒、相机、数字媒体播放器等。每一输出计算装置102可以包括使得能够接收和输出流内容的硬件和/或软件,包括专用回放硬件、专用软件(例如特殊编程的应用)和能够输出流内容(例如,通过直接下载内容、下载包括内容的网页等)的通用软件(例如,网络浏览器)。
类似地,视图选择计算装置可以包括能够与流内容递送系统110通信以便向流内容递送系统110通知用户期望包括在个性化内容流内的内容的任何数量的不同计算装置。例如,各个视图选择计算装置102可以对应于膝上计算机或平板计算机、个人计算机、可穿戴计算机、服务器、个人数字助理(PDA)、混合PDA/移动电话、移动电话、电子书阅读器、机顶盒、相机、数字媒体播放器等。在一个实施方案中,视图选择计算装置102包括使得能够接收和输出用户界面的硬件和/或软件,从而使得能够从可能包括在个性化内容流中的多个内容中进行选择。这种软件可以包括例如能够输出图形用户界面的专门编程的应用或网络浏览器。在另一实施方案中,视图选择计算装置102包括诸如多个物理按钮等专用接口,从而使得能够从可能包括在个性化内容流中的多个内容中进行选择。在其他实施方案中,可以使用视图选择计算装置102的其他输入来实现对多个内容的选择。例如,视图选择计算装置102内的陀螺仪可以基于装置102在真实空间中的取向而实现视图选择。
内容提供者计算装置104可以包括一实体所拥有或操作的任何计算装置,所述实体向流内容递送系统110提供内容,以便后续在内容流内传输到输出计算装置(其可以包括一个或多个客户端计算装置102)。例如,各个内容提供者计算装置104可以对应于膝上计算机或平板计算机、个人计算机、可穿戴计算机、服务器、个人数字助理(PDA)、混合PDA/移动电话、移动电话、电子书阅读器、机顶盒、相机、数字媒体播放器等。内容提供者计算装置104可以包括托管流音频、视频、文本、多媒体或其他编码内容的服务器。在一些情况下,内容提供者计算装置104可以与录制实时事件的录制设备(诸如相机)相关联。内容提供者计算装置108可以通过网络以编码或未编码(例如,“原始”)格式将内容传输到流内容递送系统110。在一些实施方案中,内容提供者计算装置108可以由各个用户操作。例如,内容提供者计算装置108可以对应于客户端计算装置,所述客户端计算装置执行软件以录制在客户端计算装置上显示的当前节目(诸如视频游戏),并将所述节目的录制传输到流内容递送系统。
流内容递送系统110可以包括被配置成使输出计算装置102能够访问由内容提供者计算装置104提供给流内容递送系统110的流内容的多种部件和装置。具体地,流内容递送系统110可以包括若干POP112,所述若干POP 112被配置成托管流内容,或者充当由流内容递送系统110所托管的流内容的缓存点。每一POP 112可以包括被配置成向输出计算装置102供应内容的多种计算装置。因此,每一POP 112可以包括协同操作以促进流内容的检索和递送到输出计算装置102的任何数量的处理器、数据存储区或联网部件。POP 112可以经由流内容递送系统110的内部网络与流内容递送系统110的其他部件进行通信,所述内部网络可以包括任何有线网络、无线网络或它们的组合,并且可以是个人区域网、局域网、广域网、有线电视网络、卫星网络,蜂窝电话网络或它们的组合。在一些情况下,所述内部网络可以至少部分地由网络106实现(例如,实现为虚拟专用网络或“VPN”)。说明性地,每一POP112可以起到在本地高速缓存数据存储区中保存对内容片段的有限选择(例如,最近请求的n个内容片段)的作用,以使得可以将这些内容片段快速传输到输出计算装置102。当本地高速缓存数据存储装置不包括请求的内容片段时,POP 112可以被配置成从远程数据存储区(诸如,流内容递送系统110的内容数据存储区118或内容提供者104的系统内的数据存储区(图1中未示出))检索内容片段,并且将所述内容片段传回到发出请求的输出计算装置102。
根据本公开的各实施方案,流内容递送系统110可以包括内容引入器服务116,所述内容引入器服务116被配置成从内容提供者计算装置108接收输入内容流,以在必要时修改流的内容以实现输入内容流中的各部分在个性化输出内容流中的无缝互换,并将内容存储在内容数据存储区118中,所述数据存储区118可以对应于任何持久或基本上持久的数据存储装置,诸如硬盘驱动器(HDD)、固态驱动器(SDD)、网络附接存储装置(NAS)、磁带驱动器或它们的任何组合。说明性地,内容引入器服务116可以包括一个或多个内容编码器,所述一个或多个内容编码器被配置成从内容提供者计算装置108接收诸如内容流等内容,并且将内容编码或重新编码为适合于递送到输出计算装置102的一个或多个编码。例如,内容引入器服务116可以以相对高质量从内容提供者计算装置108接收内容流,并将内容重新编码为多种相对低质量的内容流(例如,‘HD’质量、‘SD’质量等)以递送到输出计算装置。引入器服务116还可以包括内容打包器计算装置,所述内容打包器计算装置被配置成将编码的内容打包成适合于在个性化内容流内传输到输出计算装置102的片段。在’345申请和’347申请中讨论了关于这种编码和打包计算装置的操作的更多细节,所述两个申请在上面均以引用的方式并入。例如,如在’347申请中所讨论的,引入器可以将内容流传递到一个或多个内容编码器上,所述一个或多个内容编码器可以将内容编码成内容分发系统或内容输出装置接受的一种或多种格式。为了提供内容的冗余或协作编码(例如,以提供弹性或自适应质量流),可以将多个内容编码器配置成根据相同参数或可互换的参数对从引入器接收的内容流进行编码。在对内容进行编码之后,每一内容编码器可以将编码的内容提供给一个或多个内容打包器,所述一个或多个内容打包器可以将内容打包成内容分发系统和/或内容输出装置接受的容器格式。
流内容递送系统110还可以包括流个性化服务114,所述流个性化服务114被配置成基于存储的(例如,如存储在内容数据存储区118中的)输入内容流的各片段而向输出计算装置102提供个性化内容流。虽然下面将更详细地描述流个性化服务114的操作,但是流个性化服务114通常可以操作以从一个或多个输入内容或内容流中选择片段以便包括在个性化内容流中,并且向输出计算装置102提供信息从而使装置102能够从流内容递送系统110(例如,经由与POP 112交互)中检索选定的片段。在一个实施方案中,提供给输出计算装置102的信息包括引用要包括在个性化内容流中的片段的清单文件,所述清单文件诸如根据超文本传输协议(“HTTP”)实时流(“HLS”)协议生成的清单文件,或根据基于HTTP的MPEG动态自适应流(“MPEG-DASH”)协议生成的媒体演示说明(MPD)文件。可以遵循通用媒体应用格式(CMAF)标准生成任一种协议的清单。因此,通过使用此清单文件内的引用,输出计算装置102可以从POP 112中检索内容片段,以便形成个性化内容流。如下面更详细地讨论的,流个性化服务114可以被配置成基于由视图选择计算装置104提供的视图选择信息而动态地选择要包括在个性化内容流内的片段,从而使得用户能够与视图选择计算装置104进行交互,以修改个性化内容流内的基本内容。
本领域技术人员将了解,流内容递送系统110可以具有比图2中示出的更少或更多的部件。另外,流内容递送系统110可以包括各种web服务和/或对等网络配置。因此,图2中的流内容递送系统110的描绘应当被视为是说明性的。例如,在一些实施方案中,流内容递送系统110的部件(诸如流个性化服务114或内容引入器服务116)可以由在托管计算环境中实现的一个或多个虚拟机来执行。托管计算环境可以包括一个或多个快速供应和释放的计算资源,这些计算资源可以包括计算装置、联网装置和/或存储装置。托管计算环境也可以称为云计算环境。
图3示出服务器300的架构的一个实施方案,所述服务器300可以实现流内容递送系统110的要素中的一个或多个,诸如流个性化服务114。图3中示出的服务器300的总体架构包括可以用于实现本公开的各方面的计算机硬件和软件部件的布置。如图所示,服务器300包括处理单元304、网络接口306、计算机可读介质驱动器307、输入/输出装置接口320、显示器302和输入装置324,所有这些都可以借助于通信总线彼此通信。网络接口306可以提供与一个或多个网络或计算系统的连接,诸如图2的网络106。处理单元304因此可以经由网络接收来自其他计算系统或服务的信息和指令。处理单元304还可以往返存储器310进行通信,并且还经由输入/输出装置接口320为任选的显示器302提供输出信息。输入/输出装置接口320还可以接受来自任选的输入装置324(诸如,键盘、鼠标、数字笔等)的输入。在一些实施方案中,服务器300可以包括比图3中示出的部件更多(或更少)的部件。例如,服务器300的一些实施方案可以省略显示器302和输入装置324,同时通过一个或多个替代通信信道(例如,经由网络接口306)提供输入/输出功能。
存储器310可以包括处理单元304执行以便实现一个或多个实施方案的计算机程序指令。存储器310通常包括RAM、ROM和/或其他持久或非暂时性存储器。存储器310可以存储操作系统314,所述操作系统314提供计算机程序指令以供处理单元304在服务器300的一般管理和操作中的使用。存储器310还可以包括用于实现本公开的各方面的计算机程序指令和其他信息。例如,在一个实施方案中,存储器310包括用户界面软件312,所述用户界面软件312生成用户界面(和/或其指令),以例如经由诸如安装在计算装置上的web浏览器等导航界面显示在计算装置上。另外,存储器310可以包括一个或多个辅助数据存储区(诸如数据存储区320)或与其通信,所述一个或多个辅助数据存储区可以对应于任何持久或基本持久数据存储装置,诸如硬盘驱动器(HDD)、固态驱动器(SDD)、网络附接存储装置(NAS)、磁带驱动器或它们的任何组合。
除了用户界面模块312之外,存储器310还可以包括可以由处理单元304执行的流个性化软件316。在一个实施方案中,流个性化软件316实现本公开的各种方面,例如基于用户提供的视图选择信息而选择要包括在个性化内容流内的片段,并将清单文件或其他信息提供给输出内容装置103,从而使装置103能够检索选定的片段以输出个性化内容流。虽然图3中示出了流个性化软件316作为服务器300的一部分,但是在其他实施方案中,软件的全部或一部分可以由流内容递送系统110内的替代计算装置(诸如,托管的计算环境内的虚拟计算装置)实现。此外,虽然关于实现流个性化服务114的软件描述了图3,但是存储器310内的软件可以另外地或替代地包括用于实现本公开的其他部件(诸如内容引入器服务116)的指令。
对于图4,示出了说明性实例,其中三个内容提供者计算装置108A-108C各自提供相应的输入视频内容流,分别被标记为视频流A、B和C。每一视频内容流可以表示共同实时事件的不同视图,或者可以表示不同的实时事件。例如,每一视频内容流可以表示在单个体育比赛中不同相机的馈入,或者每一视频内容流可以表示不同体育比赛的录制。为了便于描述,视频内容流中的每一个均示出为以(为零的)共同时间戳开始。然而,视频内容流之间不一定存在共同时间戳。
在流内容递送系统110处接收每一视频内容流,其中根据需要对流进行改变或修改,以实现输入视频内容流的各片段在个性化内容流内的无缝互换。例如,内容引入器服务116可以将输入视频内容流重新编码为适合于在输出计算装置102A上显示的格式的一个或多个编码流(例如,多种比特率、分辨率等)。此外,内容引入器服务116可以在编码期间同步或对齐编码流的各方面,以实现编码流的各部分的可互换呈现。下面参考图5提供关于内容流的对齐或同步的进一步讨论。
此后,流内容递送系统110可以利用从每一输入视频内容流生成的片段的不同组合来向输出计算装置102A提供多种个性化输出流,并且可以基于从视图选择计算装置104接收到的信息而改变每一个性化输出流内的片段。例如,流内容递送系统110可以向第一输出计算装置102A提供第一个性化内容流402,所述第一个性化内容流402包括表示从时间戳0到10的第一输入视频内容流(流A)的内容的片段,然后是表示从时间戳10到20的第二输入视频内容流(流B)的内容的片段,并且再然后是表示从时间戳20到30的第一输入视频内容流的内容的片段。这些片段可以表示例如在与输出计算装置102A相关联的视图选择计算装置104上对由第一输入视频内容流表示的视图的初次用户选择,然后是对由第二输入视频内容流表示的正好在时间戳10之前的视图的选择,并且再然后是对由第一输入视频内容流表示的在时间戳20处的视图的选择。流内容递送系统110可以基于来自与相应输出计算装置102相关联的其他视图选择计算装置104的输入而向其他输出计算装置102(示出为输出计算装置102B和102C)提供类似的个性化输出流404和406。
如图4中所示,个性化内容流在不同基本内容(例如,表示各种输入内容流A到C)之间的转变点可以对应于表示不同基本内容的片段内的拼接点帧的位置。因此,当在输出计算装置102A上回放输出内容流时,将这些不同片段包括在个性化内容流内不太可能导致帧间依赖性错误。如将在下面更详细地描述的,流内容递送系统110在一些情况下可以延迟将个性化内容流内的基本内容从第一基本内容修改为第二基本内容,直到达到两个基本内容中的共同位置为止。例如,在从视图选择计算装置104接收到将个性化内容流402从包括输入内容流A切换成包括输入内容流B的请求的情况下,流内容递送系统110可以延迟切换将什么输入内容流包括在个性化内容流402内直到时间戳10为止,所述时间戳10可以表示两个输入内容流之间的公共拼接点帧的下一位置。在其他情况下,诸如在流内容递送系统110确定在阈值时间段内将不会出现公共拼接点帧的情况下,流内容递送系统110可以致使新的拼接点帧被包括在对应于输入内容流的编码内容内的共同位置处,以促进个性化内容流402内的基本内容的更快速互换。
在’345申请内更详细地讨论了用于选择性插入拼接点帧的示例性机制,所述申请在上面以引用的方式并入。例如,如在’345申请中所公开的,一种系统可以包括输出切换控制器,所述输出切换控制器被配置成协调内容编码器和内容打包器的操作,以使得内容打包器在给定的时间点被启用以在打包第一编码内容流与第二编码内容流之间切换,而无需对内容流进行解码,也不会将错误引入输出流。具体地,输出切换控制器可以被配置成指示内容编码器中的每一个在给定的时间点将拼接点帧插入它们相应的编码内容流中,并确保编码内容流的后续帧不引用拼接点帧之前的任何帧。拼接点帧因此充当“切换点”,以使得观看装置可以从对应于拼接点帧的点开始观看编码内容流,而不会由于丢失帧间依赖性而产生错误。在一个实施方案中,拼接点帧是满足H.264视频编码格式的IDR帧。输出切换控制器还可以被配置成指示每一内容打包器关于编码内容流预期会包括拼接点帧的时间。因此,内容打包器在所述时间点上可以从将第一编码内容流打包到输出流中切换到将第二编码内容流打包到输出流中。因为内容打包器在对应于拼接点帧的时间切换到第二编码内容流,所以可以进行内容流的后续解码而不会由于丢失帧间依赖性而经历错误。以此方式,使内容打包器能够将输出流切换到任何数量的编码内容流,而不会在输出流中引入错误,也不需要对内容流进行解码和重新编码。
参考图5,将描述说明性交互,以便将从一个或多个内容提供者计算装置108接收的一组内容流处理成对齐的内容片段,可以动态地选择所述内容片段以将其包括在个性化内容流内。交互开始于(1),其中内容提供者计算装置108将内容流传输到内容引入器服务116。说明性地,可以经由网络106以任何合适的格式(诸如MPEG-TS流内容格式)来传输内容流。在一个实施方案中,以共同的格式传输每一内容流。在另一实施方案中,以不同的格式传输内容流中的两个或更多个。如上所述,内容流可以表示多种不同类型的基本内容。例如,内容流可以表示在实时事件中不同的拍摄角度,或者表示不同事件的录制。在一个实施方案中,内容流表示参与公共活动的不同计算装置的显示器的屏幕截图,诸如参与基于网络的多玩家视频游戏的玩家的不同屏幕截图。虽然参考来自内容提供者计算装置108的内容流描述了图5,但是本公开的实施方案也可以应用于非流内容。例如,内容提供者计算装置108可以将预先录制的内容传输到内容引入器服务116,以便根据本文所描述的实施方案进行处理。
在(2)处,内容引入器服务116处理输入内容流以在内容流内对齐拼接点帧,以使得不同输入内容流的不同部分可以被包括在公共输出内容流中,而不会由于帧间依赖性的破坏而在输出内容流中引入错误。说明性地,内容引入器服务116可以如上面根据’345申请的实施方案所讨论的那样在编码流内的共同位置处插入拼接点帧,或者可以同步其他属性,诸如如上面根据’347申请的实施方案所讨论的编码流的时间戳或时间码。内容引入器服务116可以将输入内容流编码成任何数量的已知格式,包括但不限于H.263、H.264、H.265、MICROSOFT SMPTE 421M(也称为VC-1)、APPLETM ProRes、APPLE中间编解码器、VP3到VP9、Motion JPEG(“M-JPEG”)、MPEG-2第2部分、RealVideo、Dirac、Theora和MPEG-4第2部分(用于视频)以及Vorbis、Opus、MP3、高级音频编码(“AAC”)、脉冲码调制(“PCM”)、专注于声音(“DTS”)、MPEG-1、音频编码3(“AC-3”)、免费无损音频编解码器(“FLAC”)、和RealAudio(用于音频)或它们的组合。用于对内容进行编码的各种技术在本领域内是已知的,并且因此在本文中将不再更详细地描述。内容引入器服务116还可以将编码流打包成适合于包括在个性化内容流内的任何容器格式。如本领域技术人员将认识到的,容器格式通常可以将编码的音频和视频可能与音频和视频的同步信息、副标题、元数据或其他信息一起组合到文件中。容器的实例包括但不限于Matroska、FLV,MPEG-4第12部分、VOB、Ogg、音频视频交错(“AVI”)、Quicktime、高级系统格式(“ASF”)、RealMedia、ISO基本媒体文件格式(ISOBMFF)、分段式MP4(fMP4)和MPEG传输流(“MPEG-TS”)。在一个说明性实施方案中,内容引入器服务116根据H.264视频编码标准对每个内容流进行编码,并将每一流打包成若干MPEG-TS文件,所述文件可以表示可包括在个性化内容流中的编码流的各片段。在一个实施方案中,每一内容流的各片段可以是时间上对齐的,以使得每一内容流的每一第n个片段在共同时间(例如,共同时间戳)开始,并在共同时间结束。各片段的时间对齐可以促进将不同输入内容流的各片段混杂到个性化内容流中,如下面所讨论。此外,在一些情况下,每一内容流的各片段可以被打包以在内容流内的拼接点帧处开始。因为流内容递送系统110可以被配置成在对应于两个基本内容(例如,改变之前的内容和改变之后的内容)的片段内的检测到的拼接点帧的点处改变个性化内容流内的基本内容,所以生成以拼接点帧开始的片段可以使得能够通过组合不同基本内容的各片段来改变个性化内容流内的基本内容。
在(3)处,内容引入器服务116将对齐的流数据(例如,表示输入内容流中的每一个的片段集合,并且包括具有对齐的拼接点帧的基本内容)存储到内容数据存储区118中。根据本文所描述的实施方案,对应于不同的输入内容流的片段(例如,表示不同的基本内容)此后可以被选择性地包括在个性化内容流内。
参考图6A至图6C,将描述用于向输出计算装置102提供个性化内容流的说明性交互。具体地,将参考图6A和图6B描述用于向输出计算装置102提供个性化内容流的交互,所述个性化内容流包括表示第一基本内容(例如,第一输入内容流的内容)的片段,同时将参考图6C描述用于动态地改变个性化内容流的各片段以使得第二基本内容(例如,第二输入内容流的内容)的各片段被包括在个性化内容流内的交互。因此,经由图6A至图6C的交互,使用户能够与流内容递送系统110交互,以动态地互换个性化内容流内的基本内容。
图6A的交互开始于(1),其中输出计算装置102请求个性化内容流。这种请求可以例如通过用户与输出计算装置102交互来选择个性化内容流(例如,经由输出计算装置102的接口)来生成。所述请求可以指示期望被包括在个性化内容流内的初始内容,诸如在流内容递送系统110上可获得的实时事件的第一视图。
在(2)处,流个性化服务114选择要包括在个性化内容流中的片段。所述片段可以例如对应于由内容引入器服务116从对应于初始期望内容的输入内容流生成的并且被内容引入器服务116存储在内容数据存储区中的片段。
在(3)处,流个性化服务114生成用于个性化内容流的清单数据。清单数据可以表示个性化内容流的清单文件的初始部分。如上所述,清单文件通常包括对共同地表示个性化内容流的若干内容片段的引用。清单文件可以在个性化内容流期间反复更新或附加,以反映要包括在内容流内的新片段。例如,由流个性化服务114生成的初始清单数据可以列出内容流的前10个片段,并且流个性化服务114可以稍后将清单数据更新为包括内容流的下一10个片段,等等。在一些情况下,清单文件可能只反映内容流的当前输出位置周围有限数量的片段,并且因此对应于内容流内各片段的“移动窗口”。在其他情况下,清单文件可以维持对内容流的历史片段的引用,并且因此类似于内容流内所有片段的“日志”。如上所述,清单文件可以表示根据超文本传输协议(“HTTP”)实时流(“HLS”)协议生成的清单文件,或根据基于HTTP的MPEG动态自适应流(“MPEG-DASH”)协议生成的媒体演示说明(MPD)文件。
在一个实施方案中,清单数据(例如,表示清单文件的初始部分)包括对包括在内容数据存储区118内或以其他方式可在流内容递送系统110处获得的片段的一个或多个引用。引用可以采取例如统一资源定位符或“URI”的形式。因此,当初始期望内容表示“输入流A”时,清单数据可以包括呈“http://example.tld/segments/in_stream_A/segment_<n>.ts”的形式的一系列引用,其中“<n>”表示从输入流A生成的片段的整数排序。在一些情况下,清单数据可以包括针对个性化内容流的每一片段的多个引用。例如,清单数据可以引用给定输入流的第一片段的多个版本,每一版本具有不同的分辨率、比特率或格式。
在另一实施方案中,清单数据可以包括“泛型”或“占位符”引用,而不包括对输入内容流的片段的直接引用。这种引用可能与内容数据存储区118内的片段没有直接对应关系,而是表示流内容递送系统110稍后可以与内容数据存储区118中的片段相关联的占位符引用(诸如,呈统一资源定位符或“URI”形式的占位符引用)。例如,清单文件可以包括呈“http://example.tld/<personal_stream_id>/<n>.ts”形式的若干连续的引用,其中“<personal_stream_id>”表示个性化内容流的标识符,而“<n>”表示个性化内容流内的片段的整数排序。为了使得能够稍后解析占位符引用,流个性化服务114还可以确定每一占位符引用到输入内容流(例如,如存储在内容数据存储区118中)的片段的映射。例如,流个性化服务114可以确定引用“http://example.tld/<personal_stream_id>/1.ts”对应于“http://example.tld/segments/in_stream_A/segment_1.ts”,且“http://example.tld/<personal_stream_id>/2.ts”对应于“http://example.tld/segments/in_stream_A/segment_2.ts”等。如将在下面更详细地讨论的,在清单数据中使用占位符引用可以使得流内容递送系统110能够更快速地修改个性化内容流内包括的片段,因为流内容递送系统110即使在清单数据被传输到输出计算装置102之后也可以改变映射。
之后,在(4)处将清单数据传输到输出计算装置102。通过检索并回放在清单数据内引用的片段,输出计算装置102可以输出个性化内容流(例如,包括最初期望的内容的片段),如下面所讨论。虽然在图6A中示出了有限数量的交互,但是这些交互可以在个性化内容流的输出期间重复任何次数。例如,输出计算装置102可以与流个性化服务114连续或反复地交互以检索额外清单数据,以使得输出计算装置102可以继续检索和输出个性化内容流的各片段。
图6A的交互在图6B中继续,其中输出计算装置102如上面所讨论利用清单数据来检索个性化内容流的一个或多个片段,并回放这些片段,从而输出个性化内容流。具体地,在(5)处,输出计算装置102将对清单数据内所引用的一个或多个片段的请求传输到POP112(例如,通过将HTTP GET请求提交给对应于清单数据中的片段的URI)。如上面所讨论,在一些情况下,清单数据可以包括泛型或占位符引用,所述引用不直接对应于内容数据存储区118内所存储的文件。为此,在(5)处,POP 112可以与流个性化服务114交互以将占位符标识符(例如,如在请求内所标识的)解析为输入内容流的片段的标识符。例如,POP 112可以向流个性化服务114传输请求,以将给定的占位符标识符解析为输入内容流的片段的标识符。然后,流个性化服务114可以利用映射信息(例如,如上面所讨论的根据图6A的交互所生成的那样)来将输入内容流的片段的标识符传回到POP 112。在一些情况下,不是要求来自POP 112的请求,而是流个性化服务114可以将映射信息“推送”到一个或多个POP 112,以使得不需要POP 112响应于请求而检索映射信息。在不利用占位符引用的实施方案中,所述请求可以直接识别输入内容流的片段,并且因此,可能不需要交互(6)。
在(8)处,如果需要,POP 112从内容数据存储区118检索输入内容流的确定的片段。说明性地,为了减少POP 112与内容数据存储区118之间的网络通信,POP 112可以维持最近请求的片段的本地高速缓存。为此,如果输入内容流的确定的片段先前已经被高速缓存在POP 112中,则可能不需要交互(8)。否则,在交互(8)处的POP 112可以从内容数据存储区118中检索输入内容流的确定的片段。
在交互(9)处,将请求的片段传回到输出计算装置102。此后,输出计算装置102可以将所述片段作为个性化内容流的一部分输出。因此,根据图6A和图6B的交互,使得利用输出计算装置102的用户能够输出包括期望的基本内容的个性化内容流。
参考图6C,将描述用于动态地改变个性化内容流内的片段的说明性交互。具体地,图6C的交互可以使得使用视图选择计算装置104的用户能够请求改变包括在个性化内容流中的片段,并且还使得流内容递送系统110能够改变个性化内容流内的片段而不会将错误引入流中,以使得可以在个性化内容流内无缝显示不同的基本内容。为了便于引用,图6C的交互被重新编号成从(1)开始。然而,应当理解,图6C的交互可以在个性化内容流的输出期间的任何时间发生。
图6C的交互从(1)开始,其中视图选择计算装置104接收请求(例如,来自用户输入),以将个性化内容流内的视图改变为不同的基本内容(例如,相同实时事件的不同视图,不同实时事件的视图等)。可以例如通过用户选择图1的要素54-58来接收所述请求。
在(2)处,视图选择计算装置104将所请求的视图的通知传输给流个性化服务114。可以例如通过在视图选择计算装置104上执行的代码(例如,浏览器应用或专用视图选择应用)来传输通知。
在(3)处,流个性化服务114基于新的视图改变请求而选择要包括在个性化内容流内的基本内容的新片段。所述新片段可以对应于表示借助于视图改变请求而选择的基本内容的片段。之后,流个性化服务114致使新的片段被包括在个性化内容流内,从而改变个性化内容流的内容以反映在视图改变请求中选择的基本内容。因为新的基本内容的各片段包括与先前的基本内容的片段对齐的拼接点帧,所以所述片段可以混杂在输出内容流内,而不会将错误引入内容流。
在提供给输出计算装置102的清单数据直接引用内容数据存储区118中存在的片段的实施方案中,流个性化服务114可以致使新选择的片段在传输给输出计算装置102的任何额外清单数据内被引用。因此,随着个性化内容流的继续以及随着输出计算装置102继续接收有关个性化内容流的清单数据,输出计算装置102将(在视图选择计算装置104处接收到视图改变请求之后)开始获得清单数据,所述清单数据引用由流个性化服务114动态地选择的新片段。通过处理该清单数据,输出计算装置102将开始输出新选定的基本内容的各片段,从而改变输出给用户的基本内容,而不需要输出计算装置102停止输出个性化内容流或以其他方式改变内容流。
如上所述,在一些实施方案中,流个性化服务114可以向输出计算装置102提供包括占位符引用的清单数据,并且POP 112可以利用占位符到片段的映射来解析对从输出计算装置102接收片段的请求。例如,占位符引用的使用可能是有益的,因为它可以使流内容递送系统能够基于对片段的请求而不是基于清单数据的递送而修改提供给装置的片段。因为对片段的请求是基于处理清单文件而发生的,因此占位符片段的使用可以使得能够稍后确定提供给输出计算装置102的片段,并且可以提高个性化内容流对视图改变请求的观察到的响应性。出于图6C的进一步讨论的目的,将假设流个性化服务114将具有占位符引用的清单数据提供给各片段。因此,当基于视图改变请求而选择新的片段时,流个性化服务114可以更新占位符到片段的映射,以反映占位符引用到新的基本内容的各片段的映射。例如,在先前的占位符到片段的映射将占位符n映射到第一基本内容的片段n的情况下,流个性化服务可以更新所述映射以将占位符n映射到第二基本内容的片段n。可以更新映射,以从由流个性化服务114确定的改变位置用对第二基本内容的引用替换对第一基本内容的引用。流个性化服务114基于识别对应于第一基本内容和第二基本内容二者内的拼接点帧的位置而选择改变位置。说明性地,流个性化服务114可以通过以下方式来选择改变位置:确定对应于尚未被输出计算装置102检索到的第一基本内容的下一片段,以及用对第二基本内容的对应片段的引用替换到所述片段和后续片段的映射中的引用。因此,在下一次输出计算装置102请求个性化内容流的片段时,流内容递送系统110可以致使第二基本内容的片段被递送给输出计算装置102。在对各片段的直接引用包括在清单数据内的情况下,可以将更改位置选择为尚未在传输给输出计算装置102的清单数据中引用的第一基本内容的下一个片段。
此后,在(4)处,输出计算装置102可以请求一个或多个片段(例如,基于处理先前由流个性化服务114提供的清单数据内的引用)。在交互(4)-(8)处,POP 112又可以从流个性化服务114检索更新的片段映射信息,确定由所述映射识别的片段,根据需要从内容数据存储区118中检索所述段,并将所述片段传回到输出计算装置102。这些交互类似于图6B的交互(5)-(9),并且因此不再重复描述所述交互。此后,在(9)处,输出计算装置102将所述片段作为个性化内容流的一部分输出,因此改变输出给用户的基本内容,而不需要输出计算装置102停止输出个性化内容流或以其他方式改变内容流。
虽然上面关于内容数据存储区118内存储的片段(例如,表示打包到文件中的内容)描述了图6A-图6C的交互,但是在一些情况下,所述交互可以针对由POP 112响应于用户请求而动态地生成的各片段发生。例如,在流个性化服务114利用清单文件内的占位符引用的情况下,流个性化服务可以生成占位符引用到期望包括在所述片段内的一个或多个基本内容的各部分(例如,将要包括在内容中的一个或多个输入内容流的时间戳范围)的映射。POP 112然后可以基于映射中的基本内容的一部分而生成要递送到输出计算装置102的片段。例如,每一POP 112可以包括打包器计算装置,所述打包器计算装置被配置成通过基于由流个性化服务114提供的映射中指示的基本内容的一部分而打包输入内容流的一部分(例如,从内容引入器服务116接收到的)来动态地生成片段。在一些情况下,POP 112可以仅在适当的片段尚未存在于POP 112内的情况下动态生成片段,以使得如果具有给定基本内容的片段将被递送给多个输出计算装置102,则POP112可以将先前生成的片段重新用于第二请求和后续请求。在一个实施方案中,POP 112可以通过打包一个或多个输入内容流的各部分来动态地生成每一片段。在另一实施方案中,POP 112可以仅动态地生成在单个片段中包括不同基本内容的片段。例如,虽然POP 112可以为每一输入内容流维持一组不同的片段,但是也可以被配置成动态地创建包括不同输入内容流的各部分的片段。因此,如果流个性化服务114确定片段应当包括两个不同的输入内容流(例如,第一输入内容流的2秒和第二输入内容流的2秒),则POP 112可以基于两个输入内容流而动态地生成所述片段,并且将所述动态地生成的片段传回到输出计算装置102。因此,在各种情况下,POP 112可以充当将输入内容流打包成要包括在个性化内容流内的片段的打包器。
参考图7,将描述用于提供动态个性化内容流的一个说明性例程700。例程700可以例如由图1的流内容递送系统110实现。
例程70在框702处开始,其中流内容递送系统110获得具有对齐的拼接点帧的多个基本内容的各片段。在一个实施方案中,可以将各片段提供给流内容递送系统110(例如,通过内容提供者计算装置108)。在另一实施方案中,如上面所讨论的,流内容递送系统110可以通过处理多个输入内容流来获得具有对齐的拼接点帧的多个基本内容的片段,以生成具有对齐的拼接点帧的每一输入内容流的片段。
此后,在框704处,流内容递送系统110接收对个性化内容流的请求。所述请求可以例如通过输出计算装置102传输,并且可以指示将要包括在个性化内容流内的第一基本内容。
在框706处,流内容递送系统110根据当前请求的基本内容(例如,如在针对个性化内容流的初始请求内所指示的)识别用于个性化内容流的片段。说明性地,流内容递送系统110可以识别一个或多个片段,所述一个或多个片段是基于在对个性化内容流的请求内识别的输入内容流而生成的。
在框708处,流内容递送系统110将识别的片段传输到输出计算装置102。在一个实施方案中,可以至少部分地基于在清单数据内引用识别的片段而传输所述片段。在另一实施方案中,可以至少部分地基于在清单数据内包括占位符引用以及基于在流内容递送系统110处将占位符引用解析为对识别的片段的引用而传输所述片段。
在框710处,例程700可以基于是否已经接收到对改变个性化内容流的基本内容的请求而变化。如果是,则例程700进行到框712,其中流内容递送系统110更新个性化内容流内的所请求的基本内容。例如,流内容递送系统110可以在存储器内记录个性化内容流应当被修改为包括不同的基本内容的指示。然后,例程700进行到框714。如果没有接收到对改变基本内容的请求,则例程700可以直接从框710进行到框714。
在框714处,例程700可以基于个性化内容流是否已经结束(例如,用户是否已经请求个性化内容流结束,流的当前基本内容是否已经结束,等)而变化。如果是,则例程700进行到框716并结束。否则,例程700返回框706,其中流内容递送系统110在框706处再次识别当前请求的基本内容的基本片段,并且在框708处致使所述片段被传输给输出装置,如上所述。例程700可以这种方式继续,从而使用户能够动态地改变个性化内容流的内容。
虽然上面描述了例程700的一个说明性实例,但是例程700中的要素或要素的排序可以跨本公开的各实施方案变化。例如,在一些情况下,框712可以用作单独的例程,或者作为例程700的“中断”,以使得可以在例程700的执行期间的任何时间改变所请求的基本内容。鉴于本公开,其他修改或改变对于本领域技术人员将是显而易见的。因此,例程700的要素和排序在本质上是说明性的。
上面描述的所有方法和过程可以体现在由一个或多个计算机或处理器执行的软件代码模块中,并且经由所述软件代码模块完全自动化。所述代码模块可存储在任何类型的非暂时性计算机可读介质或其他计算机存储装置中。方法中的一些或全部可以替代地在专用计算机硬件中体现。
除非另外特别说明,否则诸如“能够”、“可”、“可能”或“可以”等条件语言在上下文中被理解为通常用于呈现某些实施方案包括而其他实施方案不包括某些特征、要素和/或步骤。因此,这种条件语言通常不意在暗指一个或多个实施方案以任何方式要求各特征、要素和/或步骤,或者一个或多个实施方案有必要包括用于在具有或不具有用户输入或提示的情况下决定这些特征、要素和/或步骤是否包括在任何特定实施方案中或将在其中执行的逻辑。
除非另外特别说明,否则诸如短语“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所述的系统,其中根据H.264标准对第一编码内容流和第二编码内容流进行编码,并且其中所述拼接点帧是瞬时解码器刷新(“IDR”)帧。
条款5.一种计算机实现的方法,所述方法包括:
依据表示第一基本内容的第一输入内容流生成第一组内容片段,其中所述第一组内容片段中的每一片段从第一编码内容流中对应于拼接点帧的位置开始,每一拼接点帧确保在所述拼接点帧之前的一个或多个帧与在所述拼接点帧之后的一个或多个帧之间不存在帧间依赖性;
依据表示第二基本内容的第二输入内容流生成第二组内容片段,其中所述第二组内容片段中的每一片段从第二编码内容流中对应于拼接点帧的位置开始,并且其中所述第二组内容片段中的每一片段与所述第一组内容片段中的对应片段是时间上对齐的;
接收对个性化内容流的请求,所述请求识别所述第一基本内容;
将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的第一部分进行传输;
接收对将所述个性化内容流修改为包括所述第二基本内容的请求;以及
将所述第二组内容片段中的一个或多个片段作为所述个性化内容流的第二部分进行传输。
条款6.如条款5所述的计算机实现的方法,其中所述第一组内容片段表示音频内容或视频内容中的至少一个。
条款7.如条款5所述的计算机实现的方法,其中从视图选择计算装置接收对修改所述个性化内容流的请求,并且其中所述计算机实现的方法还包括向所述视图选择计算装置传输所述第一基本内容和所述第二基本内容的图形表示。
条款8.如条款7所述的计算机实现的方法,其中所述图形表示是缩略图像。
条款9.如条款7所述的计算机实现的方法,其中所述图形表示是低分辨率视频流。
条款10.如条款5所述的计算机实现的方法,其中将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的所述第一部分进行传输包括:传输包括对所述第一组内容片段的一个或多个片段的引用的清单数据。
条款11.如条款5所述的计算机实现的方法,其中将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的所述第一部分进行传输包括:
传输包括一组占位符引用的清单数据;
生成映射信息,所述映射信息将所述组占位符引用中的各个占位符引用映射至所述第一组内容片段中的所述一个或多个片段中的各个片段;
接收对所述组占位符引用中的一个占位符引用的请求;
至少部分地基于所述映射信息而确定所述一个或多个片段中对应于所述占位符引用的第一片段;以及
响应于所述请求而传回所述第一片段。
条款12.如条款5所述的计算机实现的方法,其中将所述第一组内容片段打包在根据超文本传输协议(“HTTP”)实时流(“HLS”)协议或基于HTTP的MPEG动态自适应流(“MPEG-DASH”)协议中的至少一个生成的多个容器内。
条款13.如条款5所述的计算机实现的方法,其中所述第一编码内容流和所述第二编码内容流是运动图像专家组传输流(“MPEG-TS”)。
条款14.一种用于提供根据输入内容流的用户选定组合创建的个性化内容流的系统,所述系统包括:
数据存储区,所述数据存储区包括:
表示第一基本内容的第一组内容片段,其中所述第一组内容片段中的每一片段从第一编码内容流中对应于拼接点帧的位置开始,每一拼接点帧确保在所述拼接点帧之前的一个或多个帧与在所述拼接点帧之后的一个或多个帧之间不存在帧间依赖性;
表示第二基本内容的第二组内容片段,其中所述第二组内容片段中的每一片段从第二编码内容流中对应于拼接点帧的位置开始,并且其中所述第二组内容片段中的每一片段与所述第一组内容片段中的对应片段是时间上对齐的;
一个或多个计算装置,所述一个或多个计算装置配置有计算机可执行指令,以:
接收对个性化内容流的请求,所述请求识别所述第一基本内容;
将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的第一部分进行传输;
接收对将所述个性化内容流修改为包括所述第二基本内容的请求;以及
将所述第二组内容片段中的一个或多个片段作为所述个性化内容流的第二部分进行传输。
条款15.如条款14所述的系统,所述系统还包括编码计算系统,所述编码计算系统配置有计算机可执行指令,以依据相应的第一输入内容流和第二输入内容流生成第一组内容片段和第二组内容片段。
条款16.如条款14所述的系统,其中从视图选择计算装置接收对修改所述个性化内容流的请求,并且其中所述一个或多个计算装置还配置有计算机可执行指令,以向所述视图选择计算装置传输所述第一基本内容和所述第二基本内容的图形表示。
条款17.如条款16所述的系统,其中个性化内容流在输出计算装置上输出,并且其中所述输出计算装置是与所述视图选择计算装置不同的装置。
条款18.如条款16所述的系统,其中个性化内容流在所述视图选择计算装置上输出。
条款19.如条款14所述的系统,其中所述一个或多个计算装置配置有计算机可执行指令,以至少部分地通过传输包括对所述第一组内容片段中的一个或多个片段的引用的清单数据将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的所述第一部分进行传输。
条款20.如条款14所述的系统,其中所述一个或多个计算装置配置有计算机可执行指令,以至少部分地通过以下方式将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的所述第一部分进行传输:
传输包括一组占位符引用的清单数据;
生成映射信息,所述映射信息将所述组占位符引用中的各个占位符引用映射至所述第一组内容片段中的所述一个或多个片段中的各个片段;
接收对所述组占位符引用中的一个占位符引用的请求;
至少部分地基于所述映射信息而确定所述一个或多个片段中对应于所述占位符引用的第一片段;以及
响应于所述请求而传回所述第一片段。
条款21.如条款14所述的系统,其中从视图选择计算装置接收对修改所述个性化内容流的请求,并且其中所述视图选择计算装置响应于来自用户的输入而传输所述对修改所述个性化内容流的请求,所述输入包括以下中的一个或多个:对第一基本内容和第二基本内容的图形表示的选择,对视图选择计算装置的取向的修改,或对视图选择计算装置上的物理输入的选择。

Claims (15)

1.一种计算机实现的方法,所述计算机实现的方法包括:
依据表示第一基本内容的第一输入内容流生成第一组内容片段,其中所述第一组内容片段中的每一片段从第一编码内容流中对应于拼接点帧的位置开始,每一拼接点帧确保在所述拼接点帧之前的一个或多个帧与在所述拼接点帧之后的一个或多个帧之间不存在帧间依赖性;
依据表示第二基本内容的第二输入内容流生成第二组内容片段,其中所述第二组内容片段中的每一片段从第二编码内容流中对应于拼接点帧的位置开始,并且其中所述第二组内容片段中的每一片段与所述第一组内容片段中的对应片段是时间上对齐的;
接收对个性化内容流的请求,所述请求识别所述第一基本内容;
将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的第一部分进行传输;
接收对将所述个性化内容流修改为包括所述第二基本内容的请求;以及
将所述第二组内容片段中的一个或多个片段作为所述个性化内容流的第二部分进行传输。
2.如权利要求1所述的计算机实现的方法,其中从视图选择计算装置接收所述对修改所述个性化内容流的请求,并且其中所述计算机实现的方法还包括向所述视图选择计算装置传输所述第一基本内容和所述第二基本内容的图形表示。
3.如权利要求2所述的计算机实现的方法,其中所述图形表示是缩略图像或低分辨率视频流中的至少一个。
4.如权利要求1所述的计算机实现的方法,其中将所述第一组内容片段中的所述一个或多个片段作为所述个性化内容流的所述第一部分进行传输包括:传输包括对所述第一组内容片段的所述一个或多个片段的引用的清单数据。
5.如权利要求1所述的计算机实现的方法,其中将所述第一组内容片段中的所述一个或多个片段作为所述个性化内容流的所述第一部分进行传输包括:
传输包括一组占位符引用的清单数据;
生成映射信息,所述映射信息将所述组占位符引用中的各个占位符引用映射至所述第一组内容片段中的所述一个或多个片段中的各个片段;
接收对所述组占位符引用中的一个占位符引用的请求;
至少部分地基于所述映射信息而确定所述一个或多个片段中对应于所述占位符引用的第一片段;以及
响应于所述请求而传回所述第一片段。
6.如权利要求1所述的计算机实现的方法,其中将所述第一组内容片段打包在根据超文本传输协议(“HTTP”)实时流(“HLS”)协议或基于HTTP的MPEG动态自适应流(“MPEG-DASH”)协议中的至少一个生成的多个容器内。
7.如权利要求1所述的计算机实现的方法,其中所述第一编码内容流和所述第二编码内容流是运动图像专家组传输流(“MPEG-TS”)。
8.一种用于提供根据输入内容流的用户选定组合创建的个性化内容流的系统,所述系统包括:
数据存储区,所述数据存储区包括:
表示第一基本内容的第一组内容片段,其中所述第一组内容片段中的每一片段从第一编码内容流中对应于拼接点帧的位置开始,每一拼接点帧确保在所述拼接点帧之前的一个或多个帧与在所述拼接点帧之后的一个或多个帧之间不存在帧间依赖性;以及
表示第二基本内容的第二组内容片段,其中所述第二组内容片段中的每一片段从第二编码内容流中对应于拼接点帧的位置开始,并且其中所述第二组内容片段中的每一片段与所述第一组内容片段中的对应片段是时间上对齐的;一个或多个计算装置,所述一个或多个计算装置配置有计算机可执行指令,以:
接收对个性化内容流的请求,所述请求识别所述第一基本内容;
将所述第一组内容片段中的一个或多个片段作为所述个性化内容流的第一部分进行传输;
接收对将所述个性化内容流修改为包括所述第二基本内容的请求;以及
将所述第二组内容片段中的一个或多个片段作为所述个性化内容流的第二部分进行传输。
9.如权利要求8所述的系统,所述系统还包括编码计算系统,所述编码计算系统配置有计算机可执行指令以依据相应的第一输入内容流和第二输入内容流生成所述第一组内容片段和所述第二组内容片段。
10.如权利要求8所述的系统,其中从视图选择计算装置接收所述对修改所述个性化内容流的请求,并且其中所述一个或多个计算装置还配置有所述计算机可执行指令以向所述视图选择计算装置传输所述第一基本内容和所述第二基本内容的图形表示。
11.如权利要求10所述的系统,其中个性化内容流在输出计算装置上输出,并且其中所述输出计算装置是与所述视图选择计算装置不同的装置。
12.如权利要求10所述的系统,其中个性化内容流在所述视图选择计算装置上输出。
13.如权利要求8所述的系统,其中所述一个或多个计算装置配置有所述计算机可执行指令,以至少部分地通过传输包括对所述第一组内容片段的所述一个或多个片段的引用的清单数据将所述第一组内容片段中的所述一个或多个片段作为所述个性化内容流的所述第一部分进行传输。
14.如权利要求8所述的系统,其中所述一个或多个计算装置配置有所述计算机可执行指令,以至少部分地通过以下方式将所述第一组内容片段中的所述一个或多个片段作为所述个性化内容流的所述第一部分进行传输:
传输包括一组占位符引用的清单数据;
生成映射信息,所述映射信息将所述组占位符引用中的各个占位符引用映射至所述第一组内容片段中的所述一个或多个片段中的各个片段;
接收对所述组占位符引用中的一个占位符引用的请求;
至少部分地基于所述映射信息而确定所述一个或多个片段中对应于所述占位符引用的第一片段;以及
响应于所述请求而传回所述第一片段。
15.如权利要求8所述的系统,其中从视图选择计算装置接收所述对修改所述个性化内容流的请求,并且其中所述视图选择计算装置响应于来自用户的输入而传输所述对修改所述个性化内容流的请求,所述输入包括以下中的一个或多个:对所述第一基本内容和所述第二基本内容的图形表示的选择,对所述视图选择计算装置的取向的修改,或对所述视图选择计算装置上的物理输入的选择。
CN201880054202.0A 2017-09-05 2018-08-23 使用对齐编码内容片段的个性化内容流 Pending CN111316652A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/696,065 US10911512B2 (en) 2017-09-05 2017-09-05 Personalized content streams using aligned encoded content segments
US15/696,065 2017-09-05
PCT/US2018/047736 WO2019050693A1 (en) 2017-09-05 2018-08-23 PERSONALIZED CONTENT STREAM USING ALIGNED CODED CONTENT SEGMENTS

Publications (1)

Publication Number Publication Date
CN111316652A true CN111316652A (zh) 2020-06-19

Family

ID=63490745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880054202.0A Pending CN111316652A (zh) 2017-09-05 2018-08-23 使用对齐编码内容片段的个性化内容流

Country Status (4)

Country Link
US (1) US10911512B2 (zh)
EP (1) EP3679717A1 (zh)
CN (1) CN111316652A (zh)
WO (1) WO2019050693A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10965967B2 (en) * 2016-12-31 2021-03-30 Turner Broadcasting System, Inc. Publishing a disparate per-client live media output stream based on dynamic insertion of targeted non-programming content and customized programming content
US20210368221A1 (en) * 2016-12-31 2021-11-25 Turner Broadcasting System, Inc. Method and system for managing a pre-encoded media asset for immediate playback
US10911512B2 (en) 2017-09-05 2021-02-02 Amazon Technologies, Inc. Personalized content streams using aligned encoded content segments
US10838924B2 (en) * 2017-10-02 2020-11-17 Comcast Cable Communications Management, Llc Multi-component content asset transfer
CN110507983A (zh) * 2018-05-21 2019-11-29 仁宝电脑工业股份有限公司 互动式投影系统和互动式投影方法
US10904590B2 (en) * 2018-05-23 2021-01-26 Otter Network, LLC Method and system for real time switching of multimedia content
US11290757B2 (en) 2018-09-28 2022-03-29 Comcast Cable Communications, Llc Per-segment parameters for content
US11183220B2 (en) * 2018-10-03 2021-11-23 Mediatek Singapore Pte. Ltd. Methods and apparatus for temporal track derivations
US11205456B2 (en) 2019-01-09 2021-12-21 Mediatek Singapore Pte. Ltd. Methods and apparatus for using edit operations to perform temporal track derivations
US11341184B2 (en) * 2019-02-26 2022-05-24 Spotify Ab User consumption behavior analysis and composer interface
US11695817B2 (en) * 2019-03-20 2023-07-04 Qualcomm Incorporated Methods and apparatus to facilitate using a streaming manifest including a profile indication
US11611798B2 (en) * 2019-04-05 2023-03-21 Sony Interactive Entertainment LLC IDR fracking for glass to glass latency reduction
CN114270436A (zh) * 2019-07-19 2022-04-01 英迪股份有限公司 无线通信系统中的自适应音频处理方法、设备、计算机程序及其记录介质
WO2021174219A1 (en) 2020-02-28 2021-09-02 Hulu, LLC Identification of elements in a group for dynamic element replacement
US11765421B2 (en) * 2020-02-28 2023-09-19 Hulu, LLC Client based storage of remote element resolutions
WO2021225608A1 (en) 2020-05-08 2021-11-11 WeMovie Technologies Fully automated post-production editing for movies, tv shows and multimedia contents
US11070888B1 (en) 2020-08-27 2021-07-20 WeMovie Technologies Content structure aware multimedia streaming service for movies, TV shows and multimedia contents
US11812121B2 (en) * 2020-10-28 2023-11-07 WeMovie Technologies Automated post-production editing for user-generated multimedia contents
US11297383B1 (en) 2020-11-20 2022-04-05 International Business Machines Corporation Gap filling using personalized injectable media
US11539997B1 (en) * 2021-06-24 2022-12-27 Spotify Ab Systems and methods for on-the-fly repackaging
US11321639B1 (en) 2021-12-13 2022-05-03 WeMovie Technologies Automated evaluation of acting performance using cloud services
US11736781B1 (en) * 2022-04-18 2023-08-22 Cox Communications, Inc. Dynamic splice point adjustment and feedback for video signals
US20240112703A1 (en) * 2022-09-30 2024-04-04 Amazon Technologies, Inc. Seamless insertion of modified media content

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130326024A1 (en) * 2012-06-01 2013-12-05 Verizon Patent And Licensing Inc. Adaptive hypertext transfer protocol ("http") media streaming systems and methods
CN103583050A (zh) * 2011-06-08 2014-02-12 皇家Kpn公司 空间分段的内容的递送
CN104320678A (zh) * 2014-10-30 2015-01-28 杭州宽云视讯科技有限公司 一种基于动态视频流开展广播终端点播业务的方法
CN105409226A (zh) * 2013-07-25 2016-03-16 华为技术有限公司 有效控制自适应流媒体中的客户端行为的系统和方法
US20160182593A1 (en) * 2014-12-23 2016-06-23 Canon Kabushiki Kaisha Methods, devices, and computer programs for improving coding of media presentation description data
US9462028B1 (en) * 2015-03-30 2016-10-04 Zap Systems Llc System and method for simultaneous real time video streaming from multiple mobile devices or other sources through a server to recipient mobile devices or other video displays, enabled by sender or recipient requests, to create a wall or matrix of real time live videos, and to enable responses from those recipients
US20160314819A1 (en) * 2015-04-24 2016-10-27 Wowza Media Systems, LLC Systems and methods of thumbnail generation
WO2017029400A1 (en) * 2015-08-20 2017-02-23 Koninklijke Kpn N.V. Forming one or more tile streams on the basis of one or more video streams
CN107113476A (zh) * 2015-01-12 2017-08-29 诺基亚技术有限公司 用于视频流的方法、装置以及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100588B1 (en) * 2012-02-28 2015-08-04 Bruce A. Seymour Composite image formatting for real-time image processing
US8495675B1 (en) 2012-07-30 2013-07-23 Mdialog Corporation Method and system for dynamically inserting content into streaming media
KR20150072231A (ko) 2013-12-19 2015-06-29 한국전자통신연구원 멀티 앵글 뷰 서비스 제공 장치 및 방법
US10911512B2 (en) 2017-09-05 2021-02-02 Amazon Technologies, Inc. Personalized content streams using aligned encoded content segments

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103583050A (zh) * 2011-06-08 2014-02-12 皇家Kpn公司 空间分段的内容的递送
US20130326024A1 (en) * 2012-06-01 2013-12-05 Verizon Patent And Licensing Inc. Adaptive hypertext transfer protocol ("http") media streaming systems and methods
CN105409226A (zh) * 2013-07-25 2016-03-16 华为技术有限公司 有效控制自适应流媒体中的客户端行为的系统和方法
CN104320678A (zh) * 2014-10-30 2015-01-28 杭州宽云视讯科技有限公司 一种基于动态视频流开展广播终端点播业务的方法
US20160182593A1 (en) * 2014-12-23 2016-06-23 Canon Kabushiki Kaisha Methods, devices, and computer programs for improving coding of media presentation description data
CN107113476A (zh) * 2015-01-12 2017-08-29 诺基亚技术有限公司 用于视频流的方法、装置以及计算机可读存储介质
US9462028B1 (en) * 2015-03-30 2016-10-04 Zap Systems Llc System and method for simultaneous real time video streaming from multiple mobile devices or other sources through a server to recipient mobile devices or other video displays, enabled by sender or recipient requests, to create a wall or matrix of real time live videos, and to enable responses from those recipients
US20160314819A1 (en) * 2015-04-24 2016-10-27 Wowza Media Systems, LLC Systems and methods of thumbnail generation
WO2017029400A1 (en) * 2015-08-20 2017-02-23 Koninklijke Kpn N.V. Forming one or more tile streams on the basis of one or more video streams

Also Published As

Publication number Publication date
WO2019050693A1 (en) 2019-03-14
EP3679717A1 (en) 2020-07-15
US20190075148A1 (en) 2019-03-07
US10911512B2 (en) 2021-02-02

Similar Documents

Publication Publication Date Title
US10911512B2 (en) Personalized content streams using aligned encoded content segments
US20210211483A1 (en) Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11785289B2 (en) Receiving device, transmitting device, and data processing method
JP6054398B2 (ja) 適応httpストリーミングのための表示の改善された切り替えを提供する切替シグナリング方法
US9628536B2 (en) Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
EP2481195B1 (en) Enhanced block-request streaming using url templates and construction rules
US8898228B2 (en) Methods and systems for scalable video chunking
JP5728736B2 (ja) コーデック適用フレーム・サイズでの音声スプリッティング
DK2481198T3 (en) IMPROVED BLOCK REQUEST STREAMING USING SCALABLE CODING
CA2774923C (en) Enhanced block-request streaming system using signaling or block creation
IL234872A (en) Direct Viewing Prevention System - Request for Low View Direct Live Engagement
US10693642B1 (en) Output switching for encoded content streams
US10652625B1 (en) Synchronization of multiple encoders for streaming content
US10812558B1 (en) Controller to synchronize encoding of streaming content
US10652292B1 (en) Synchronization of multiple encoders for streaming content

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200619

RJ01 Rejection of invention patent application after publication