CN115314756B - 来自多个源的动态多媒体流插入的方法和存储介质 - Google Patents

来自多个源的动态多媒体流插入的方法和存储介质 Download PDF

Info

Publication number
CN115314756B
CN115314756B CN202210867104.7A CN202210867104A CN115314756B CN 115314756 B CN115314756 B CN 115314756B CN 202210867104 A CN202210867104 A CN 202210867104A CN 115314756 B CN115314756 B CN 115314756B
Authority
CN
China
Prior art keywords
multimedia
discard
stream
metadata
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210867104.7A
Other languages
English (en)
Other versions
CN115314756A (zh
Inventor
M·布林克利
M·金达尔
K·S·夏姆斯
A·X·张
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
Priority claimed from US15/624,450 external-priority patent/US10880589B2/en
Priority claimed from US15/624,453 external-priority patent/US10848824B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Priority to CN202210867104.7A priority Critical patent/CN115314756B/zh
Publication of CN115314756A publication Critical patent/CN115314756A/zh
Application granted granted Critical
Publication of CN115314756B publication Critical patent/CN115314756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/47202End-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 requesting content on demand, e.g. video on demand
    • 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/2665Gathering content from different sources, e.g. Internet and satellite
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • 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/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/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/4722End-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 requesting additional data associated with the content
    • 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/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4755End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for defining user preferences, e.g. favourite actors or genre
    • 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/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4756End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • 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/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • 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/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Astronomy & Astrophysics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及来自多个源的动态多媒体流插入的系统和存储介质。所述多媒体流可以包括将多媒体内容插入所述多媒体流中的指示。可以从多个片段中选择插入片段,使得部分地基于元数据诸如与所述多媒体流的所述接收方相关联的元数据来选择所述插入片段。可以获得与所述插入片段相关联的元数据。可以基于各种信息诸如与所述接收方相关联的元数据和与所述插入片段相关联的元数据来确定对合规要求的满足。所述插入片段可以作为所述多媒体流的一部分可用。

Description

来自多个源的动态多媒体流插入的方法和存储介质
相关申请的交叉引用
本申请是申请日为2018年5月30日、发明名称为“来自多个源的动态多媒体流插入的系统和存储介质”的中国专利申请201880039618.5的分案申请,该中国专利申请要求2017年6月15日提交的标题为“DYNAMIC MULTIMEDIA STREAM INSERTION FROM MULTIPLESOURCES”的美国专利申请号15/624,450和2017年6月15日提交的标题为“DYNAMICDETECTION AND MITIGATION OF MULTIMEDIA STREAM ABANDONMENT”的美国专利申请号15/624,453的优先权。上述专利申请的公开内容全部以引用方的式并入本文。
技术领域
本申请涉及来自多个源的动态多媒体流插入。
背景技术
客户和其他用户经常访问数字内容提供方以流式传输多种数字内容。根据请求,数字内容提供方可以将数字内容流式传输到观看者的计算装置上,从而使观看者能够通过自己的计算装置访问和使用数字内容。为观看者定制数字内容的传送具有挑战性,并且为每个观看者预先生成定制流可能是低效和/或不切实际的。尝试为大量用户预先生成定制内容可能会大大增加数字内容提供方所需的计算资源。
虽然动态生成定制内容可能比预先生成定制内容更有利,但是在动态生成定制内容方面存在许多技术挑战。定制内容可能具有从中生成内容的多个源。在具有大量用户的复杂系统中,来自多个源的动态多媒体流插入带来了许多复杂的技术挑战。
发明内容
根据本申请的实施方式,本申请提供了一种计算机实现的方法,包括:至少部分地基于与第一放弃流相关联的放弃元数据来检测条件的满足,所述放弃元数据指示与所述第一放弃流的放弃相关联的一个或多个多媒体片段;至少部分地基于所述放弃元数据,从多个事件驱动的函数中选择事件驱动的函数;作为检测到满足条件的结果,提供计算环境以执行所述事件驱动的函数;获得与多个放弃的多媒体流相关联的放弃元数据集合,所述集合包括共同的放弃元数据;以及至少部分地基于所述放弃元数据集合,从多个放弃的原因中确定与多个多媒体流的至少一部分相关联的放弃原因,其中所述放弃原因选自多个放弃的原因,以及其中所述多个放弃的原因包括技术错误和内容错误。
根据本申请的另外的实施方式,本申请还提供了一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令使所述计算机系统至少:至少部分地基于与第一放弃流相关联的放弃元数据来检测条件的满足,所述放弃元数据指示与所述第一放弃流的放弃相关联的一个或多个多媒体片段;至少部分地基于所述放弃元数据,从多个事件驱动的函数中选择事件驱动的函数;作为检测到满足条件的结果,提供计算环境以执行所述事件驱动的函数;获得与多个放弃的多媒体流相关联的放弃元数据集合,所述集合包括共同的放弃元数据;以及至少部分地基于所述放弃元数据集合,从多个放弃的原因中确定与多个多媒体流的至少一部分相关联的放弃原因,其中所述放弃原因选自所述多个放弃的原因,以及其中所述多个放弃的原因包括技术错误和内容错误。
附图说明
将参考附图来描述各种技术,在附图中:
图1示出了其中可实现各种实施方案的环境;
图2示出了其中可以结合事件驱动的计算服务实现合规例程的环境;
图3示出了其中事件驱动的计算服务可以基于检测到的转码错误的类型从多个事件驱动的函数中进行选择的环境;
图4示出了选择插入片段的图示;
图5示出了用于从多个源动态生成多媒体流的过程;
图6示出了用于基于定制的合规逻辑确定插入片段的合规性的过程;
图7示出了其中放弃多媒体流的环境;
图8示出了其中可以结合事件驱动的计算服务实现放弃例程的环境;
图9示出了用于监测和诊断多媒体流的放弃的过程;并且
图10示出其中可以实现各种实施方案的环境。
具体实施方式
多媒体操纵服务可以是用作以定制方式执行将多媒体内容动态插入流中的过程的一部分的服务。例如,两个观看者可以发出相同的请求(例如,观看特定节目诸如电影、体育赛事、实况广播的请求),并且第一多媒体回放装置的第一观看者可以接收不同于第二观看者在第二多媒体回放装置上接收的流的多媒体流。多媒体操纵服务可以被配置为执行用于动态生成多媒体输出流的过程,使得多媒体操纵服务被配置为:接收对多媒体内容的请求;从多媒体传送平台接收所请求内容的一个或多个多媒体片段;检测所接收的片段中的至少一个片段包括插入标记(例如,在清单中);将与请求者相关联的元数据提供给多媒体选择服务;响应于提供的元数据,接收一个或多个附加片段;以及使用从多媒体传送平台接收的一个或多个多媒体片段和从多媒体选择服务接收的一个或多个附加片段向请求者传输多媒体输出流。此类过程可用于基于与请求者相关联的元数据向不同请求者生成定制的多媒体输出,该元数据可包括关于观看者、回放装置、地理位置等的信息,所述信息可以用来更好地确定如何定制内容以供观看者享受。
可以在若干上下文中利用多媒体操纵服务,诸如基于相应观看者的偏好定制提供给多个观看者的多媒体内容。例如,考虑多媒体操纵服务从多个观看者接收观看电影的请求的情况。在该示例中,多媒体操纵服务还接收有关做出请求的每个用户的元数据,诸如特定用户已评分的其他电影、电影的类型(例如,动作、喜剧、浪漫)等,并且使用元数据基于每个观看者的偏好定制电影。继续该示例,当多媒体操纵服务接收观看电影的请求时,多媒体操纵服务从多媒体传送平台接收电影的多媒体流。电影流被分成包括元数据(诸如插入标记)的多媒体片段。
插入标记可以指示应动态插入内容的位置、内容应持续多长时间等。继续相同的示例,电影可以是在“汽车追逐”场景开始处具有插入标记的动作电影;多媒体操纵服务可以检测插入标记并从多媒体选择服务中检索“汽车追逐”场景的片段。作为检索的一部分,多媒体操纵服务可以将请求者的用户名和/或先前的电影评分作为元数据提供给多媒体选择服务作为请求的一部分。多媒体选择服务可以使用接收的元数据结合请求确定哪些多媒体片段提供多媒体操纵服务。例如,多媒体选择服务可以访问多个版本的“汽车追逐”场景--例如,默认版本;加长版本(例如,更长的追逐);戏剧性版本(例如,更多的爆炸);血腥版本(例如,血腥);非血腥版本(例如,无血腥)等。多媒体选择服务可以使用有关用户的元数据(诸如用户的先前评分)选择存储在媒体存储库、后端存储系统等中的“汽车追逐”的版本。所述选择可以通过各种方式执行,诸如通过基于用户的过往评分历史为每个版本分配个性化分数(例如,对先前动作电影的高评分可以指示更长或更戏剧性的追逐场景适合于用户)并选择具有最高个性化分数的版本。
可以利用合规例程来确定是否应使用由多媒体选择服务提供给多媒体操纵服务的插入片段。在一些示例中,事件驱动的计算服务与合规例程结合使用以接收与由多媒体传送平台提供的多媒体输入流有关的元数据、与由多媒体选择服务提供的插入片段有关的元数据以及关于请求的元数据(例如,有关请求媒体和/或回放装置的用户的元数据)。合规例程可以确定所提供的插入片段是否满足一个或多个合规标准。例如,合规标准可确定插入片段包括不适合特定年龄组的内容(例如,插入片段可能包括不适合年纪较小的观看者的粗俗语言),并且确定请求者是否满足所述标准。例如,多媒体选择服务可用于提供对应于插入到广播中的广告的两个或更多个插入片段,并且可运行合规例程以验证广告是否单独地和/或组合地满足一个或多个合规标准。应注意,特定广告在广播期间单独地满足合规标准,但彼此相互结合则不满足--一个这样的示例是以下合规要求:如果在广播期间显示第一汽车制造商的广告,则在广播的剩余部分不应显示其他汽车制造商的广告。更一般而言,关于插入片段的元数据可用于基于选择了哪些其他插入片段来确定插入片段的合规性。在某些情况下,多媒体操纵服务不直接将选择的片段提供给多媒体回放装置,而是,多媒体操纵服务将这些片段提供给内容传送网络。内容传送网络(CDN)可以指以高可用性和高性能向用户传送内容的网络。然后,一个或多个CDN可以向多媒体回放装置提供内容。
在一些示例中,由客户将多媒体源直接提供给多媒体传送平台。然而,应注意,在其他情况下,多媒体源可以诸如经由转码器间接提供给多媒体传送平台。例如,客户可以将多媒体源提供给转码器,转码器将源从一种编码格式转码为另一种编码格式,使得转码媒体的各种质量可不同于源(分辨率、纵横比、比特率、帧频等可不同)。在多媒体传送平台要求接收的多媒体具有特定格式或格式集的情况下,可能会发生这种情况。在某些情况下,客户向多媒体传送平台提供标识符或网络地址或可以被多媒体传送平台用于获得多媒体源的其他信息。例如,多媒体传送平台可以接收至视频的URL、检索视频、确定视频与所需格式不匹配、将视频提供给具有将视频转码为特定格式的指令的转码器并且接收视频的转码版本。
事件驱动的计算服务可以确定事件何时发生,并且响应于事件被触发而执行事件驱动的函数。例如,事件触发可以是当插入片段被多媒体选择服务选择或以其他方式可用于多媒体操纵服务时,检测到插入片段被提供给多媒体操纵服务,可以(例如,由部件本身或监测插入片段的选择的轮询服务)通知事件驱动的计算服务已选择了多媒体片段并且可将其插入到特定的多媒体流中、确定是否满足触发片段修整器的条件,并且指定响应于满足任何条件应运行的自定义代码或逻辑。事件驱动的计算服务可以访问事件驱动的函数的存储库。存储库可以是任何合适的存储系统,并且可以包括硬件、软件及其组合。存储库可包括触发条件与在满足关联触发时将被调用的事件驱动的函数之间的关联。可以使用数据库、数据结构诸如地图数据结构(即,关联数组)及其任一组合来实现该存储库。例如,在指示已经为特定多媒体源选择了特定插入片段的事件和可用于确定插入片段是否应被用作多媒体输出流的一部分的事件驱动的函数之间可能存在关联。客户与事件驱动的函数之间也可存在关联。当事件驱动的计算服务接收到事件时,事件驱动的计算服务可以访问事件驱动的函数存储库并获得对应于该事件的事件驱动的函数。客户可以以可执行代码、源代码、应用程序、脚本等形式向事件驱动的计算服务提供事件驱动的函数,事件驱动的函数可以存储在事件驱动的函数的存储库中,并且事件驱动的函数可以在某些条件下作为合规例程被调用。也可存在一个或多个默认事件驱动的函数--例如,在一些系统中可以存在用于验证多媒体源和插入片段的分辨率、纵横比、帧频(或其某种组合)匹配的默认事件驱动的函数。
在使用事件获得与事件相关联的一个或多个事件驱动的函数之后,事件驱动的计算服务可以调用所述一个或多个获得的事件驱动的函数。该事件可以由多媒体操纵服务接收视频文件形式的插入片段、至具有元数据(指示期望编码格式)的夹层质量多媒体片段的URL等来触发。事件驱动的计算服务可以接收事件、选择应响应于事件调用的一个或多个事件驱动的函数,并且使用合规例程调用适合响应于事件的事件驱动的函数。
在前述和以下描述中,描述了各种技术。出于解释的目的,将阐述特定的配置和细节,以便提供对实现所述技术的可能方式的透彻理解。然而,同样显而易见的是,下面所描述的技术可以在不具有特定细节的情况下以不同配置来实践。此外,可以省略或简化众所周知的特征,以避免模糊所描述的技术。
图1示出了其中可以实现各种实施方案的环境。计算环境100示出了多媒体操纵服务102;多媒体传送平台104;多媒体选择服务106;合规例程108;以及多媒体回放装置110和112。
多媒体操纵服务102可以是用作以个性化方式执行将多媒体内容动态插入到流中的过程的一部分的服务。例如,两个观看者可以发出相同的请求(例如,观看特定节目诸如电影、体育赛事、实况广播的请求),并且第一多媒体回放装置110的第一观看者可以接收不同于第二观看者在第二多媒体回放装置112上接收的流的多媒体流。可以使用软件、硬件或其组合来实现多媒体操纵服务102。在一些实施方案中,多媒体操纵服务102被配置为接收包括一个或多个多媒体片段的多媒体输入流114。多媒体输入流114可以符合各种标准和协议,诸如HTTP实时流式传输(HLS)协议、HTTP动态自适应流式传输(DASH)、HTTP动态流式传输(HDS)协议、平滑流式传输协议等。在各种实施方案中,多媒体输入流114可以由具有对应清单文件的多个多媒体片段表示。多媒体片段可以是多媒体内容的截片--例如,多媒体内容对应于电影或电视节目,并且多媒体片段是片段的连续两秒截片,所述多媒体片段在被组合时形成电影或节目。多媒体输入流114的一个或多个片段可以包括插入多媒体内容的指示。多媒体操纵服务102还可以被配置为从多媒体选择服务106接收附加的多媒体内容(例如,插入片段116)。可以至少部分地基于特定多媒体输出流的接收方来选择多媒体内容(例如,插入片段116)。例如,针对第一多媒体回放装置110的第一观看者选择的内容可以与针对第二多媒体回放装置112的第二观看者选择的内容不同。
多媒体操纵服务102可以被配置为执行用于动态生成多媒体输出流的过程,使得多媒体操纵服务包括被配置为执行以下操作的软件:接收对多媒体内容的请求;从多媒体传送平台104接收所请求内容的一个或多个多媒体片段114;检测所接收的片段中的至少一个片段包括插入标记(例如,在清单中);将与请求者相关联的元数据提供给多媒体选择服务106;响应于提供的元数据,接收一个或多个附加片段;以及使用从多媒体传送平台104接收的一个或多个多媒体片段114和从多媒体选择服务106接收的一个或多个附加片段向请求者传输多媒体输出流。此类过程可用于基于与请求者相关联的元数据向不同请求者生成定制的多媒体输出,该元数据可包括关于观看者、回放装置、地理位置等的信息,所述信息可以用来更好地确定如何定制内容以供观看者享受。
可以在若干上下文中利用多媒体操纵服务102,诸如基于相应观看者的偏好定制提供给多个观看者的多媒体内容。例如,考虑多媒体操纵服务102从多个观看者接收观看电影的请求的情况。在该示例中,多媒体操纵服务102还接收有关做出请求的每个用户的元数据,诸如特定用户已评分的其他电影、电影的类型(例如,动作、喜剧、浪漫),并且使用元数据基于每个观看者的偏好定制电影。继续该示例,当多媒体操纵服务102接收观看电影的请求时,多媒体操纵服务102从多媒体传送平台接收电影的多媒体流。电影流被分成包括元数据(诸如插入标记)的多媒体片段。
插入标记可以指示应动态插入内容的位置、内容应持续多长时间等。继续相同的示例,电影可以是在“汽车追逐”场景开始处具有插入标记的动作电影;多媒体操纵服务102可以检测插入标记并从多媒体选择服务106中检索“汽车追逐”场景的片段。作为检索的一部分,多媒体操纵服务102可以将请求者的用户名和/或先前的电影评分作为元数据提供给多媒体选择服务106作为请求的一部分。多媒体选择服务106可以使用接收的元数据结合请求确定哪些多媒体片段提供多媒体操纵服务102。例如,多媒体选择服务106可以访问多个版本的“汽车追逐”场景——例如,默认版本;加长版本(例如,更长的追逐);戏剧性版本(例如,更多的爆炸);血腥版本(例如,血腥);非血腥版本(例如,无血腥)等。多媒体选择服务106可以使用有关用户的元数据(诸如用户的先前评分)选择存储在媒体存储库、后端存储系统等中的“汽车追逐”的版本。所述选择可以通过各种方式执行,诸如通过基于用户的过往评分历史为每个版本分配个性化分数(例如,对先前动作电影的高评分可以指示更长或更戏剧性的追逐场景适合于用户)并选择具有最高个性化分数的版本。可以将所选多媒体片段的标识符诸如网络地址、统一资源标识符(URI)、统一资源定位符(URL)等提供给多媒体操纵服务102。另外,在一些实施方案中,可以结合标识符来提供安全令牌,使得基于安全令牌的呈现来确定对媒体的检索和/或访问。可以使用硬件、软件或其组合来实现多媒体选择服务106。
合规例程108可以用于确定由多媒体选择服务106提供给多媒体操纵服务102的插入片段的合规性。在一些实施方案中,可以结合合规例程108利用诸如本公开中其他地方所描述的事件驱动的计算服务。合规例程可以被配置为接收与由多媒体传送平台104提供的多媒体输入流114有关的元数据、与由多媒体选择服务106提供的插入片段116有关的元数据以及关于请求的元数据(例如,有关请求媒体和/或回放装置的用户的元数据)。合规例程108可以确定所提供的插入片段是否满足一个或多个合规标准。例如,合规标准可确定插入片段116包括不适合特定年龄组的内容(例如,插入片段116可能包括不适合年纪较小的观看者的粗俗语言),并且确定请求者是否满足所述标准。可以使用可用于系统的各种信息来做出该确定——例如,在观看所请求的电影之前,观看者可能已经被提示输入他/她的年龄。作为第二示例,多媒体选择服务106可以用于提供对应于插入到广播中的广告的两个或更多个插入片段,并且合规例程108可以包括特定广告可以在广播期间单独显示但是不能彼此结合显示的合规标准——一个这样的示例是以下合规要求:如果在广播期间显示第一汽车制造商的广告,则在广播的剩余部分不应显示其他汽车制造商的广告。更一般而言,关于插入片段的元数据可用于基于选择了哪些其他插入片段来确定插入片段的合规性。
合规例程108可以被配置为利用事件驱动的函数确定所选择的插入片段的合规性。例如,内容提供方(例如,输入流114、插入片段116或两者的内容提供方)可以指定当特定内容被提供给多媒体操纵服务102时调用的一个或多个定制合规标准。因此,插入片段在某些情况下可能是适当的(例如,在与第一输入流相关联的合规逻辑确定插入片段通过合规标准的情况下),但在其他情况下可能不合适(例如,在与第二输入流相关联的合规逻辑确定插入片段不符合不同的合规标准集合的情况下)。在一些环境中,内容提供方将多媒体输入源间接(例如,首先将源多媒体提供给转码器,然后源多媒体的转码版本被提供给多媒体传送平台104)或直接提供给多媒体传送平台104,并且还提供与合规逻辑结合使用的一个或多个合规逻辑。结合图2在本公开的其他地方描述这种环境的示例。合规例程108可以向多媒体操纵服务102提供指示,其指示插入片段是否满足一个或多个合规标准。
多媒体操纵服务102可以被配置为动态地生成输出定制的多媒体输出流。可以将针对特定用户选择的插入片段动态地插入到多媒体输出流中,该多媒体输出流包括多媒体输入流114的一个或多个片段以及一个或多个插入片段。如上所述,可以至少部分地基于与请求者有关的元数据来选择插入片段。对于由第一多媒体回放装置110的观看者做出的第一请求,多媒体输出流可以包括由多媒体选择服务106提供给多媒体操纵服务102的第一定制插入片段118。对于由第二多媒体回放装置112的观看者做出的第二请求,多媒体输出流可以包括由多媒体选择服务106提供给多媒体操纵服务102的第二定制插入片段120,其中第一定制插入片段118和第二定制插入片段120包括不同的多媒体内容。
还应注意,在某些情况下,至少部分地基于回放装置进行插入片段的选择。例如,在观看者在作为移动装置的第一多媒体回放装置上请求一条特定多媒体内容的情况下,多媒体选择服务可以基于该移动装置提供内容——例如,如果插入片段是广告,则所选择的广告可以来自蜂窝服务提供方。类似地,如果同一用户从用户住所向第二多媒体播放装置(例如,机顶盒)请求相同的内容,则所选择的广告可能针对家具、烹饪、固定电话有线服务(landline cable service)等。因此,正如前面和后面已经清楚说明的,元数据诸如多媒体回放装置的类型、回放装置的地理位置和其他信息可以至少部分地用于插入片段的选择。其他信息可以包括例如网络地址、IP地址、(例如,由用户指定的)装置名称、MAC地址、由回放装置(例如,基于硬件的捕获装置诸如网络摄像头)的传感器提供的音频和/或视觉信息等。多媒体回放装置诸如图1中所示的那些可包括硬件传感器,诸如全球定位卫星(GPS)接收器。
多媒体回放装置可以是请求和/或接收多媒体内容的装置。诸如图1所示的多媒体装置可以是智能电话、平板计算装置、个人计算机、膝上型计算机、机顶盒、智能电视等。观看者可以使用多媒体回放装置直接(例如,在具有内置显示器的智能电话的情况)或间接地(例如,在连接到电视的机顶盒的情况)观看多媒体。接收根据本文描述的技术提供的多媒体的观看者可对呈现给他或她的多媒体内容的质量更加满意。
在一些实施方案中,多媒体操纵服务102不直接将选择的片段提供给多媒体回放装置110和112,而是,多媒体操纵服务102将这些片段提供给内容传送网络(图1中未示出)。内容传送网络(CDN)可以指以高可用性和高性能向用户传送内容的网络。然后,一个或多个CDN可以向多媒体回放装置提供内容。
图2示出了其中可以利用事件驱动的计算服务在其中实现各种实施方案的环境。计算环境200示出了多媒体操纵服务202;多媒体传送平台204;多媒体选择服务206;转码器208;事件驱动的计算服务210;合规例程212;多媒体源214;以及合规逻辑216。多媒体源214和合规逻辑216可以由客户或第三方实体提供给计算环境200的各种部件。
多媒体操纵服务202、多媒体传送平台204和多媒体选择服务206可以以任何合适的方式实现,诸如结合本公开的图1在别处描述的那些。多媒体操纵服务202还可以被配置为向事件驱动的计算服务210提供数据和/或元数据,所述数据和/或元数据可以被合规例程212用于确定插入片段是否适当或者是否应使用另一个插入片段。例如,当多媒体选择服务206选择插入片段并将选择数据提供给多媒体操纵服务202时,事件驱动的计算服务可以接收与插入片段相关的信息,诸如至插入片段的URL、关于片段的视听信息诸如其分辨率、帧频、比特率、长度等。多媒体操纵服务202还可以被配置为从转码器208接收多媒体数据,这可以在多媒体选择服务所选择的插入片段在特定格式不可用并且作为选择插入片段的过程的一部分被转码时发生。
多媒体传送平台204可以从一个或多个转码器接收多媒体,并且使用接收的多媒体执行各种操作。多媒体传送平台204可以从一个或多个转码器接收多媒体,并且使用接收的多媒体执行各种操作。作为示例,多媒体传送平台204可以从各种转码器和/或编码器以各种格式接收多媒体片段的多个副本,并且选择最适当的视频和音频格式以提供给特定的回放装置。在该示例中,如果观看者无法分辨出较小尺寸的智能电话显示器上720p和1080p视频之间的差异,则多媒体传送平台204可以提供最高720p分辨率的智能电话视频。以这种方式,多媒体传送平台204可以在智能电话上向多媒体内容的观看者提供最佳可用质量,同时由于缓冲720p视频而不是1080p视频,降低带宽成本和初始视频开始延迟。同样,对于仅支持立体声音频的装置,出于与上述适当视频格式选择类似的理由,多媒体传送平台204可以仅提供AAC立体声音频格式,而不提供5.1环绕声音频。多媒体传送平台204可以被配置为提供附加功能,诸如将广告插入多媒体内容中。
图2示出了由客户直接将多媒体源214(例如,MP4视频文件)提供给多媒体传送平台204的环境。然而,应注意,在一些实施方案中,多媒体源214可以诸如经由转码器间接提供给多媒体传送平台204。例如,客户可以将多媒体源214提供给转码器(图2中未示出),转码器将多媒体源214从一种编码格式转码为另一种编码格式,使得转码媒体的各种质量可不同于源(分辨率、纵横比、比特率、帧频等可不同)。在多媒体传送平台204要求接收的多媒体具有特定格式或格式集的情况下,可能会发生这种情况。在一些实施方案中,客户向多媒体传送平台204提供标识符或网络地址或可以被多媒体传送平台204用于获得多媒体源214的其他信息。例如,多媒体传送平台204可以接收至视频的URL、检索视频、确定视频与所需格式不匹配、将视频提供给具有将视频转码为特定格式的指令的转码器并且接收视频的转码版本。
多媒体选择服务206可以从多媒体操纵服务202接收指示请求插入片段的请求。多媒体选择服务206可以基于作为请求的一部分接收的信息(例如,用户元数据、装置类型、地理位置)选择合适的插入片段。多媒体选择服务206可以获得插入片段或对所选择的插入片段的标引(其可以是URL)。在一些实施方案中,可以结合对插入片段的请求使用转码器208。例如,特定的插入片段可以在一种格式下可用,但在另一种格式则不可用。当多媒体选择服务206选择特定的插入片段时,多媒体选择服务206可检查所选择的插入片段是否与特定格式匹配。如果该格式不是现成可用的(例如,经由存储多媒体片段的多媒体高速缓存),则多媒体选择服务206可以使用转码器208将插入片段转码为请求的格式。然后,转码的插入片段可用于多媒体操纵服务202、多媒体选择服务206、多媒体高速缓存或其某种组合。
在一些实施方案中,多媒体操纵服务202从多媒体选择服务206接收至所选择的插入片段的URL。多媒体操纵服务202可以经由URL获得插入片段。该URL可以标引夹层质量多媒体片段。夹层质量多媒体片段可以指多媒体内容的主文件或原始副本的高质量版本,使得可以使用夹层质量内容来生成质量低于夹层质量的多媒体片段的各种格式的多媒体内容。例如,夹层质量多媒体片段可用于生成多媒体片段,这些片段可由观看者在移动装置、手持装置、平板电脑、台式计算机和膝上型计算机上流式传输。一般而言,作为中间步骤,多媒体内容的原始副本或主副本可以被压缩至夹层质量格式,然后可以将夹层质量内容压缩为适合传送给观看者的格式。多媒体操纵服务202可以查询多媒体高速缓存以确定夹层质量多媒体片段的高速缓存版本在特定格式下是否可用。如果找到了高速缓存版本,则可以将高速缓存的片段用作多媒体输出流的一部分。然而,如果未找到特定格式的高速缓存版本,则多媒体操纵服务202可以将夹层质量多媒体片段提供给转码器,该转码器然后可以将夹层质量多媒体片段转换为该格式并将其提供给多媒体操纵服务202、多媒体高速缓存或两者。应注意,在各种实施方案中,可以使用至夹层质量多媒体片段的URL来代替夹层质量多媒体片段。
事件驱动的计算服务210可以确定事件何时发生,并且响应于事件被触发而调用事件驱动的函数。例如,事件触发可以是检测到插入片段被提供给多媒体操纵服务202。可以使用软件、硬件或其某种组合来实现事件驱动的计算服务210。在一些实施方案中,分布式计算资源可以响应于该事件供应和加载定制逻辑/代码、运行该代码、然后卸载该代码并取消供应所述计算资源。事件驱动的计算服务210可以被托管为数据中心的部件。可以使用事件驱动的架构来实现事件驱动的计算服务210。当插入片段被多媒体选择服务206选择或可用于多媒体操纵服务202时,可以(例如,由部件本身或监测插入片段的选择的轮询服务)通知事件驱动的计算服务210已选择了多媒体片段并且可将其插入到特定的多媒体流中、确定是否满足触发片段修整器的条件,并且指定响应于满足任何条件应运行的自定义代码或逻辑。在一些实施方案中,后端系统可以具有任务调度器,该任务调度器可以用于调度周期性任务。在一些实施方案中,当插入片段被多媒体选择服务206选择或被多媒体操纵服务202接收时,部件以编程方式通知事件驱动的计算服务此类事件已经发生,并且事件驱动的计算服务可以接收该通知并调度任务以在稍后时间调用合规例程212。
事件驱动的计算服务可以访问事件驱动的函数的存储库(图2中未示出)。存储库可以是任何合适的存储系统,并且可以包括硬件、软件及其组合。事件驱动的函数存储库可以是事件驱动的计算服务210的一部分(例如,事件驱动的计算服务210的内存数据结构)。存储库可包括触发条件与在满足关联触发时将被调用的事件驱动的函数之间的关联。可以使用数据库、数据结构诸如地图数据结构(即,关联数组)及其任一组合来实现该存储库。例如,在指示已经为特定多媒体源214选择了特定插入片段的事件和可用于确定插入片段是否应被用作多媒体输出流的一部分的合规逻辑216之间可能存在关联。客户与合规逻辑216之间也可存在关联。当事件驱动的计算服务210接收到事件时,事件驱动的计算服务210可以访问事件驱动的函数存储库并获得对应于该事件的事件驱动的函数。例如,在数据库中,可以使用事件标识符作为排序键对表进行索引或排序。如果将存储库实现为关联数组,则事件条件可以是数组的键,而事件驱动的函数可以是绑定到键的值。
注意,在一些实施方案中,事件驱动的函数可以包括大量可执行代码,并且对代码的标引可以包括在数据库条目、关联数组值等中,使得可执行代码可以经由一个或多个间接层级从存储库中获得。例如,事件驱动的函数的数据库记录可以包括事件驱动的计算服务可以用来请求可执行代码的统一资源标识符(URI);对于关联数组,该绑定值可以是标引可执行代码的指针。在一些实施方案中,系统的客户端可以从存储库中创建、读取、更新和删除事件驱动的函数。例如,客户可以以可执行代码、源代码、应用程序、脚本等形式向事件驱动的计算服务210提供合规逻辑216,合规逻辑216可以存储在事件驱动的函数的存储库中,并且事件驱动的函数可以在某些条件下由合规例程212调用。也可存在一个或多个默认逻辑——例如,在一些系统中可以存在用于验证多媒体源214和插入片段的分辨率、纵横比、帧频(或其某种组合)匹配的默认逻辑。
在使用事件获得与事件相关联的一个或多个事件驱动的函数之后,事件驱动的计算服务210可以调用所述一个或多个获得的事件驱动的函数。在图2中,该事件可以由多媒体操纵服务接收视频文件形式的插入片段、至具有元数据(指示期望编码格式)的夹层质量多媒体片段的URL等来触发。事件驱动的计算服务210可以接收事件、选择应响应于事件调用的一个或多个事件驱动的函数,并且使用合规例程212调用适合于响应于事件的事件驱动的函数。
作为监测多媒体操纵服务202的一部分,响应于检测到条件的满足,事件驱动的计算服务210可以调用合规例程212。例如,该条件可以是检测到插入片段被多媒体选择服务206选择并且可用于多媒体操纵服务202。在一些实施方案中,事件驱动的计算服务210检测条件的满足,检索要运行的事件驱动的函数(例如,合规逻辑216),并且供应计算环境来运行包括事件驱动的函数的例程。供应过程可以包括例如初始化虚拟机实例以运行例程。在事件驱动的函数完成时,合规例程可以提供关于所选择的插入片段合规或是不合规的指示。在合规例程向多媒体操纵服务提供指示之后,可以取消供应计算资源(例如,虚拟机实例)(例如,可以终止虚拟机实例),使得计算资源可用于其他用途,诸如分布式计算环境中的其他请求。
作为事件驱动的架构的第二示例,事件驱动的计算服务210可以检测条件的满足,创建新的进程或线程,并且在创建的进程或线程上执行合规逻辑216。在确定执行合规例程的结果时,进程或线程可以使用各种进程间通信(IPC)技术诸如使用远程过程调用(RPC)接口向事件驱动的计算服务提供合规结果。在提供结果之后,可以终止进程或线程,从而释放计算资源。
图3示出了其中可以实现各种实施方案的环境。计算环境300示出了事件驱动的计算服务304可以用于调用各种事件驱动的函数的示例。事件驱动的计算服务304可以上述方式接收和/或监测事件302。在一些实施方案中,事件驱动的计算服务304监测的事件包括多媒体操纵服务接收插入片段。事件驱动的计算服务304可以接收通知,所述通知指示多媒体操纵服务接收插入片段和/或多媒体选择服务向多媒体操纵服务提供插入片段并且检查该通知以确定是否调用各种类型的业务逻辑。
事件驱动的计算服务304(可以根据以上结合图2描述的那些来实现)还可以被配置为从对多媒体流的多个请求(例如,由不同用户或装置对不同广播的不同请求或对相同广播的不同请求)接收事件。事件驱动的计算服务304可以接收事件302,并且在内部(例如,使用事件驱动的计算服务的部件)或外部(例如,通过委托给另一服务)确定如何拼接可以在不同逻辑和/或不同表上操作的事件。作为示例,事件驱动的计算服务304可以包括事件驱动的函数到内容提供方或多媒体输入流的映射。
事件驱动的函数306A、306B和306C可以包括可执行代码、源代码、应用程序、脚本、例程、函数指针、例程的输入参数、回调函数、API请求或其任一组合。作为示例,事件驱动的计算服务304可以包括合规例程到指示应调用哪些例程的事件的映射。调用例程可以包括执行代码或提供可执行代码作为请求的一部分。图3示出了多个事件302,所述多个事件由事件驱动的计算服务304接收并进行拼接使得特定事件驱动的函数基于致使片段具有降低质量的错误的类型运行。响应于第一事件302A运行的事件驱动的函数306A可以不同于响应于第二事件302B运行的事件驱动的函数306B,但不必如此--在某些情况下,事件驱动的函数可以在字面上相同(例如,两个事件都使用运行来自存储器的相同可执行代码的函数指针)或在逻辑上相同(例如,相同的函数结果)。在某些情况下,事件驱动的函数可以使用包括在事件302A、302B和302C中的信息来执行工作流。
图4示出了根据以上结合图1至图3讨论的各种实施方案的序列图400。图4中所示的部件可以与本公开其他地方描述的部件一致。在一些实施方案中,客户可以例如通过应用编程接口(API)命令向事件驱动的计算服务提供合规逻辑。可执行代码、源代码、脚本、宏、参数等可以经由API命令传输到事件驱动的计算服务。客户还可以将多媒体源提供给多媒体传送平台。在一些实施方案中,将多媒体源提供给转码器,对源进行转码,并且使多媒体源的转码版本可用于多媒体传送平台。作为转码过程的一部分,可以将多媒体源拼接成一个或多个多媒体片段。多媒体传送平台可以接收多媒体源(或源的转码版本),并且将源内容作为多媒体输入流提供给多媒体操纵服务。多媒体源的片段可以作为片段的连续流的一部分提供给多媒体操纵服务。
在接收到片段时,多媒体操纵服务可以获得与该片段相关联的清单,并且检查该片段是否存在插入标记。一般而言,多媒体操纵服务可以被配置为检测多媒体插入是适当的任何指示。可以重复该过程,直到检测到具有插入标记的片段。
在检测到插入标记时,多媒体操纵服务可以向多媒体选择服务发出请求插入片段的请求。该请求可以包括元数据,诸如关于请求媒体内容的用户的元数据、关于多媒体输入流的元数据等。多媒体选择服务可以接收请求并且至少部分地基于所提供的元数据来选择插入片段(例如,作为请求的一部分)。在一些实施方案中,多媒体选择服务查询后端数据库,该后端数据库包括可用于选择插入片段的附加信息。可以提供所选择的插入片段或对所选择的插入片段的标引(例如,至片段的URL),以实现由多媒体操纵服务做出的请求。
在接收到所选择的插入片段时,事件驱动的计算服务可以接收多媒体操纵服务接收到插入片段以及关于多媒体输入流的元数据、关于插入片段的元数据等的指示。事件驱动的计算服务可以是监测和检测用于触发事件驱动的函数的条件的发生的后台服务。事件驱动的计算服务可以至少部分地基于元数据选择合规逻辑,并且执行合规例程。可由事件驱动的计算服务初始化和管理用于合规例程的计算资源。合规例程可以从事件驱动的计算服务接收一些或全部元数据,并且至少部分地基于元数据确定所选择的插入片段是否满足一个或多个合规标准。合规例程可以例如以异步回调的形式提供所选择的插入片段是否符合多媒体操纵服务的指示。在一些实施方案中,合规例程向事件驱动的计算服务提供指示,该事件驱动的计算服务可以使用通知框架来向多媒体操纵服务提供合规(或不合规)的指示。在执行合规例程之后,可以由事件驱动的计算服务对合规例程取消初始化。
图5示出了可以用于从两个或更多个源动态生成多媒体输出流的过程500的说明性示例。通常,过程500可以由任何适当的系统诸如本公开中其他地方描述的多媒体操纵服务执行。执行过程500的系统可以使用硬件、软件或其组合来执行该过程。在一些实施方案中,该过程可以在分布式环境中执行,诸如在位于数据中心中的服务器上运行的虚拟机实例上执行,该数据中心被配置为满足来自多个请求者(例如,数据中心或服务提供方的客户端)的请求。
在一个实施方案中,过程500包括从多媒体输入流获得502多媒体片段。可以从多媒体传送平台诸如结合图1描述的那些接收多媒体输入流。多媒体输入流可以符合各种标准和协议诸如HTTP实时流式传输(HLS)协议。在各种实施方案中,多媒体输入流可以由具有对应清单文件的多个多媒体片段表示。清单文件可以包括相关联的多媒体片段的各种元数据信息,包括编码格式、序列号、插入标记等。系统可以在输入流的片段到达时对其进行检查以确定是否指示插入。
系统可以获得504与所获得的片段相关联的清单。一般而言,清单可以与多媒体片段相关联。在一些实施方案中,清单可以是符合各种标准和协议的文件。例如,结合图5描述的清单符合针对HLS指定的M3U8清单格式。清单可以包括与多媒体片段相关联的元数据,诸如序列和比特率。序列可以指其中相对于其他序列播放片段的时间序列。例如,如果某个序列是值为0的数值,则表明特定片段是第一片段,并且应下载和播放的下一个片段是序列值为1的片段,然后是序列值为2的片段,等等。比特率可用于基于回放装置的可用带宽来确定在各种流之中选择哪个。回放装置可以估计其带宽并选择该带宽可以适应的最高带宽。
清单可以包括插入标记的指示。例如,符合HLS协议的清单可包括EXT-X-DISCONTINUITY标签,该标签指示与清单文件相关联的片段之后的片段应为插入片段。清单可包括有关持续时间的信息(例如,指定插入片段应为30秒长)、最大持续时间的信息(指示插入片段应最多30秒长)等。在一些实施方案中,可以在不同的时间接收清单和相关联的片段。应注意,系统有时可以在从多媒体输入流获得多媒体片段之前和/或独立于从多媒体输入流获得多媒体片段获得504清单,并且图5中所示的顺序仅仅是许多示例性实现方式中的一者的说明。
系统可以检查506所获得的清单是否具有插入标记。如上所述,符合HLS协议的EXT-X-DISCONTINUITY标签可以用作插入标记。通常,来自第二多媒体源的内容应插入多媒体输入流中的任何指示都可以用作插入指示。尽管本文讨论的示例讨论了使用清单来确定是否存在插入标记,但是一些实施方案使用嵌入在多媒体输入流本身中的插入指示来确定是否需要插入片段。在一个实施方案中,系统可以从多媒体输入流获得多媒体片段、检测音频和/或视觉模式,并且确定需要插入片段。例如,在电视广播中,检测到黑色拍岩持续预先确定的时间段(例如,100毫秒)可用于指示应插入广告片段。
如果系统确定没有插入标记、无法找到插入标记,或者以其他方式确定不应插入片段,则系统可以以诸如上面结合步骤502描述的方式继续监测输入片段的片段。然而,如果系统(例如,经由检查清单)检测到插入标记,则系统可以从多媒体选择服务获得508插入片段。多媒体选择服务可以与本公开中其他地方描述的一致。作为过程500的一部分,系统可以向多媒体选择服务发出请求插入片段的请求。该请求的输出可以是插入片段或对该插入片段的标引。请求的输入可以包括关于多媒体输入流的元数据和关于内容的请求者的元数据。关于多媒体输入流的元数据可以包括广播的类型(例如,浪漫、喜剧、动作)、广播是否是实况广播、片段的指示插入标记的序列号、与内容相关联的客户等。关于内容的请求者的元数据可以包括用户名、与请求者有关的评分信息、请求者请求内容的装置的类型、请求者的地理位置、请求者的IP地址等。通常,元数据可以被提供给多媒体选择服务,并且可以被用于选择插入片段。此外,该请求可以为插入片段指定一个或多个参数。例如,参数可以指定响应于该请求而要提供的插入片段的分辨率、纵横比、帧频等。在一些实施方案中,参数还可以包括插入片段的预期长度(例如,插入片段应为30秒长)或插入片段的长度范围(例如,插入片段应为30至90秒长)。
在一些实施方案中,系统从多媒体选择服务接收所选择的插入片段或插入片段的URI,然后向事件驱动的计算服务(诸如本公开中的其他地方所描述的那些)提供510所选择的插入片段的指示。该系统可以以任何合适的方式提供所选择的片段的指示。例如,系统可以向事件驱动的计算服务提供消息,该消息指示已经选择了插入片段、至所选择的插入片段的URL、至多媒体输入流的URL、关于多媒体输入流的附加元数据(诸如内容提供方)、流和/或选择片段的视频格式信息(例如,分辨率、纵横比、帧频)以及附加信息诸如插入片段的预期持续时间,上述信息可能已经在清单文件中指定。在一些实施方案中,系统(例如,多媒体操纵服务)不向事件驱动的计算服务提供指示,而是,事件驱动的计算服务监测系统何时从多媒体选择服务接收插入片段。
系统可以接收所选择的插入片段是否512满足一个或多个合规规则的指示。响应于插入片段由多媒体选择服务提供给系统的指示,可以经由由事件驱动的计算服务调用的合规例程提供该指示。在一些实施方案中,事件驱动的计算服务检测到插入片段已被选择,并且从事件驱动的函数的存储库中选择合规逻辑。所选择的合规逻辑可以至少部分地基于多媒体输入流,并且可以与提供多媒体输入流的客户相关联。在一些实施方案中,与客户相关联的标识符可以映射到一个或多个合规逻辑。可由事件驱动的计算服务检索合规逻辑,该事件驱动的计算服务随后基于获得的合规逻辑调用要运行的合规例程。下面结合图6更详细地讨论用于确定插入片段是否合规的示例过程。
如果系统接收到所选择的插入片段不合规或不适当的指示,则系统可以从多媒体选择服务获得另一个插入片段。作为发出请求的一部分,系统可以指示不应响应于该请求而提供的一个或多个插入片段。该请求可以包括先前被确定为不满足一个或多个合规标准的一个或多个插入片段的列表。可以重复这些步骤508至512,直到检索到合规插入片段。一旦找到合适的插入片段,则插入片段可以作为多媒体输出流的一部分传输514,该多媒体输出流可用于下游实体诸如请求多媒体内容的观看者的CDN或多媒体回放装置。
在某些情况下,可能找不到合规插入片段,并且可根据情况采取各种步骤。例如,如果插入片段是要在节目期间显示的广告,则该节目可以在没有广告的情况下恢复。相反,如果插入片段是电影的特定场景(例如,上面讨论的“汽车追逐”场景),则可以提供和/或记录错误。
图6示出了可用于确定所选择的插入片段是否合规的过程600的说明性示例。通常,过程600可以由任何合适的系统执行,并且可以在如上所述(诸如结合图2至图3)的事件驱动的架构的上下文中执行。执行过程600的系统可以使用硬件、软件或其组合来执行该过程。在一些实施方案中,该过程可以在分布式环境中执行,诸如在位于数据中心中的服务器上运行的虚拟机实例上执行,该数据中心被配置为满足来自多个请求者(例如,数据中心或服务提供方的客户端)的请求。
在一些实施方案中,响应于检测到由多媒体选择服务选择并被提供给多媒体操纵服务的插入片段执行过程600。事件驱动的计算服务可以监测和检测针对特定多媒体输入流的插入片段的选择。事件驱动的计算服务可以进一步基于各种元数据选择合规逻辑,该合规逻辑可以被调用来确定插入片段在特定操作上下文中是否合规。所选择的插入片段在某些情况下可能是合规且适当的,而在其他情况下可能不合规且不适当。
系统可以获得与插入片段有关的602元数据。该系统可以获得与插入片段相关联的元数据、与多媒体输入流相关联的元数据、与请求者相关联的元数据及其任一组合。在一些实施方案中,系统可以接收可用于获得一种或多种不同类型的元数据的信息。例如,在一些实施方案中,系统可以接收与请求者相关联的令牌,并且该令牌用于获得关于请求者的信息诸如请求者的年龄、评分历史等。与插入片段相关联的元数据可以包括与插入片段相关联的分辨率、纵横比、帧频、比特率等、可用于获得插入片段的URL或其他标识符、与内容类型有关的元数据、插入片段的持续时间等。与多媒体输入流相关联的元数据可以包括与流相关联的分辨率、纵横比、帧频、比特率等、与流相关联的URL或其他标识符、与内容类型有关的元数据等。
图6进一步示出了各种合规标准的示例。系统可以检查604插入片段的格式。检查插入的格式可以包括验证插入片段的一个或多个属性与多媒体输入流的属性匹配。例如,系统可以验证分辨率、纵横比、帧频、比特率或其某种组合是否与多媒体输入流的那些匹配。系统可以检查606插入片段的内容类型。内容类型可以指可以基于各种属性诸如广告类型(例如,汽车广告、移动电话广告、药品广告、香烟广告)的插入片段的分类。可以使用各种合规规则诸如在特定时间期间或与特定节目相关的情况下不显示特定类型的广告的规则。例如,多媒体输入流可以具有指示其是儿童广播的内容类型,并且合规规则要求在儿童节目期间不得播放香烟广告。系统可以检查608URL列表。合规规则可以包括URL列表,该URL列表指示不应使用来自其的插入片段的源集合。例如,合规规则可以规定一旦在广播期间播放了某个产品的一条广告,则在该广播的剩余部分不应播放竞争对手的对应产品的广告。系统可以检查610与请求内容的观看者相关联的地理位置或其他信息。特定类型的内容可能在某些场所中合适,而在其他场所中则不合适。例如,插入片段可以对应于电影场景的若干版本中的一个。在某些场所中,合规例程可以确定视觉场景或描绘不合适(例如,特定类型的裸露和/或暴力描绘)。例如,某个场所可能有禁止描绘头骨和骷髅的规定。插入片段可以包括指示场景是否描绘头骨和骷髅的标记作为元数据。合规例程可以检查观看者是否来自适用的场所,并且检查是否设置了所选插入片段的标记。以这种方式,该系统可以用于验证多媒体输出流是否符合本地规定。
在一些实施方案中,可能存在不同和/或附加的合规标准。例如,在某些情况下,合规标准可以包括做出多个确定,使得合规标准的满足可以基于多个因素。作为示例,合规标准可以包括确定信息集合,信息集合包括请求者的地理位置、插入片段的内容类型和一天中的时间——一些政府对一天中特定时间可以显示的内容类型有规定。例如,某条规定可能涉及禁止在夜间特定时间以外显示有关成人活动(例如,与烟草制品和酒精相关的活动)的内容。合规标准可用于验证插入片段的内容类型(其可从标记到插入片段的元数据中获得)、与观看者从中请求内容的位置相关的内容规则(其可基于观看者提供作为观看者账户信息的一部分的IP地址或简档信息来确定)、以及一天中的时间(其可基于系统自己的内部时钟确定,所述内部时钟用于确定当前UTC时间并基于观看者的位置执行任何适用的时区相关的调整)。
如果满足所有合规检查,则系统可以指示612插入片段是合规的并且可以使用。所述指示可以是提供给多媒体操纵服务的插入片段合规的通知或消息的形式。相反,如果任何检查失败,则系统可以使用相同或类似的机制指示614该片段不符合合规标准。系统诸如多媒体操纵服务可以响应于接收到所选择的插入片段不合规的指示获得不同的插入片段并再次执行过程600,直到所选择的插入片段符合合规标准。
图7示出了其中可以实现各种实施方案的环境。计算环境700示出了其中放弃例程用于跟踪和通知流放弃的发生的环境。在各种实施方案中,观看者将请求经由多媒体流提供给观看者的多媒体内容。所述流可以被传输到观看者的多媒体回放装置,其中观看者使用该多媒体回放装置消费内容。很多时候,观看者会消费整个内容(例如,看完一部电影)。偶尔观看者可以通过在结束之前终止流来放弃所述流。关于流放弃的信息可以被记录并用于确定终止周围的上下文,并且该信息可以用于识别流的技术问题、改进插入片段的选择以及确定多媒体的质量。
图7所示的环境700包括:多媒体操纵服务702;多媒体传送平台704;多媒体选择服务706;多媒体回放装置712A、712B和712C;以及放弃例程718。多媒体操纵服务、多媒体传送平台和多媒体选择服务可以与本公开中其他地方描述的一致。清单操纵服务可以从多个请求者接收对多媒体内容的多个请求,并且可以使用以上结合图1至图6描述的技术从多个源动态地生成多个流。例如,提供给第一装置712A的多媒体流可以包括第一插入片段714,而提供给第二装置712B的多媒体流可以包括第二插入片段716。作为又一个示例,提供给第三装置712C的第三多媒体流也可以包括第二插入片段716。如图7所示,插入片段不需要对于特定的多媒体回放装置是唯一的。在一些实施方案中,插入片段可以对应于广告。
在一些实施方案中,向装置712A、712B和712C中的每一个提供多媒体内容,除了图7所示的插入片段714和716之外,所述多媒体内容还包括相同的多媒体输入流。例如,每个装置可能已经请求了相同的电视节目。如上所述,可以基于各种类型的元数据将插入片段(例如,广告)动态地插入到输出流。在图7中,可能已经确定第一广告结合第一装置712A是适当和合规的,并且第二广告结合第二装置712B和第三装置712C是适当和合规的。在一些实施方案中,多媒体选择服务向多媒体操纵服务702提供706插入片段710,并且多媒体传送平台向多媒体操纵服务702提供多媒体输入流708。多媒体输出流可以包括多媒体输入流和一个或多个插入片段(例如,具有一个或多个动态地选择的广告的电视节目流)。
在一些实施方案中,系统可以被配置为多媒体输出流。作为示例,在图7中,三个不同的观看者可使用多媒体回放装置观看相同的广播--然而,提供给观看者的插入片段可以不同(例如,第一装置712A的观看者可以看到第一广告,而第二装置712B的观看者可以看到不同的广告)。第一观看者可以在向他/她显示的广告之后继续观看广播(由图7中所示的三个点表示)。然而,第二观看者可能会在某个时间点放弃广播。例如,在图7中,第二装置712B的观看者在第二广告被传输并且向观看者显示之后放弃广播--同样,第三装置712C的观看者也在第二广告被传输之后放弃广播。当放弃流时,可以例如使用事件驱动的计算服务调用放弃例程718。
流的放弃可以由系统中的各种部件检测。例如,在一些实施方案中,清单操纵服务702与下游实体(例如,回放装置)建立通信会话。通信会话可以涉及实体之间具有定义的开始(例如,通过执行握手过程)和定义的结束(例如,通过执行拆除过程)的连接。用于传输/接收流的通信会话的终止可以指示所述流的放弃。作为第二示例,在无连接模型中,接收方诸如多媒体回放装置可在广播被观看者消耗时连续地请求广播的片段,并且当流被放弃时,停止发出对附加片段的请求。多媒体操纵服务可以检测流的放弃。在其他实施方案中,不同部件诸如多媒体传送平台704可以(例如,至少部分地基于在完成整个广播的传输之前检测到不需要多媒体输入流)检测流的放弃。
在一些实施方案中,响应于检测到流被放弃调用放弃例程718。可以响应于检测到与过早结束的流(例如,在整个内容已经被传输给请求者之前)相关的条件的满足调用放弃例程。放弃例程718可以记录放弃发生、围绕放弃的元数据,并且可以与多媒体传送平台704、多媒体选择服务706和多媒体操纵服务702结合使用,以影响传送到回放装置的多媒体输出流。
在一些实施方案中,放弃事件可以用于对作为向观看者提供多媒体流的一部分而发生的错误进行故障排除。例如,考虑一种环境,其中两个或更多观看者请求特定的多媒体内容(例如,电影或电视节目)。所述请求可以由各种用户/观看者在各种时间、以各种编码格式等从各种地理位置发出。如果在该示例中在内容的特定时间点(或在某个时间范围内)对于特定编码格式存在异常高的放弃率,则可能指示存在与编码格式相关的技术错误。作为第二示例,如果特定地理位置的用户在特定时间点请求的所有流的放弃率异常高,则可能表明存在与该特定地理位置用户的连接有关的技术错误。作为另一示例,在包括以特定属性标记片段的元数据的片段之后,如果特定多媒体内容的流的放弃率异常高,则可以做出将放弃归因于多媒体内容的指示——例如,在被标记为包括暴力的特定片段之后,请求观看喜剧电影的用户可以异常高的比率放弃电影。可以做出将放弃电影归因于电影中包括的暴力场景的指示。
在一些实施方案中,放弃可以归因于插入片段。例如,考虑根据图7的实施方案,其中多媒体输入流是电视节目,并且插入片段是广告。质量控制服务可能会在显示第二广告之后检测到电视节目中异常高的放弃率,但在显示第一广告时不会检测到。质量控制服务可以向多媒体选择服务指示第二广告不应被提供和/或不应与特定电视节目一起提供。因此,如果第四多媒体广播装置(图7中未示出)的第四观看者请求观看相同的多媒体输入流708,则多媒体选择服务可以确定第二广告不应被选择作为插入片段,并且/或者多媒体操纵服务702可以接收第二广告并基于多媒体操纵服务702保留(例如,作为RAM中的数据结构)的黑名单插入片段集合拒绝将其动态地插入到输出流中。
继续前面的讨论,考虑第二示例,其中观看者请求观看同一电视节目,并且广告被动态地插入到提供给观看者的输出流中。观看者可以接收连续插入的两个或更多个广告作为输出流的一部分(例如,电视节目切入到第一广告、第二广告等,然后节目恢复)。特定广告片段之后的放弃可以被用来确定在放弃流之前观看者愿意观看广告多长时间和/或观看者愿意观看多少广告。在这些情况下,质量控制服务可以配合图7所示的各种部件调整提供的广告的数量。另外,可能存在基于上下文不同地归因放弃的逻辑。例如,考虑扩展图7的实施方案,其中第四观看者请求相同的内容并接收广告集合作为插入片段。虽然结合图7讨论的第一观看者、第二观看者和第三观看者每个都被提供单个广告,但是第四观看者可以被提供两个或更多个连续的广告,使得观看者在观看了若干广告之后或者在特定时间段之后,在第一广告被显示时放弃流。系统可以将这种放弃归因于显示了多长时间或多少广告,而不是将放弃归因于第一广告。在一些实施方案中,放弃的归因可以是非二进制的,使得该归因被加权到多个因素。
异常高的放弃率可以指确定流集合的放弃率高于包括该流集合的控制组的放弃率。另外,基于诸如通过对用于计算上述比率的数据集应用F测试和T测试所确定的各种统计模型,该差异可能在统计上具有重要性。可以使用各种统计模型来确定比率差异是否被视为异常,诸如使用方差分析(ANOVA)技术的统计模型。上述质量控制服务可以实现为分布式系统中的单独服务。其也可以被实现为本公开中描述的那些的部件或子系统。例如,质量控制服务可以被实现为由事件驱动的计算服务调用的事件驱动的函数,可以被实现为多媒体操纵服务的一部分,并且可以被实现为放弃例程的一部分。
图8示出了其中可以实现各种实施方案的环境。计算环境800示出了其中放弃逻辑可以与事件驱动的计算服务结合使用来跟踪和通知流放弃发生的环境。环境800包括多媒体操纵服务802;多媒体传送平台804;事件驱动的计算服务806;放弃例程808;以及日志系统810。在环境800中,客户可以将多媒体源812提供给多媒体传送平台804,并且将事件驱动的函数814提供给事件驱动的计算服务806。
多媒体操纵服务802可以与本公开中其他地方描述的一致。例如,清单操纵服务可以接收多媒体输入流和基于上下文信息(例如,与多媒体输入流相关联的元数据)动态选择的插入片段,并且将来自输入流和插入片段两者的片段作为多媒体输出流的一部分提供给多媒体回放装置。多媒体操纵服务802还可以被配置为检测流的放弃。在一些实施方案中,实体(例如,结合图7描述的多媒体回放装置)可以请求多媒体内容。响应于该请求,多媒体操纵服务802可以获得多媒体输入流、插入片段,并且基于输入流和插入片段为请求者动态生成输出流。多媒体操纵服务802还可以被配置为在稍后的时间接收终止请求,该终止请求指示输出流的片段不应再被传输给请求者。
在一些实施方案中,多媒体操纵服务802从实体接收对多媒体内容的请求,并且响应于该请求向请求者提供一些但非全部输出片段。该请求可以编码指定要提供的片段数量的信息。请求者可以做出指示应传输的输出流的附加片段的附加请求。以这种方式,请求者可以获得输出片段集合,将它们提供给观看者,并且在观看者观看较早的片段时请求附加片段,从而创建减少或消除缓冲的平滑流式传输体验。
多媒体操纵服务802可以检测流的放弃。在各种实施方案中,流放弃的检测可以以各种方式发生。例如,在流被来自请求者的显式传输(例如,终止请求)终止的情况下,接收传输可以是检测到条件。在其他情况下,多媒体操纵服务802检测到先前请求输入的某些片段的请求者尚未请求附加片段--例如,流可包括从1到100排序的100个片段,并且在请求者指定何时传送这些块的情况下,多媒体操纵服务802可以以10块为单位传输这些片段。在此类实施方案中,系统可以基于没有接收到对所有块的请求(即,请求者请求少于所有片段块)检测到请求者中途放弃了流。
多媒体传送平台804可以与本公开中其他地方描述的一致。多媒体传送平台804可以被配置为向多媒体操纵服务802提供多媒体输入流。在一些实施方案中,对来自回放装置的内容的请求被传输到多媒体操纵服务802并由多媒体操纵服务接收,并且多媒体传送平台804提供对应于所请求内容的多媒体输入流。例如,所请求的内容可以是电视节目,并且多媒体输入流可以是电视节目的转码版本。在一些实施方案中,多媒体选择服务可以与本公开中其他地方描述的一致,并且可以用于获得插入片段。继续该示例,插入片段可以是基于请求者的喜好定制的广告,并且与多媒体流一起动态地插入到输出流中。
事件驱动的计算服务806可以与本公开中其他地方描述的一致。一般而言,事件驱动的计算服务可用于检测条件的满足并调用定制的例程。在一些实施方案中,事件驱动的计算服务806被配置为检测流的放弃并执行放弃例程808。放弃例程808可以由客户提供,并且可以与上面讨论的事件驱动的函数一致--例如,事件驱动的函数可以是可执行代码、源代码、脚本等的形式。放弃例程可以例如记录关于在观看者放弃流之前或在时间上接近观看者放弃流时向观看者显示的片段的元数据。例如,元数据可以包括对应于多媒体输入片段的标识符以及关于当观看者放弃流时所显示的帧的信息。在一些实施方案中,诸如其中插入片段是输出流的一部分的那些实施方案中,元数据还指示插入片段是在观看者放弃流的时间还是该时间附近被显示。
在一些实施方案中,事件驱动的计算服务806检测流的放弃并调用放弃例程808以执行各种例程,诸如记录围绕流放弃的元数据。放弃例程可以将与检测到的放弃相关联的元数据记录到日志系统810。例如,计算资源服务提供方可以包括向客户端(例如,观看者)提供多媒体内容的服务,并且遥测服务可以在客户端请求多媒体流时、在客户端从一个多媒体流切换到另一个多媒体流时、在客户端终止流时(例如,基于服务首先接收到对多媒体流的第一部分的请求,然后基于超时不接收对多媒体流的随后部分的请求)向存储服务记录元数据诸如时间戳和相关联的web API请求。可以使用数据库或其他合适的存储和检索系统来实现日志系统810。在一些实施方案中,当观看者放弃流时,事件驱动的计算服务806检测到放弃事件。放弃例程可以接收关于围绕放弃的环境的信息,诸如哪些片段被传输到所述流的请求者。可以使用日志系统810将一些或全部元数据存储到数据库或其他合适的数据存储机制中。日志系统810也可以存储关于放弃其他流的信息。如图8所示,两个不同流的两个不同的放弃可以被记录在日志系统810中。
日志系统810可以用于存储放弃数据并确定提供给观看者的片段的健康和质量。例如,放弃数据可以随着时间聚合,并且可以确定片段的主观质量。例如,事件驱动的计算服务检测流何时被放弃,并且调用放弃例程,该放弃例程记录放弃的绝对时间(例如,UTC日期和时间)、流被放弃的相对时间(例如,在流开始后的哪个时间点发生了放弃)、放弃时传输的片段的标识符(例如,传输的最后若干片段的序列号)在一些实施方案中,放弃例程还记录片段源(例如,片段是来自输入流还是插入片段)。也可以记录关于片段内容的元数据--例如,帧或帧集合是否包括暴力、粗俗语言等。还可以记录关于观看者的元数据--例如,观看者的人口统计信息(例如,年龄、性别、种族)、评分信息(例如,对其他电影或电视节目的评分)。节目的评分可以是数字范围(例如,1到5星),也可以是非数字的(例如,“喜欢”、“热爱”),并且通常可以是偏好的任何指示(例如,共享节目的链接并且包括对内容的有利或不利印象)。
日志系统810中记录的数据可以以多种方式使用。例如,记录在日志系统810中的数据可以随着时间聚合并且用于确定关于特定片段的质量的信息。流的放弃率可与特定片段有关。当放弃超过某个阈值比率时,客户可接收到包括有关放弃和比率的元数据的通知。例如,记录的数据可以指示在特定片段或片段集合之后放弃以比正常情况更高的比率发生,并且可以通知客户。因此,客户可以确定电影或电视节目的特定场景质量较差、观众可能不喜欢等,并且采取适当的动作。例如,如果客户是电影制片厂,则客户可以重新拍摄特定场景。作为第二示例,客户可以通过以下方式利用上面结合插入片段描述的技术:基于原始内容确定识别可能放弃所述流的观看者集合的启发式,使插入片段可用于多媒体选择服务;以及利用多媒体操纵服务为所识别的观看者动态地生成输出流,所述输出流包括代替输入流中与放弃事件相关联的片段的插入片段。
客户可以将多媒体源812提供给多媒体传送平台804,并且将事件驱动的函数814提供给事件驱动的计算服务,当检测到流的放弃时调用所述事件驱动的函数。
应注意,虽然图8所示的环境800包括各种部件和子系统,但是可以实现具有更少、更多或不同部件的各种实施方案。例如,一个实施方案可以包括多媒体选择服务,并且提供给观看者的输出流可以包括一个或多个插入片段,诸如彼此连续的一个或多个插入片段。
图9示出了可用于执行放弃例程的过程900的说明性示例。通常,过程900可以由任何合适的系统执行,并且可以在如上所述(诸如结合图8)的事件驱动的架构的上下文中执行,并且利用在其他地方描述(诸如结合图2至图4)的与事件驱动的架构有关的技术。执行过程900的系统可以使用硬件、软件或其组合来执行该过程。在一些实施方案中,该过程可以在分布式环境中执行,诸如在位于数据中心中的服务器上运行的虚拟机实例上执行,该数据中心被配置为满足来自多个请求者(例如,数据中心或服务提供方的客户端)的请求。
在一个实施方案中,过程900包括监测902多媒体片段流的传输。被监测的多媒体流可以是包括多媒体片段的流,所述多媒体片段被传输到流的请求者并且请求者将最终(例如,使用多媒体回放装置)观看流的内容。在一些实施方案中,被监测的传输直接为请求者-观看者绑定(例如,与请求者相关联的网络地址在传输分组的目的地字段中),或者间接地绑定(例如,流分组传输到下游实体诸如将流分组引导至请求者的内容传送网络)。在一些实施方案中,系统可以监测作为较大环境的一部分(例如,在多媒体服务提供方的上下文中)的多个接收方的多个多媒体流的传输。执行过程900的系统可以使用硬件、软件或其组合来执行该过程。在一些实施方案中,该过程可以在分布式环境中执行,诸如在位于数据中心中的服务器上运行的虚拟机实例上执行,该数据中心被配置为满足来自多个请求者(例如,数据中心或服务提供方的客户端)的请求。
系统可以检查904是否检测到放弃。在各种实施方案中,流放弃的检测可以以各种方式发生。例如,在流被来自请求者的显式传输(例如,终止请求)终止的情况下,接收传输可以是检测到条件。在其他情况下,请求分批请求流的片段。例如,请求者可以请求一批十个两秒片段。在该批次临近结束时(例如,在传输一批十个两秒片段之后大约二十秒),请求者可以请求第二批片段。在这种上下文中,放弃可以通过系统确定已经过去一定量的时间来检测--结合前面的示例,如果在请求或传输第一批次之后18、20或22秒没有接收到对第二批次的请求,则系统可以确定流的放弃。上面结合图7至图8描述的技术也可以用作检查904是否检测到流放弃的一部分。
在一些实施方案中,如果系统检测到流放弃,则系统选择906异步工作流,该异步工作流使用上面结合图2至图8描述的事件驱动的计算服务实现为事件驱动的函数。系统可以向由事件驱动的计算服务选择的放弃例程提供908与所检测到的放弃相关联的元数据。元数据可以包括与放弃相关联的信息,诸如关于一个或多个传输的片段的标识符信息。在一些实施方案中,传输的片段可以来自多个输入源(例如,多媒体输入流和插入片段)。日志系统诸如结合图7至图8描述的那些可以用来记录元数据。
作为放弃例程的一部分,系统可以进一步诊断910流放弃。可以检测许多不同类型的错误,诸如与编码格式有关的技术错误、与网络状态有关的技术错误以及放弃的归因。可以将放弃归因于片段的内容(例如,在与片段相关联的清单中标记的元数据)、特定类型片段的持续时间或特定类型片段的出现次数。例如,放弃可能归因于插入太多连续广告。
在某些情况下,系统可以生成912包括放弃的归因的指示。例如,放弃的归因可以指示转码错误与一个或多个片段相关联,并且可以将该指示提供给具有用于对受影响片段进行重新转码的指令的上游实体。作为第二示例,系统可以检测与某些用户的连接有关的技术错误,并且在那些连接上运行网络连接诊断工具。作为第三示例,系统可以使用将放弃归因于特定类型的插入片段来调整选择插入片段的过程。例如,广告之后多媒体流的放弃可以是多媒体选择服务减少或停止广告选择的指示符。通常,如果通知系统管理员、视觉质量专家、开发人员等对减轻放弃率有帮助,则系统可以广播通知。
图10示出用于实现根据各种实施方案的方面的示例性环境1000的方面。应理解,尽管为了说明的目的使用基于web的环境,但是在适当的情况下可以使用不同的环境来实现各种实施方案。环境包括电子客户端装置1002,所述电子客户端装置可以包括可操作来通过适当网络1004发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置的用户的任何适当装置。此类客户端装置的示例包括个人计算机、移动电话、手持式消息传送装置、膝上型计算机、平板电脑、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可以包括任何适当网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或其组合。用于这种系统的部件可至少部分取决于选定的网络和/或环境的类型。用于通过这样的网络进行通信的许多协议和部件是公知的,将不在此进行详细讨论。经由网络的通信可以通过有线或无线连接以及其组合来实现。在此示例中,网络包括互联网和/或其他可公开寻址的通信网络,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1006,但是对于其他网络来说,可以使用提供类似目的的备选装置,如对本领域的普通技术人员来说显而易见的。
说明性环境包括至少一个应用服务器1008和数据存储库1010。应理解,可以存在可以被链接或以其他方式配置的多个应用服务器、层或其他元件、进程或部件,其可以交互以执行诸如从适当的数据存储库获得数据的任务。如本文所使用的服务器可以以各种方式来实现,诸如硬件装置或虚拟计算机系统。在一些背景下,服务器可以指代正在计算机系统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据存储库”是指能够存储、访问并检索数据的任何装置或装置的组合,所述装置或装置的组合可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储装置以及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储装置以及数据存储介质。应用服务器可以包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储库集成以执行客户端装置的一个或多个应用程序的方面、处理应用程序的数据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储库协作来提供访问控制服务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其他内容,所述内容可由web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)和/或另一适当的客户端侧结构化语言的形式提供给用户。传送到客户端装置的内容可以由客户端装置处理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端装置1002与应用服务器1008之间的内容递送可由web服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当服务器侧结构化语言来处理。此外,除非另外从上下文中清楚,否则在本文中被描述为由单个装置执行的操作可以由可能形成分布式和/或虚拟系统的多个装置共同地执行。
数据存储库1010可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机制和介质。例如,所示数据存储库可以包括用于存储生产数据1012和用户信息1016的机制,所述生产数据和用户信息可以用于为生产侧提供内容。数据存储库还被示出为包括用于存储日志数据1014的机制,所述机制可以用于报告、分析或其他此类目的。应理解,可能存在可需要存储在数据存储库中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可以视情况存储在上文列出的机制中的任何机制中或存储在数据存储库1010中的另外机制中。数据存储库1010可以通过与其相关联的逻辑来操作,以便从应用服务器1008接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器1008可以响应于所接收指令而提供静态、动态数据或静态和动态数据的组合。动态数据诸如在web日志(博客)、购物应用程序、新闻服务以及其他此类应用程序中使用的数据可以由如本文所描述的服务器侧结构化语言生成或者可以由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例中,通过由用户操作的装置,用户可以提交针对某一类型的项目的搜索请求。在这种情况下,数据存储库可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得有关所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过用户装置1002上的浏览器来查看所述网页。可以在专用浏览器页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是可以更普遍地适用于处理一般的请求,其中请求不一定是对内容的请求。
每个服务器通常都将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为被执行的结果)允许服务器执行其预期的功能。
在一个实施方案中,环境为利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接,经由通信链路进行互连。然而,本领域的一般技术人员将了解,此类系统可以同样在具有比图10所示的部件更少或更多数量部件的系统中良好地操作。因此,图10中的系统1000的描绘本质上应视为说明性的,并且不限于本公开的范围。
本发明的实施方案可以根据以下条款来描述:
1.一种计算机实现的方法,其包括:
获得与作为第一多媒体流的一部分的第一多媒体片段相关联的清单,所述清单包括插入多媒体内容的指示;
获得第二多媒体片段,其中至少部分地基于与接收方相关联的元数据选择所述第二多媒体片段;
触发事件,所述事件致使事件驱动的服务至少部分地基于所述第一多媒体片段从多个事件驱动的函数中选择事件驱动的函数,其中所述事件的所述触发至少部分地基于检测获得所述第二多媒体片段,并且其中所述选择的事件驱动的函数至少部分地基于与所述第二多媒体片段和所述第一多媒体流相关联的元数据来确定所述第二多媒体片段满足合规要求;以及
将所述第一多媒体片段和所述第二多媒体片段作为所述第一多媒体流的一部分传输给所述接收方。
2.如条款1所述的计算机实现的方法,其中:
所述清单还包括与所述指示相关联的持续时间;以及
满足所述合规要求包括确定所述第二多媒体片段具有小于或等于所述持续时间的长度。
3.如条款1或2所述的计算机实现的方法,其还包括:
接收将多媒体内容插入第二多媒体流的指示,所述第二多媒体流具有与所述第一多媒体流共同的内容;
至少部分地基于所述指示获得第三多媒体片段,其中所述第三多媒体片段不同于所述第二多媒体片段;以及
使得所述第三多媒体片段作为所述第二多媒体流的一部分对第二接收方可用。
4.如条款1至3中任一项所述的计算机实现的方法,其还包括:
获得插入附加多媒体内容的指示;
获得第三多媒体片段,其中至少部分地基于与所述接收方相关联的所述元数据选择所述第三多媒体片段;
至少部分地基于与所述第二多媒体片段相关联的所述元数据,确定所述第三多媒体片段满足合规要求;以及
进一步将所述第三多媒体片段作为所述第一多媒体流的一部分传输给所述接收方。
5.一种系统,其包括:
一个或多个处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令如果被执行则致使所述系统:
获得包括多个多媒体片段的多媒体流的至少一部分,所述多媒体流的所述至少一部分包括插入多媒体内容的指示;
获得多媒体片段,其中至少部分地基于与接收方相关联的元数据选择所述多媒体片段;
至少部分地基于检测到获得所述多媒体片段触发执行事件驱动的函数,所述事件驱动的函数致使事件驱动的计算服务至少部分地基于与所述多媒体片段相关联的元数据确定所述多媒体片段满足合规要求;以及
将所述多媒体片段包括在所述多媒体流中。
6.如条款5所述的系统,其中将多媒体内容插入所述多媒体流的所述指示是从与另一个多媒体片段相关联的清单中获得的。
7.如条款6所述的系统,其中所述另一多媒体片段和所述多媒体片段作为包括第二多个多媒体片段的多媒体输出流的连续片段对所述接收方可用。
8.如条款5至7中任一项所述的系统,其中与所述多媒体片段相关联的所述元数据包括能够用于获得所述多媒体片段的内容类型或网络地址。
9.如条款5至8中任一项所述的系统,其中插入所述多媒体内容的所述指示包括阈值持续时间,并且所述合规要求包括确定所述多媒体片段的持续时间不超过所述阈值持续时间。
10.如条款5至9中任一项所述的系统,其中:
所述多媒体片段包括视频内容;
与所述多媒体片段相关联的所述元数据包括所述视频内容的视频分辨率;以及
确定所述多媒体片段满足合规要求包括:确定所述视频分辨率与预期的视频分辨率匹配。
11.如条款5至10中任一项所述的系统,其中:
与所述接收方相关联的所述元数据包括位置;
与所述多媒体片段相关联的所述元数据包括所述多媒体片段中包括的音频或视觉描绘的指示;以及
确定所述多媒体片段满足合规要求包括:至少部分地基于所述位置的规定确定所述音频或视觉描绘是适当的。
12.如条款5至11中任一项所述的系统,其中所述存储器存储计算机可执行指令,所述计算机可执行指令如果被执行则进一步致使所述系统至少部分地使用与所述多媒体片段相关联的网络地址来获得所述多媒体片段。
13.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令致使所述计算机系统至少:
获得包括多个多媒体片段的第一多媒体流,所述第一多媒体流包括用于将多媒体内容插入所述第一多媒体流的第一指示;
获得第一多媒体片段,其中至少部分地基于与接收方相关联的元数据选择所述第一多媒体片段;
触发使事件驱动的服务运行事件驱动的函数的事件,所述事件的所述触发至少部分地基于检测到获得所述第一多媒体片段,其中所述事件驱动的函数至少部分地基于与所述第一多媒体片段相关联的元数据确定所述第一多媒体片段满足合规要求;以及
将所述多媒体片段包括在所述多媒体流中。
14.如条款13所述的非暂时性计算机可读存储介质,其中:
所述第一多媒体流还包括将附加多媒体内容插入所述第一多媒体流的第二指示;以及
所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
将与第二多媒体片段相关联的网络地址同与所述第一多媒体片段相关联的多个网络地址的至少一部分进行比较;以及
使得所述第二多媒体片段作为所述第一多媒体流的一部分对所述接收方可用。
15.如条款13或14所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
获得包括第二多个多媒体片段的第二多媒体流,所述第二多媒体流包括将多媒体内容插入所述第二多媒体流的第二指示,其中所述第一多媒体流和所述第二多媒体流具有共同的内容;
获得第二多媒体片段,其中至少部分地基于与第二接收方相关联的元数据选择所述第二多媒体片段,而且其中所述第二多媒体片段不同于所述第一多媒体片段;
至少部分地基于与所述第二多媒体片段相关联的元数据,确定所述第二多媒体片段满足所述合规要求;以及
使得所述第二多媒体片段作为所述第二多媒体流的一部分对所述第二接收方可用。
16.如条款15所述的非暂时性计算机可读存储介质,其中所述第二多媒体片段包括所述第一多媒体片段。
17.如条款13至16中任一项所述的非暂时性计算机可读存储介质,其中:
与所述接收方相关联的所述元数据包括所述接收方对其他多媒体的评分;以及
确定所述第一多媒体片段满足所述合规要求还至少部分地基于与所述接收方相关联的所述元数据。
18.如条款13至17中任一项所述的非暂时性计算机可读存储介质,其中:
与所述接收方相关联的所述元数据包括所述接收方的位置信息;以及确定所述第一多媒体片段满足所述合规要求还至少部分地基于将所述接收方的所述位置信息与一个或多个位置进行比较。
19.如条款18所述的非暂时性计算机可读存储介质,其中:
与所述第一多媒体片段相关联的所述元数据包括内容类型;以及
确定所述第一多媒体片段满足所述合规要求还包括:至少部分地基于所述内容类型确定所述一个或多个位置。
20.如条款13至19中任一项所述的非暂时性计算机可读存储介质,其中将多媒体内容插入所述第一多媒体流中的所述第一指示被编码在清单中,其中所述清单符合:HTTP实时流式传输(HLS)协议;HTTP动态自适应流式传输(DASH);HTTP动态流式传输(HDS)协议;或者平滑流式传输协议。
21.一种系统,其包括:
日志系统,所述日志系统存储与多个放弃的多媒体流相关联的放弃元数据,所述放弃元数据包括与第一放弃流的放弃相关联的一个或多个多媒体片段的指示;以及事件驱动的计算服务,所述事件驱动的计算服务至少部分地基于与所述放弃元数据相关联的条件的满足触发执行事件驱动的函数,所述事件驱动的函数致使所述事件驱动的计算服务:
获得所述多个放弃的多媒体流的至少一个子集的放弃元数据,所述子集具有共同的放弃元数据;以及
至少部分地基于所述共同的放弃元数据,确定与所述多个放弃的多媒体流的至少一部分相关联的放弃原因。
22.如条款21所述的系统,其中:
所述第一放弃流包括第一多媒体片段和第二多媒体片段,其中:
所述第一多媒体片段与将多媒体内容插入所述第一放弃流的指示相关联;以及
至少部分地基于所述指示确定将所述第二多媒体片段作为所述第一放弃流的一部分来传输;以及
与所述第一放弃流的放弃相关联的所述一个或多个多媒体片段包括所述第二多媒体片段。
23.如条款22所述的系统,其中:
所述放弃元数据指示第二多媒体段与所述多个放弃流的第二放弃流的放弃相关联;
所述第二放弃流包括所述第二多媒体片段;
至少部分地基于将多媒体片段插入所述第二放弃流的第二指示,将所述第二多媒体片段作为所述第二放弃流的一部分传输;以及
所述第一放弃流和所述第二放弃流具有不同多媒体内容。
24.如条款21至23中任一项所述的系统,其中:
所述共同的放弃元数据包括:多个接收方的共同位置;以及所述多个接收方的放弃时间;以及
所述事件驱动的函数还致使事件驱动的计算服务对来自所述共同位置的接收方执行网络连接性测试。
25.一种计算机实现的方法,其包括:
至少部分地基于与第一放弃流相关联的放弃元数据来检测条件的满足,所述放弃元数据指示与所述第一放弃流的放弃相关联的一个或多个多媒体片段;
至少部分地基于与所述第一放弃流相关联的所述放弃元数据从多个事件驱动的函数中选择事件驱动的函数,其中事件驱动的计算服务被配置为在检测到满足所述条件时调用所述事件驱动的函数;
获得与多个放弃的多媒体流相关联的放弃元数据集合,所述集合具有共同的放弃元数据;以及
至少部分地基于所述放弃元数据集合确定与所述多个多媒体流的至少一部分相关联的放弃原因。
26.如条款25所述的计算机实现的方法,其中:
所述第一放弃流包括第一多媒体片段和第二多媒体片段,其中:
所述第一多媒体片段与将多媒体内容插入所述第一放弃流的指示相关联;以及
至少部分地基于所述指示确定将所述第二多媒体片段作为所述第一放弃流的一部分来传输;以及
与所述第一放弃流的放弃相关联的所述一个或多个多媒体片段包括所述第二多媒体片段。
27.如条款26所述的计算机实现的方法,其中:
所述放弃元数据集合包括第二放弃元数据,其中所述第二放弃元数据指示所述第二多媒体片段与第二放弃流的放弃相关联;
所述第二放弃流包括所述第二多媒体片段;
至少部分地基于将多媒体片段插入所述第二放弃流的第二指示,将所述第二多媒体片段作为所述第二放弃流的一部分传输;以及
所述第一放弃流和所述第二放弃流具有不同多媒体内容。
28.如条款26或27所述的计算机实现的方法,其还包括:
接收将多媒体内容插入多媒体流的第二指示,所述多媒体流具有与所述第一放弃流共同的多媒体内容;
至少部分地基于所述第二指示和所述原因的所述确定获得第三多媒体片段,其中所述第三多媒体片段不同于所述第二多媒体片段;以及
使得所述第三多媒体片段作为所述多媒体流的一部分可用。
29.如条款25至28中任一项所述的计算机实现的方法,其还包括:
检测一个或多个流放弃;以及
在持久性存储介质中,将与所述一个或多个流放弃相关联的放弃元数据存储为所述放弃元数据集合的一部分。
30.如条款25至29中任一项所述的计算机实现的方法,其中所述集合的至少一些放弃流共享共同的多媒体内容。
31.如条款25至30中任一项所述的计算机实现的方法,其中:
所述第一放弃流与第一请求者相关联;以及
所述集合的第二放弃流与第二请求者相关联,其中所述第一请求者和所述第二请求者是不同请求者。
32.如条款25至31中任一项所述的计算机实现的方法,其中所述共同放弃元数据包括在所述放弃元数据集合中指示的请求者的位置。
33.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令致使所述计算机系统至少:
至少部分地基于与第一放弃流相关联的放弃元数据来检测条件的满足,所述放弃元数据指示与所述第一放弃流的放弃相关联的一个或多个多媒体片段;
至少部分地基于所述放弃元数据从多个事件驱动的函数中选择事件驱动的函数,所述事件驱动的函数的调用至少部分地基于检测到所述条件的满足;
获得与多个放弃的多媒体流相关联的放弃元数据集合,所述集合具有共同的放弃元数据;以及
至少部分地基于所述放弃元数据集合确定与所述多个多媒体流的至少一部分相关联的放弃原因。
34.如条款33所述的非暂时性计算机可读存储介质,其中:
所述第一放弃流包括第一多媒体片段和第二多媒体片段,其中:
所述第一多媒体片段与将多媒体内容插入所述第一放弃流的指示相关联;以及
至少部分地基于所述指示确定将所述第二多媒体片段作为所述第一放弃流的一部分来传输;以及
与所述第一放弃流的放弃相关联的所述一个或多个多媒体片段包括所述第二多媒体片段。
35.如条款34所述的非暂时性计算机可读存储介质,其中:
所述放弃元数据集合包括第二放弃元数据,其中所述第二放弃元数据指示所述第二多媒体片段与第二放弃流的放弃相关联;
所述第二放弃流包括所述第二多媒体片段;
至少部分地基于将多媒体片段插入所述第二放弃流的第二指示,将所述第二多媒体片段作为所述第二放弃流的一部分传输;以及
所述第一放弃流和所述第二放弃流具有不同多媒体内容。
36.如条款34或35所述的非暂时性计算机可读存储介质,其中所述指令致使所述计算机系统:
获得将多媒体内容插入多媒体流的第二指示,所述多媒体流具有与所述第一放弃流共同的多媒体内容;
至少部分地基于所述第二指示和所述原因的所述确定获得第三多媒体片段,其中所述第三多媒体片段不同于所述第二多媒体片段;以及
使得所述第三多媒体片段作为所述多媒体流的一部分可用。
37.如条款33至36中任一项所述的非暂时性计算机可读存储介质,其中所述共同的放弃元数据包括在所述集合和所述放弃元数据中指示的内容类型。
38.如条款37所述的非暂时性计算机可读存储介质,其中:
与所述集合的第一放弃元数据相关联的第一多媒体片段指示所述内容类型;
与所述集合的第二放弃元数据相关联的第二多媒体片段指示所述内容类型;以及
所述第一多媒体片段和所述第二多媒体片段包括不同多媒体内容。
39.如条款33至38中任一项所述的非暂时性计算机可读存储介质,其中所述共同放弃元数据包括与两个或更多个放弃流相关联的放弃元数据,所述两个或更多个放弃流包括与第二多媒体片段相关联的标识符。
40.如条款33至39中任一项所述的非暂时性计算机可读存储介质,其中所述共同的放弃元数据包括与所述集合相关联的多媒体片段的编码格式。
各种实施方案还可在各种操作环境中实施,所述操作环境在一些情况下可包括一个或多个用户计算机、计算装置或处理装置,其可用于操作多个应用程序中的任何应用程序。用户或客户端装置可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上型计算机或平板电脑,以及运行移动软件并且能够支持多种网络和消息传递协议的蜂窝式、无线和手持装置。这样的系统还可以包括多个工作站,它们运行多种可商购的操作系统中的任何一种以及用于诸如开发和数据库管理之类的用途的其他已知应用。这些装置还可以包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其他装置。这些装置还可以包括虚拟装置,诸如虚拟机、管理程序和能够经由网络进行通信的其他虚拟装置。
本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购的协议中的任一种的通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、通用互联网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公用交换电话网、红外网络、无线网、卫星网络以及其任何组合。在一些实施方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为基于连接的协议)能够以有序流传输数据。面向连接的协议可以是可靠或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向分组的协议(诸如UDP)形成对比,所述面向分组的协议在没有保证排序的情况下传输分组。
在利用web服务器的实施方案中,web服务器可以运行多种服务器或中间层应用中的任一者,包括超文本传输协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器以及业务应用服务器。服务器还可以能够响应于来自用户装置的请求而执行程序或脚本,诸如,通过执行可以实施为用任何编程语言(诸如,C、C#或C++)或任何脚本语言(诸如,Ruby、PHP、Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序的一个或多个web应用程序。服务器还可以包括数据库服务器,包括但不限于可商购自/>以及/>的那些服务器以及开源服务器,例如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非结构化数据的任何其他服务器。数据库服务器可以包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
环境可以包括多种数据存储库以及其他存储器和存储介质,如上文所论述。这些可驻留在多种位置,诸如在计算机的一个或多个本地(和/或驻留在计算机的一个或多个中)的存储介质上,或在网络上远离任何或所有计算机的存储介质上。在特定的实施方案集合中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行计算机、服务器或其他网络装置所特有的功能的任何必要文件可以在适当的情况下本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置都可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这样的系统还可以包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置以及固态存储装置诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移除介质装置、存储卡、闪存卡等。
此类装置还可以包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线的)、红外通信装置等)以及如上文所描述的工作存储器。计算机可读存储介质读取器可以与计算机可读存储介质连接或被配置为接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移除存储装置,以及用于临时和/或更永久地含有、存储、传输和检索计算器可读信息的存储介质。系统和各种装置通常也将包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用程序或web浏览器。另外,也可以使用定制的硬件和/或特定元件可以用硬件、软件(包括可移植软件,例如小程序)或两者来实现。此外,可采用与其他计算装置诸如网络输入/输出装置的连接。
用于含有代码或代码部分的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移除和不可移除介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存存储器或其他存储器技术、只读光盘驱动器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储器、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所需信息且可由系统装置访问的任何其他介质。基于本文所提供的公开和教导,本领域普通技术人员应理解实施各个实施方案的其他方式和/或方法。
因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,明显的是,在不脱离如权利要求所述的本发明的更广泛精神和范围的情况下,可以进行各种修改和改变。
其他变化在本公开的精神内。因此,虽然所公开的技术易受各种修改和替代构造的影响,但是在附图中示出了其某些所示实施方案,并且在上文已经详细描述。然而,应理解,不存在将本发明限于所公开的具体形式的意图,相反,本发明将覆盖落在如在随附权利要求中定义的本发明的精神和范围内的所有修改、替代结构和等效物。
除非本文另有说明或明确地与上下文矛盾,否则在描述所公开的实施方案的上下文中(特别是在所附权利要求的上下文中)对术语“一(a)”和“一(an)”和“所述”以及类似指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且涉及物理连接的情况下,术语“连接”应被解释为部分或全部包含在内、附接到或接合在一起,即使存在某些介入。本文中值的范围的描述仅旨在用作单独地参考落在该范围内的每个单独值的速记方法,除非本文另有说明,并且将每个单独的值并入本说明书中,如同在本文中单独列举一样。除非另有说明或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或“子集”的使用应被解释为包括一个或多个构件的非空集合。此外,除非另有说明或与上下文矛盾,否则术语对应集合的“子集”未必表示对应集合的真子集,而是子集和对应集合可以相等。
除非另有具体陈述或另外明确地与上下文矛盾,否则连接语言,诸如形式“A、B、和C中的至少一个”或“A、B和C中的至少一个”之类的短语可以在一般使用的上下文中被理解为表示某一项目、项等可以是A或B或C,或者A和B和C的集合的任何非空子集。例如,在具有三个构件的集合的说明性示例中,连接短语“A、B和C中的至少一个”和“A、B和C中的至少一个”是指以下集合中的任一者:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接语言通常并不意图暗示某些实施方案需要A中的至少一个、B中的至少一个和C中的至少一个各自存在。另外,除非另有说明或与上下文矛盾,否则术语“多个”指示复数的状态(例如,“多个项目”指示许多个项目)。多个项目中的项目数量至少为两个,但是当如此明确地或通过上下文指示时可以更多。
除非本文另有说明或另外明确地与上下文矛盾,否则本文所述的过程的操作可以以任何合适的顺序执行。本文中描述的过程(或其变化和/或其组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实施为在一个或多个处理器上共同地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用程序),通过硬件来实施或其组合来实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,所述非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时(即,作为被执行的结果)致使计算机系统执行本文描述的操作。该非暂时性计算机可读存储介质集合可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独的非暂时性存储介质的一个或多个可能并非包含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。此外,在一些示例中,执行可执行指令,使得不同的指令由不同的处理器执行。作为说明性示例,非暂时性计算机可读存储介质可以存储指令。主CPU可执行所述指令中的一些且图形处理器单元可执行所述指令中的其他指令。通常,计算机系统的不同部件可以具有单独的处理器,并且不同的处理器可以执行指令的不同子集。
因此,在一些示例中,计算机系统被配置为实施单独地或共同地执行本文中描述的过程的操作的一个或多个服务。此类计算机系统可以例如被配置有能够执行操作的适用硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些示例中可以是单个装置,而在其他示例中,是包括多个装置的分布式计算机系统,所述多个装置不同地操作,使得分布式计算机系统执行本文中描述的操作,并且使得单个装置不能执行所有操作。
除非另有要求,否则对本文所提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明书中的语言不应被解释为指示任何未要求保护的元素是实践本发明所必需的。
本文中描述了本公开的实施方案,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变化对于本领域的普通技术人员来说可变得显而易见。本发明人期望本领域技术人员适当地使用此类变化,并且发明人意图以与本文中的具体描述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有说明或另外明确地与上下文矛盾,否则本公开的范围涵盖其全部可能变化中的上述元素的任何组合。
在本文中引用的所有参考文献,包括公开案、专利申请案以及专利特此以引用的方式并入本文中,如同每一参考文献个别地且具体地指示为以引用的方式并入且全部在本文中阐述一样。

Claims (15)

1.一种计算机实现的用于将来自多个源的动态多媒体流插入的方法,包括:
至少部分地基于与第一放弃流相关联的放弃元数据来检测条件的满足,所述放弃元数据指示与所述第一放弃流的放弃相关联的一个或多个多媒体片段;
至少部分地基于所述放弃元数据,从多个事件驱动的函数中选择事件驱动的函数;
作为检测到满足条件的结果,提供计算环境以执行所述事件驱动的函数;
通过执行所述事件驱动的函数来获得与多个放弃的多媒体流相关联的放弃元数据集合,所述集合包括共同的放弃元数据;以及
至少部分地基于所述放弃元数据集合,从多个放弃的原因中确定与多个多媒体流的至少一部分相关联的放弃原因,其中所述放弃原因选自所述多个放弃的原因,以及其中所述多个放弃的原因包括技术错误和内容错误。
2.如权利要求1所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,其中:
所述第一放弃流包括第一多媒体片段和第二多媒体片段,其中:
所述第一多媒体片段与将多媒体内容插入所述第一放弃流的指示相关联;和
至少部分地基于所述指示确定将所述第二多媒体片段作为所述第一放弃流的一部分来传输;以及
与所述第一放弃流的放弃相关联的所述一个或多个多媒体片段包括所述第二多媒体片段。
3.如权利要求2所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,其中:
所述放弃元数据集合包括第二放弃元数据,其中所述第二放弃元数据指示所述第二多媒体片段与第二放弃流的放弃相关联;
所述第二放弃流包括所述第二多媒体片段;
至少部分地基于将多媒体片段插入所述第二放弃流的第二指示,将所述第二多媒体片段作为所述第二放弃流的一部分传输;以及
所述第一放弃流和所述第二放弃流包括不同的多媒体内容。
4.如权利要求2所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,还包括:
获得将多媒体内容插入多媒体流的第二指示,所述多媒体流包括与所述第一放弃流共同的多媒体内容;
至少部分地基于所述第二指示和所述原因的确定获得第三多媒体片段,其中所述第三多媒体片段不同于所述第二多媒体片段;以及
使所述第三多媒体片段作为所述多媒体流的一部分可用。
5.如权利要求1所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,其中所述共同的放弃元数据包括在所述集合和所述放弃元数据中指示的内容类型。
6.如权利要求5所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,其中:
与所述集合的第一放弃元数据相关联的第一多媒体片段指示所述内容类型;
与所述集合的第二放弃元数据相关联的第二多媒体片段指示所述内容类型;以及
所述第一多媒体片段和所述第二多媒体片段包括不同的多媒体内容。
7.如权利要求1所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,其中所述共同的放弃元数据包括与两个或更多个放弃流相关联的放弃元数据,所述两个或更多个放弃流包括与第二多媒体片段相关联的标识符。
8.如权利要求1所述的计算机实现的用于将来自多个源的动态多媒体流插入的方法,其中所述共同的放弃元数据包括与所述集合相关联的多媒体片段的编码格式。
9.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令使所述计算机系统至少:
至少部分地基于与第一放弃流相关联的放弃元数据来检测条件的满足,所述放弃元数据指示与所述第一放弃流的放弃相关联的一个或多个多媒体片段;
至少部分地基于所述放弃元数据,从多个事件驱动的函数中选择事件驱动的函数;
作为检测到满足条件的结果,提供计算环境以执行所述事件驱动的函数;
通过执行所述事件驱动的函数来获得与多个放弃的多媒体流相关联的放弃元数据集合,所述集合包括共同的放弃元数据;以及
至少部分地基于所述放弃元数据集合,从多个放弃的原因中确定与多个多媒体流的至少一部分相关联的放弃原因,其中所述放弃原因选自所述多个放弃的原因,以及其中所述多个放弃的原因包括技术错误和内容错误。
10.如权利要求9所述的非暂时性计算机可读存储介质,其中:
所述第一放弃流包括第一多媒体片段和第二多媒体片段,其中:
所述第一多媒体片段与将多媒体内容插入所述第一放弃流的指示相关联;以及
至少部分地基于所述指示确定将所述第二多媒体片段作为所述第一放弃流的一部分来传输;以及
与所述第一放弃流的放弃相关联的所述一个或多个多媒体片段包括所述第二多媒体片段。
11.如权利要求10所述的非暂时性计算机可读存储介质,其中:
所述放弃元数据集合包括第二放弃元数据,其中所述第二放弃元数据指示所述第二多媒体片段与第二放弃流的放弃相关联;
所述第二放弃流包括所述第二多媒体片段;
至少部分地基于将多媒体片段插入所述第二放弃流的第二指示,将所述第二多媒体片段作为所述第二放弃流的一部分传输;以及
所述第一放弃流和所述第二放弃流包括不同的多媒体内容。
12.如权利要求10所述的非暂时性计算机可读存储介质,其中所述指令使所述计算机系统:
获得将多媒体内容插入多媒体流的第二指示,所述多媒体流包括与所述第一放弃流共同的多媒体内容;
至少部分地基于所述第二指示和所述原因的确定获得第三多媒体片段,其中所述第三多媒体片段不同于所述第二多媒体片段;以及
使所述第三多媒体片段作为所述多媒体流的一部分可用。
13.如权利要求9所述的非暂时性计算机可读存储介质,其中所述共同的放弃元数据包括在所述集合和所述放弃元数据中指示的内容类型。
14.如权利要求13所述的非暂时性计算机可读存储介质,其中:
与所述集合的第一放弃元数据相关联的第一多媒体片段指示所述内容类型;
与所述集合的第二放弃元数据相关联的第二多媒体片段指示所述内容类型;以及
所述第一多媒体片段和所述第二多媒体片段包括不同的多媒体内容。
15.如权利要求9所述的非暂时性计算机可读存储介质,其中所述共同的放弃元数据包括与所述集合相关联的多媒体片段的编码格式。
CN202210867104.7A 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的方法和存储介质 Active CN115314756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210867104.7A CN115314756B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的方法和存储介质

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US15/624,450 2017-06-15
US15/624,453 2017-06-15
US15/624,450 US10880589B2 (en) 2017-06-15 2017-06-15 Dynamic multimedia stream insertion from multiple sources
US15/624,453 US10848824B2 (en) 2017-06-15 2017-06-15 Dynamic detection and mitigation of multimedia stream abandonment
PCT/US2018/035211 WO2018231527A1 (en) 2017-06-15 2018-05-30 Dynamic multimedia stream insertion from multiple sources
CN201880039618.5A CN110771172B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的系统和存储介质
CN202210867104.7A CN115314756B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的方法和存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880039618.5A Division CN110771172B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的系统和存储介质

Publications (2)

Publication Number Publication Date
CN115314756A CN115314756A (zh) 2022-11-08
CN115314756B true CN115314756B (zh) 2024-05-10

Family

ID=62683484

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880039618.5A Active CN110771172B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的系统和存储介质
CN202210867104.7A Active CN115314756B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的方法和存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201880039618.5A Active CN110771172B (zh) 2017-06-15 2018-05-30 来自多个源的动态多媒体流插入的系统和存储介质

Country Status (3)

Country Link
EP (2) EP3639521A1 (zh)
CN (2) CN110771172B (zh)
WO (1) WO2018231527A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021174219A1 (en) * 2020-02-28 2021-09-02 Hulu, LLC Identification of elements in a group for dynamic element replacement
EP3902276A1 (en) * 2020-04-21 2021-10-27 THEO Technologies Video stream control

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742554A (zh) * 2010-01-15 2010-06-16 南京邮电大学 无线多媒体传感器网络多路径传输机制的拥塞控制方法
CN102356622A (zh) * 2009-03-16 2012-02-15 微软公司 递送可缓存流媒体演示
CN103368940A (zh) * 2012-04-09 2013-10-23 英特尔公司 媒体内容的组合单播-多播/广播流的体验质量报告

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6698020B1 (en) * 1998-06-15 2004-02-24 Webtv Networks, Inc. Techniques for intelligent video ad insertion
US9124650B2 (en) * 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US8752087B2 (en) * 2008-11-07 2014-06-10 At&T Intellectual Property I, L.P. System and method for dynamically constructing personalized contextual video programs
US8789090B1 (en) * 2012-02-14 2014-07-22 Uplynk, LLC Advertisement insertion into media content for streaming
US20140040026A1 (en) * 2012-05-04 2014-02-06 Adobe Systems Incorporated Systems and methods for including advertisements in streaming content
CN104756505B (zh) * 2012-06-28 2020-04-07 爱立信股份有限公司 用于过顶实况媒体递送中的广告插入的方法和系统
US8495675B1 (en) * 2012-07-30 2013-07-23 Mdialog Corporation Method and system for dynamically inserting content into streaming media
US8732745B2 (en) * 2012-10-22 2014-05-20 Sony Corporation Method and system for inserting an advertisement in a media stream
US10476923B2 (en) * 2013-04-05 2019-11-12 Arris Enterprises Llc Filtering content for adaptive streaming
US20140351871A1 (en) * 2013-05-22 2014-11-27 Microsoft Corporation Live media processing and streaming service
US20150325268A1 (en) * 2014-05-12 2015-11-12 Penthera Partners, Inc. Downloading videos with commercials to mobile devices
US20170238039A1 (en) * 2014-08-18 2017-08-17 Interdigital Patent Holdings, Inc. Injecting streaming media into a playlist

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356622A (zh) * 2009-03-16 2012-02-15 微软公司 递送可缓存流媒体演示
CN101742554A (zh) * 2010-01-15 2010-06-16 南京邮电大学 无线多媒体传感器网络多路径传输机制的拥塞控制方法
CN103368940A (zh) * 2012-04-09 2013-10-23 英特尔公司 媒体内容的组合单播-多播/广播流的体验质量报告

Also Published As

Publication number Publication date
EP3639521A1 (en) 2020-04-22
EP4184920A1 (en) 2023-05-24
CN115314756A (zh) 2022-11-08
CN110771172A (zh) 2020-02-07
CN110771172B (zh) 2022-08-09
WO2018231527A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
US10880589B2 (en) Dynamic multimedia stream insertion from multiple sources
US11490145B2 (en) Content insertion in streaming media content
US10848824B2 (en) Dynamic detection and mitigation of multimedia stream abandonment
US10999343B1 (en) Apparatus and method for dynamically providing web-based multimedia to a mobile phone
US9973785B1 (en) Automatic failover for live video streaming
US9344517B2 (en) Downloading and adaptive streaming of multimedia content to a device with cache assist
US10114689B1 (en) Dynamic playlist generation
US11252479B2 (en) Methods, systems, and media for recommending media content based on attribute grouped viewing sessions
US6859838B1 (en) Media player with programmable playlists
US20200213682A1 (en) Content exposure attribution based on renderings of related content across multiple devices
US20160021164A1 (en) Live media stream validation
US10135899B1 (en) Dynamic archiving of streaming content
US11528313B2 (en) Methods and apparatuses for dynamic adaptive streaming over HTTP
WO2013097454A1 (zh) 一种视频插播的方法、装置及系统
US11418561B2 (en) Remote link validity interval in media streaming
CN115314756B (zh) 来自多个源的动态多媒体流插入的方法和存储介质
US11451602B2 (en) Methods and apparatuses for dynamic adaptive streaming over HTTP
Pinto–ee07186 State of the Art–Final Document

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