CN108781311B - 用于媒体分发和管理平台的视频播放器框架 - Google Patents
用于媒体分发和管理平台的视频播放器框架 Download PDFInfo
- Publication number
- CN108781311B CN108781311B CN201680081735.9A CN201680081735A CN108781311B CN 108781311 B CN108781311 B CN 108781311B CN 201680081735 A CN201680081735 A CN 201680081735A CN 108781311 B CN108781311 B CN 108781311B
- Authority
- CN
- China
- Prior art keywords
- player
- video
- module
- player module
- response
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-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/47217—End-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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8186—Monomedia components thereof involving executable data, e.g. software specially adapted to be executed by a peripheral of the client device, e.g. by a reprogrammable remote control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
Abstract
实施例包括从客户端接收针对第一视频内容和第一视频播放器的第一请求;作为响应(a)(i)获得用于第一视频播放器的第一源代码,(a)(ii)获得用于第一视频播放器的第一配置文件,(a)(iii)获得与第一视频播放器对应的第一播放器模块,以及(a)(iv)将上述事物传送到客户端。第一视频播放器包括经由图形用户界面播放视频的代码。第一播放器模块包括代码,所述代码响应于第一播放器模块订阅pub/sub系统的第一事件总线,响应于如下各项而执行第一例程:(b)(i)从与第一视频播放器对应的附加播放器模块向第一事件总线的第一发布,以及(b)(ii)与第一发布对应的第一回调函数的执行。
Description
优先权要求
本申请要求于2015年12月13日提交并且题为“Video Player Framework for aMedia Distribution and Management Platform(用于媒体分发和管理平台的视频播放器框架)”的美国临时专利申请号62/266,640的优先权,其内容被通过引用而特此结合。
技术领域
本发明的实施例在视频领域中并且特别地,在视频管理和分发领域中。
背景技术
随着企业组织继续接受视频的无处不在及其对网络安全、存储、内容和通信的影响,组织的员工、合作伙伴和客户将期望视频被集成到核心业务过程中并且更像电子邮件那样运行:跨所有设备和应用容易地创建、共享、观看和搜索。用例将超过传统的面向广播的模型而扩展成视频会话、诸如短暂的屏幕捕获或定制的视频消息之类的共享视频时刻,以及交互式个性化体验。
因此,分布式企业已经超越了基于诸如Adobe Flash®、Microsoft Silverlight®和Microsoft Windows®媒体之类的浏览器插件或专有技术、使用前代视频播放器简单地将视频发布到web站点的需要。这些播放器需要专门的脚本和知识,对更改不灵活,并提供有限数量的回放(playback)环境(例如,仅web、仅桌面、仅Windows、仅InternetExplorer等)。这些播放器提供商还经常将播放器定制限制成单个业务用例和/或单个元数据和转码(transcode)模型。因此,使用前代视频播放器的组织被迫维持众多小生境 、单一用途的视频播放器和提供商,它们是昂贵的、分散的,并且随着时间的过去管理是有挑战性的。企业和支持它们的代理需要经由针对业务用户所设计和批准的灵活框架并且利用最少的开发资源跨所有设备和应用环境快速地构建定制播放器体验的能力。
附图说明
根据所附权利要求书、一个或多个示例实施例的以下详细描述以及对应的各图,本发明的实施例的特征和优点将变得显而易见。在认为适当的情况下,参考标记在各图之间重复以指示对应的或类似的元件。
图1包括本发明的实施例中的用于媒体分发和管理的视频播放器框架(在本文中有时称为“视频播放器”)的层次图。
图2-3包括用于本发明的实施例的伪代码。
图4包括本发明的实施例的播放器模块序列图。该图解决了观看者、播放器和播放器模块之间的耦合。
图5包括本发明的实施例中的用于播放器模块创建的过程。
图6包括用于本发明的实施例的伪代码。
图7包括本发明的实施例中的用于播放器模块部署的过程。
图8包括用于本发明的实施例的伪代码。
图9、26和27包括用于实现本发明的实施例的系统。
图10包括本发明的实施例的示例实现。
图11-15包括本发明的实施例中的视频明信片。
图16-17包括本发明的实施例中的注释播放器模块。
图18-23包括本发明的实施例中的用户界面。
图24包括实施例中的用于播放器和播放器模块部署的过程。
图25包括实施例中的用于播放器模块部署的过程。
具体实施方式
在以下描述中,阐述了许多具体细节,但是可以在没有这些具体细节的情况下实践本发明的实施例。没有详细地示出公知的电路、结构和技术,以避免模糊对本说明书的理解。“实施例”,“各种实施例”等指示如此描述的(多个)实施例可包括特定特征、结构或特性,但并非每个实施例必定包括所述特定特征、结构或特性。一些实施例可以具有针对其它实施例描述的特征中的一些、全部或不具有针对其它实施例描述的特征。“第一”、“第二”、“第三”等描述了共同的对象并且指示了被提及的相同对象的不同实例。这样的形容词并不暗示如此描述的对象必须在时间上、在空间上、在排名中或在任何其它方式中采用给定的序列。“连接”可以指示元件彼此直接物理或电接触,并且“耦合”可以指示元件彼此合作或交互,但是它们可以或可以不直接物理或电接触。而且,尽管可以使用类似或相同的数字来指定不同图中的相同或类似的部分,但如此做并不意味着包括类似或相同数字的所有图构成单个或同一实施例。在本文中描述有时同时涵盖若干不同的图。为清楚起见,图包括其中最重要的值表示包括组件的图的组件(例如,元件3XX将在图3中找到,并且元件4XX将在图4中找到)。
本发明的实施例采用“播放器框架”(即“视频播放器”)来通过易于跨多种多样的业务应用和工作流程所使用的直观的、高度连接的现代应用编程接口(API)揭露一组广泛的离散、模块化的视频能力。“播放器框架”是允许灵活的视频递送选项的平台,所述视频递送选项包括跨设备、网络和应用环境的多种视频回放格式和流式传输方法。
本发明的实施例通过播放器框架来使得能够实现定制的视频播放器递送、功能性和用户体验。使用播放器模块的系统,通过中央事件总线的来自发布/订阅(pub/sub)软件架构的通信,用户可以组合单独的播放器组件以在视频平台和应用环境内创建独特的播放器体验。播放器框架内的播放器模块允许在这些平台上对交互式视频播放器体验的灵活定制和部署。
本发明的实施例使得内部和第三方应用能够扩展和定制用于视频管理和分发的解决方案,并能够为外部平台和应用环境创建可重用组件的库。这样的库可以形成用于开发者添加内容提供商购买的播放器模块的市场。
在图1中,框101-110图示了播放器框架内的资源之间的关系。在框102中,到播放器框架的中央资源是“工作室(studio)”:“视频”的集合、这些视频被发布到的“目的地”,以及可以管理和分发这些视频的“用户”。在框101中,工作室由零个或多个“用户”组成。“用户”指的是个人用户帐户,其可能与多种角色中的一个或多个工作室相关联以便于简单的组织管理而没有复杂的访问控制规则。
工作室管理并组织零个或多个“视频”的集合。框103-105展示“视频”指的是原始视频文件或视频流(框105)、转码的变型(框103)、流媒体统一资源定位符(URL)等以及用于将视频发布到零个或多个目的地的关联元数据(标题、描述、预览图像等)(框104)。视频还跟踪缩略图和关于视频内容的各种元数据,所述各种元数据包括管理和合作细节、隐藏式标题和字幕、对视频内容的描述、用于在数据库内搜索视频的概要和关键字等。视频可能是像来自相机或制作的未经编辑的剪辑、需要来自合作者或客户的批准的完成的编辑、准备好分发的最终版本、直播流音频或视频广播、或其间的任何阶段一样简单。
本发明的实施例使得视频资产、元数据和补充内容、文档以及文件(例如,优惠券、培训材料、机票、音乐会票、PDF文档、Microsoft Word®文档、Microsoft Excel®电子表格、Microsoft PowerPoint®幻灯片)能够部署到多种多样的“目的地”。如由Marshall, J.,(2014年)的美国专利8,826,332所定义的,“目的地”是用于发布视频,管理用于认证用户、发布视频的要求,跟踪活动,以及移除对转码、打包和递送的关心的授权平台。“目的地”允许视频文件和视频流的发布、更新、取消发布和统计检索的某个组合。每个目的地可能需要将视频转码成一个或多个所需格式,或者可能需要经由网络(例如,API、文件传送协议(FTP)、内容递送网络(CDN))的传递。“目的地”包括多种多样的视频平台和应用环境,包括智能TV(例如,索尼Bravia)、过顶(OTT)播放器(例如,Roku®、Chromecast®、Apple TV®)、数字媒体播放器(例如,Quicktime®、Android®)和视频共享web站点(例如,YouTube®、Facebook®)。在一些平台上播放器布局(例如,“播放”按钮位于哪里以及对用户而言按钮看起来如何)可以通过标准web技术(包括HTML、CSS和JavaScript)确定,而在其它平台(例如,本机移动应用,诸如Apple TV®和Roku®等的OTT平台)上可能需要专有技术(例如,Roku®设备上的Brightscript)和软件开发工具(例如,用于用来为Apple TV®和基于iOS®的移动设备进行开发的AppleXcode®)来定制围绕视频内容的呈现、视觉布局、交互性和活动跟踪。
框106展示了工作室包含零个或多个目的地。在框106中,实施例根据各个目的地平台打包(来自框105的)视频并抽象出(abstract)各种底层系统。因为视频递送要求频繁改变并且前代视频标准(例如,FLV、Flash、RTMP)变得不太相关,所以出现了新的分发格式和平台(例如,MPEG DASH、HLS、OTT、WebRTC)。因此,在框103-106中,实施例抽象出各种视频“转码”。例如,实施例可以选择隐藏对视频文件或视频流进行转码(例如,将视频内容重新压缩或重新打包成替代的数字流或视频格式)作为经由播放器框架发布或更新视频的隐含部分。在框103-106中,在视频已经被发布到一个或多个目的地之后,视频、其元数据及其补充内容对播放器模块(框107)(用于处置媒体播放器(框110)操作的部分的离散单元)可用,用于在运行时使用。例如,当请求用于视频的嵌入代码时,可下载的PowerPoint®呈现可以被包括在视频和播放器内。在该示例中,播放器可以包括可定制的链接、按钮或其它行动号召(CTA)接口,以使得观看者能够下载该呈现。
在框106中,目的地包括web平台(例如,默认的HTML5播放器)、OTT平台(例如,YouTube®、Hulu®、Apple TV®、Roku®),或者为工作室启用的任何定制环境。框105和106指示工作室内的视频资产可以发布到这些目的地中的任何目的地。“目的地配置”文件或代码用于在播放器框架内为目的地指定各种视频和播放器递送配置。例如,用于YouTube的目的地配置可能限制视频分辨率、格式、回放长度等。目的地配置具有默认值,但可以由用户覆写。
播放器模块
仍然访问图1,本发明的实施例使用多种编程语言、技术和应用环境(包括用于Android®的Java、用于iOS®和Mac OS X®的Objective C和Swift、用于Roku® 应用的Brightscript 等)使得能够实现播放器模块的创建、开发、部署和管理。在框107-109中,播放器模块(框107)由源文件(框108)组成,所述源文件负责视频播放器的整个体验,包括确定最佳流媒体质量和格式、构建视觉布局,以及捕获用于报告和分析的数据。验证播放器模块的源文件、配置文件(其例如可以命令用户界面模块的播放按钮为蓝色)(框109)和附加文件以确保性能、安全性和与目的地及其应用环境的兼容性。例如,播放器框架将使以Swift实现但被部署到需要Brightscript语言的Roku®目的地的模块无效。
视频播放器包括核心库,其负责在播放器被加载时建立pub/sub架构和播放器模块的“事件总线”。播放器模块向视频播放器的核心库登记回调函数。在观看者经由嵌入代码请求(多个)视频和播放器之后,视频播放器的核心库调用此回调函数。“事件总线”和播放器模块的“配置”被作为引数(argument)传递给回调函数。“事件总线”是模块之间通信的主要方法。通过发布或订阅事件,播放器模块可以执行取决于由其它模块发布的事件的操作而不是取决于其特定代码实现的操作。此方法还允许概念组件的动态交换而不改变其它依赖模块。在框109中,播放器模块包括“模块配置”,其指定用来定制模块的配置引数。配置引数利用唯一名称来指定,并被给出字段类型(例如,整数、布尔、文件、字符串、浮点)。在模块配置(框109)中,模块可以要求在将模块部署到目的地内的播放器之前指定引数值。
在本发明的实施例中,视频由“嵌入代码”引用,所述“嵌入代码”是在被请求时返回目的地内的(多个)视频的给定集合的URL,用于该目的地的视频“播放器”被加载或递送给请求的客户。播放器包括核心HTML和JavaScript、“播放器配置”和“播放器模块”。
在框110中,“视频播放器”包括视频(框105)、播放器模块(框107)、目的地(框106)(例如,用于Facebook的播放器“包括”Facebook作为用于该播放器的目的地)和目的地的(多个)应用环境(例如,web、本机iOS、Apple TV等)。视频播放器具有(在一些实施例中经由嵌入代码访问的)唯一标识符以指定它所属的工作室(框102)、播放器使用的模块的集合(框107)、模块的源代码(框108)、元数据(框108)、配置(框109)和附加文件(框108),以及播放器被部署到的目的地(框106)。被授权用于分发到该目的地的视频(框105)经由播放器(框110)播放。在工作室(框102)内,目的地可以具有多个播放器(例如,用于Twitter的具有请求CTA模块的电子邮件和/或用于跟踪用户点击的分析模块的一个播放器,以及用于Twitter的不具有CTA模块和分析模块中的一个或二者的另一个播放器)。由此得出结论,工作室可以具有多个播放器(例如,一个用于Facebook,并且一个用于Twitter)。视频元数据和模块配置被在运行时动态地提供给每个播放器例示。
框107和110图示了播放器(框110)包括一系列可配置模块(框107),其负责播放器功能性的每个方面,诸如仔细检查视频、选择视频播放列表内的视频、渲染用户界面控件和视频质量、转码以及流媒体选择。
在实施例中,播放器具有有着默认视觉布局和标准视频回放选项的“默认配置”。“默认配置”由播放器的目的地所确定。例如,用于HTML5播放器的“默认配置”包括一系列默认的可配置JavaScript模块,它们负责播放器功能性,诸如UI呈现(包括HTML和CSS)以及视频流媒体决定。
用户可以利用定制的播放器模块来扩展播放器的核心功能性。例如,默认情况下可用的播放器模块使得开发者能够覆写HTML5播放器的“默认配置”内的HTML和/或CSS,以定制播放器的外观和用户体验。可以通过提供加载有效HTML代码和相关联的静态文件(诸如CSS和图像)的主题模块来覆写播放器UI。另外,HTML5播放器可以在回放模块内部包括JavaScript逻辑,以在不支持标准<video>标签的较旧浏览器内恢复为基于Flash或插件的回放选项。该模块的替代实现(例如,用Java编写的本机Android应用)可能在基于HTTP或RTMP的流媒体之间作出决定,这取决于所支持的环境。
本发明的实施例利用事件总线中的可串行化事件(pub/sub事件)来使得能够实现跨通信设备的播放器模块之间的通信。在许多应用环境中,外部应用代码(例如,与其托管的播放器交互的浏览器代码)也可以利用事件总线并与模块通信,起附加模块的作用。例如,在使用<iframe>嵌入的web应用中,外部页面上的JavaScript可以使用postMessage接口来广播和接收来自播放器内部的事件,允许页面的其余部分触发用户模块可以提供的任何动作或状态。
在实施例中,默认情况下使用JavaScript对象表示法(JSON)来传送在播放器、播放器模块和应用环境之间发送的消息,尽管串行化的实际机制是按应用环境定制的。
图2包括用类似于JSON的伪代码的(其它模块可订阅的)播放器寻找pub/sub事件的示例。事件名称是主要动作标识符,并且可以根据定义它的模块进行空间命名(namespace)。事件名称可以表示行动号召(CTA)或者动作已经发生的指示(例如,Player.seeking(播放器.寻找)、Player.seeked(播放器.寻找到))。引数列表表示订阅模块可能需要的任何变量信息。在播放器寻找示例中,观看者已将寻找事件触发到视频中的15.6秒。id值唯一地标识正在广播事件的播放器。
图3图示了用于HTML5视频播放器内的示例CTA播放器模块的类似于JavaScript的伪代码。示例播放器模块在观看者完成观看所请求的视频之后显示CTA图像连同到外部web站点的链接(但是在其它实施例中,CTA可以在视频被观看之前,诸如图10)。该示例表示常见的用例,其中观看者可通过点击CTA图像而获得关于视频内容的更多信息。
继续关于来自图3的示例CTA播放器模块,图4显示了序列图,其具有在CTA播放器模块内加载和执行指令时播放器框架所采用的步骤。在框401中,观看者(例如,客户)使用嵌入代码来请求视频和播放器。在框402-403中,由播放器框架(例如,服务器)部署的视频播放器加载与嵌入代码中(直接或间接)要求的播放器对应的核心HTML和播放器配置。在框404中,视频播放器加载各种模块,包括播放器框架和播放器控制模块以及用户创建的CTA播放器模块(其在该示例中是焦点)。
在框405中,CTA播放器模块向视频播放器登记回调。在框406中,CTA播放器模块订阅事件总线上的Player.finished(播放器.完成)事件。这可能发生在客户端上,但也可能发生在服务器或其它计算节点上。因此,图4的“框架”可以分布在(例如,使用嵌入代码的)客户端和/或(播放器模块在被部署到观看者的客户端之前存储的)服务器之中。在框407中,将播放器和视频加载到客户端上并显示给观看者。在框408中,观看者点击观看器中的播放按钮,使得播放器控制模块在框409中触发Player.play(播放器.播放)事件。在框410中,订阅Player.play事件,播放器框架模块在事件被触发时启动视频。在框411中,视频回放继续直到观看者到达视频的结尾。在框412中,由视频播放器触发Player.finished事件。在框413中,视频播放器调用CTA播放器模块的回调,将CTA播放器模块的配置、事件总线和视频的元数据传递到框架中。在框414中,CTA播放器模块接收Player.finished事件并显示在CTA播放器模块的配置中指定的图像(例如,要求电子邮件或其它联系信息的提示)。如果观看者点击显示的图像,则观看者将被带到CTA播放器模块配置中指定的URL。
播放器API
本发明的实施例包括API,作为用于管理播放器框架系统中的所有资源的外部接口。默认模块、第三方模块和定制的播放器模块源代码、元数据和配置经由API进行管理,从而允许播放器行为的扩展或替换。通过“令牌”,外部应用可以代表用户作出请求,并随后访问所有授权的工作室、目的地、视频等。“令牌”是其它软件应用用来唯一地标识和认证要使用API的用户的软件密钥。
在框501中,本发明的实施例使得用户能够在播放器框架内创建(例如,图6)播放器模块并经由API管理所述播放器模块。在框502中,用户使用API上传播放器模块、播放器模块源代码、模块配置和模块使用的附加文件(例如,图像、CSS等)。在框503中,播放器框架经由API验证合法的源代码、模块元数据和附加文件(诸如图像、视频等)的存在。如果播放器模块的源代码、元数据、配置或附加文件无效,则在框504中拒绝该播放器模块。在框505中,经由API将错误消息、错误代码和附加信息发送给用户。返回到框503,如果验证了播放器模块的源代码、元数据、配置和附加文件,则由播放器框架将文件存储在文件服务器上。播放器模块配置和伴随的元数据与播放器模块的唯一标识符一起存储在数据库中。在框506中,使得播放器模块对针对在用户的工作室内的使用而授权的用户和目的地可用。例如,工作室可以是业务、业务的单元、两个业务之间的合作组等。在框507中,经由API向用户发送成功代码、成功消息和关于播放器模块的附加信息,包括生成的播放器模块的唯一标识符、创建时间戳以及存储在播放器框架内的描述播放器模块的其它细节。通过引用播放器模块的唯一标识符,经由API可以将标准读取、更新和删除操作应用于模块。
继续关于CTA模块示例,图6采用被称作cURL的命令行HTTP客户端来经由API在播放器框架内创建命名为cta_module的具有标签“uStudio CTA Module”的播放器模块。可以使用用于web应用的客户端或服务器侧代码、移动app中的本机代码或支持HTTP的任何其它客户端来代替cURL工具。为简洁起见,未展示其它重要操作,诸如更新和删除模块。配置引数指示在视频已完成播放时显示CTA图像。如果用户点击cta_image中指定的CTA图像,则用户被带到模块配置内的cta_url中指定的URL。cta_image引数是文件类型,而cta_url被存储为字符串类型。在将模块添加到目的地时,需要引数cta_image和cta_url二者。播放器模块的源代码可以被作为压缩格式(例如,ZIP文件、tar档案文件)或者作为包含源代码的一组文件从本地计算机或从远程服务器上传到播放器框架系统。在CTA播放器模块示例中,播放器模块的源代码被提供为位于http://ustudio.com处的命名为cta_module.zip的ZIP文件。
在播放器框架内创建(图6)并验证(图5)播放器模块之后,本发明的实施例使得用户能够管理播放器模块并使播放器模块对用户的工作室内的目的地可用(图7)。
在图7中,利用框701,用户经由API将向播放器框架登记的播放器模块添加到目的地。框702-703验证目的地和播放器模块唯一标识符存在于播放器框架内,并且用户的帐户已被授权读取和编辑播放器模块的属性和目的地的属性。框704验证用户指定的模块配置值,以确保给出了所需的字段并且提供的值满足配置字段类型。如果目的地或模块唯一标识符或者模块配置值无效,则在框705中拒绝播放器模块将模块部署到指定目的地。在框706中,经由API向用户发送错误消息、错误代码和附加信息。返回到框702-704,如果验证了目的地和模块唯一标识符以及模块配置值,则在框707中播放器模块、模块配置值和伴随的元数据被向播放器框架登记并与播放器模块的唯一标识符和目的地的唯一标识符二者一起存储在数据库中。在框708中,使播放器模块对在配置目的地的应用环境中部署到目的地的视频播放器可用。在框709中,经由API向用户发送成功代码、成功消息和关于播放器模块的附加信息,包括描述播放器模块到目的地及其应用环境的部署的时间戳和其它元数据。通过引用播放器模块的唯一标识符和目的地的唯一标识符二者,经由API可以将标准读取、更新和删除操作应用于登记到目的地的播放器模块。
继续关于播放器-模块创建示例,图8图示了用户可以如何通过使用被称作cURL的命令行HTTP客户端来引用播放器模块的唯一标识符连同使用在DESTINATION_UID参数中指定的目的地的唯一标识符、经由API向目的地提供播放器模块。可以使用用于web应用的客户端或服务器侧代码、移动app中的本机代码或支持HTTP的任何其它客户端来代替cURL工具。为简洁起见,未图示其它重要操作,诸如更新和删除模块。在uid字段中指定播放器模块的唯一标识符。在配置字段中提供播放器模块配置。具体地,用户指定的CTA图像是位于http://ustudio.com处的命名为cta_image.jpg的文件。当观看者点击cta_image.jpg图像时,观看者将被送到cta_url中指定的链接,即http://ustudio.com。
在工作室内,可以针对目的地上的配置而授权多个播放器模块。多个播放器模块也可以被部署到同一目的地。可以为播放器模块提供目的地特定的配置,从而覆写默认模块配置。默认情况下,目的地使用一组预定义的默认模块,其可以被替换或扩展。
图10至23展示了采用播放器模块来添加或替换标准视频播放器内的标准回放行为、美感和功能性的三个示例。
图10图示了示例视频播放器,其中在观看者可以观看视频之前网关要求有效的用户输入(例如,有效的电子邮件地址)。在视频回放之前、期间或之后采用网关的能力对于多种用例是有价值的,所述多种用例包括:(1)通过将网关嵌入到产品综述视频而进行的销售线索生成,(2)在引人注目的视频被观看之后为公司品牌生成市场营销线索,(3)要求观看者输入电话号码以获得来自支持或销售代表的回电,和/或(4)基于观看者对诸如角色、公司大小或邮政编码之类的问题的回答来剪裁视频。
在电子邮件网关示例中,网关播放器模块被添加到标准视频播放器。网关播放器模块及其模块配置确定网关的外观和布局,包括文本框和按钮的布局、用来提示观看者的文本以及覆盖的图像的透明度的量。在观看者输入电子邮件地址之后,网关模块验证电子邮件地址。如果电子邮件地址无效,则向观看者示出错误消息,并且观看者可以输入另一个电子邮件地址。在观看者输入有效的电子邮件地址之后,网关播放器模块将电子邮件地址发送到如在网关播放器模块的配置中指定的数据库、服务器或第三方服务中的至少一个。
在观看者提交了有效的电子邮件地址之后,网关播放器模块允许视频播放器显示视频和标准视频回放控件(例如,播放按钮)。网关播放器模块还在观看者的本地机器上存储cookie或其它数据。在该数据被存储在观看者的本地机器上之后,如果观看者刷新视频播放器或在稍后的时间返回到视频播放器,则网关播放器模块不会向观看者提示附加的电子邮件网关以便最小化观看者挫败感。
网关播放器模块提供可选的配置和功能性。可以包括可选的服务器侧组件,以确保观看者提交有效的电子邮件地址。此服务器侧组件提供附加的安全性,以确保观看者不会绕过网关。网关播放器模块还具有随机地或有系统地选择是否显示网关输入形式的能力。因为网关可能降低观看者观看视频的意愿,所以该选项具有降低必须提交有效电子邮件地址的观看者的数量的优势。例如,模块的版本可以允许电子邮件的随机请求,而同一播放器模块的另一版本可以使网关成为强制的。此外,当与跟踪和分析播放器模块配对时,可以计算和存储对愿意输入电子邮件地址的观看者的比例的估计,从而提供关于收集更多观看者电子邮件地址与在被网关提示之后不愿意观看视频的观看者的数量的权衡的洞悉。
图11至15图示了示例视频播放器,其中标准视频播放器的外观和功能性已被用用于德克萨斯州奥斯汀市的动态虚拟明信片替换。在图11中,明信片播放器提供了使用单个嵌入代码播放七个不同视频的界面。图12示出了当观看者将鼠标悬停在建筑物上面时突出了德克萨斯州议会大厦。通过点击德克萨斯州议会大厦,显示了图13中的视频。如果观看者点击X,则视频关闭,并再次示出图11中的明信片。图14和15展示了当观看者将鼠标悬停在单独的字母上面时突出了单独的字母。与德克萨斯州议会大厦类似,当观看者点击AUSTIN的突出的字母时,示出了具有用来经由X关闭视频的选项的视频。
明信片播放器示例通过提供外观播放器模块展示了定制视频播放器的外观和行为的能力,所述外观播放器模块包括用来更改标准视频播放器的源代码和图像。明信片播放器可用在多种用例中,包括:(1)度假圣地、主题公园或突出关键景点和目的地的城市的地图,以及(2)具有解释每个组件的视频的产品图。
图16和17提供了添加到可以捕获来自观看者的注释的标准视频播放器的播放器模块的示例。在图16中,观看者首先暂停视频,并且然后点击视频回放区域内的某个位置。注释播放器模块提示观看者进行注释。在观看者提交注释之后,由注释播放器模块向如在注释播放器模块的配置中指定的数据库、服务器或第三方服务中的至少一个发送输入的文本连同各种元数据,包括视频回放时间戳和点击的坐标。分析模块可以分析该信息(例如,点击坐标)。类似地,图17示出了观看者可以在视频正在播放(未暂停)时输入和提交注释。当观看者点击视频回放区域以输入注释时,视频暂停。一旦观看者提交了注释,视频回放就会重新开始(resume)。关于重新开始,视频可以从它停止的地方重新开始,或者可以以实时视频流重新开始。
注释提示的外观、布局和功能性由注释播放器模块及其模块配置确定。注释播放器模块对于多种用例都是有价值的,所述多种用例包括:(1)从客户收集关于产品支持视频的反馈,(2)在直播流视频期间捕获问答会话中的问题,以及(3)在视频后期制作工作流程期间从视频编辑器收集关于视频内的剪辑是否应当被更改或删除的评论。
图18至23显示了示例视频播放器,其中可以一前一后地包括多个播放器模块以实现交互式视频体验。在该示例中,作者通过在线视频活动和书籍签名旅行来推销他的新书,如图18中所看见的。交互式视频播放器使得观看者能够订购书籍签名活动的门票,能够订阅邮寄列表以接收关于即将到来的活动的信息,并能够通过标准社交媒体渠道与作者互动。
除了标准视频播放器之外,该活动的视频播放器还通过采用三个播放器模块来利用交互式视频。第一播放器模块使得观看者能够订购书籍签名活动的门票。在图19中,通过将鼠标悬停在飞机图标上面,向观看者提示书籍签名旅行时间表。如果观看者点击飞机图标,图20列出了即将到来的书籍签名的日期和位置,指示书籍签名是否已售罄,并提供指向第三方门票供应商的链接。门票播放器模块从外部服务器或服务检索图20中列出的信息。
图21示出了观看者可以订阅邮寄列表以获得来自作者的更新和即将到来的活动。第二播放器模块负责视频播放器内的订阅能力的外观、布局和功能性。订阅播放器模块允许用户通过将鼠标悬停在信封图标上面来与信封图标进行交互。在观看者点击信封图标之后,图22显示了用于使观看者输入有效电子邮件地址的提示。如果电子邮件地址无效,则订阅播放器模块向观看者示出错误消息,并且观看者可以输入另一个电子邮件地址。在观看者输入有效的电子邮件地址之后,电子邮件地址被发送到如在订阅播放器模块的配置中指定的数据库、服务器或第三方服务中的至少一个。
第三播放器模块将社交媒体能力添加到视频播放器。图23在视频播放器的右侧显示了社交媒体渠道的四个图标。每个图标的外观和功能性由社交媒体模块确定。例如,图23示出了将鼠标悬停在第四社交媒体图标上面改变了其外观并显示了关于社交媒体平台的更多信息。如果观看者点击此图标,则观看者被带到社交媒体web站点。社交媒体播放器模块还使得观看者能够在点击社交媒体图标之后显示作者的社交媒体帖子以及与其他用户的交互。
在作者的活动示例中展示的交互性可以应用于许多用例,所述用例包括:(1)在音乐视频内销售音乐会门票,(2)允许会议参加者直接从视频预订酒店和租赁汽车,以及(3)从视频销售登记通行证(pass)以促进即将到来的会议。
图24显示了具有当观看者从播放器框架加载视频播放器时采用的步骤的流程图。例如,命名为Alice的观看者使用示例嵌入代码https://embed.ustudio.com/embed/DpTPknry4Pc7/UFpuc1MT4vpP向她的浏览器请求视频。在此示例中,嵌入代码包括视频的唯一标识符UFpuc1MT4vpP和目的地的唯一标识符DpTPknry4Pc7。这两个标识符可以共同被认为是单个标识符。目的地ID指示服务器在浏览器内检索为HTML5视频指定的目的地的视频播放器(虽然间接地)。服务器检索用于目的地的视频播放器的播放器模块、其源代码和附加文件(例如图像),并将它们发送到Alice的浏览器。源代码包括用来确定例如视频播放器的图像的放置的占位符值、回放控件的颜色,以及所有其它播放器外观和布局属性。占位符值在播放器元数据(例如,配置文件中包括的元数据)中指定并被发送到Alice的浏览器。描述视频的附加元数据(例如,视频内容的概要)和视频播放器被发送到Alice的浏览器。经由目的地ID间接地访问视频播放器ID,以便为视频播放器提供安全性。
因此,在框2401中,客户端访问嵌入代码,所述嵌入代码包括用于目的地和期望的视频内容的(多个)标识符。在框2405中,基于嵌入代码中的信息、经由目的地ID间接地访问视频播放器ID。在框2410中,基于视频播放器ID,服务器检索用于目的地的视频播放器的播放器模块、播放器模块源代码和附加文件(例如,图像),并将它们发送到观看者的浏览器。在框2415中,播放器模块源代码包括用来确定视频播放器的图像的放置的占位符值、回放控件的颜色以及其它播放器外观和布局属性。占位符值在播放器元数据(例如,配置文件中包括的元数据)中指定并被发送到观看者的浏览器。描述视频的附加元数据和视频播放器被发送到浏览器。
继续关于Alice的示例,播放器ID(例如,85766461-b79e-4858-8b1a-6513d6a248af)引用一组播放器模块以包括在发送到图24中的Alice的浏览器的播放器内。在框2505和2510中,发送到Alice的浏览器的播放器模块中的每个包括播放器模块标识符和播放器模块配置。播放器模块由其标识符唯一地标识。使用播放器模块标识符,视频播放器加载播放器模块、播放器模块的源代码和播放器模块的配置。
框2515至2535列出了关于视频播放器所包括的一组默认播放器模块。这些默认模块可以被更改或用另一组播放器模块替换或完全移除。在框2515中,加载具有ID428ba555-a5d4-4771-a362-136ad764492f的命名为uStudioQuality的默认播放器模块并将其发送到Alice的浏览器。uStudioQuality模块确定Alice的浏览器支持回放具有高达1920 x 1080的分辨率的MP4视频。因为Alice的网络带宽将导致MP4视频的大量加载时间,所以uStudioQuality模块标识要从服务器检索的最佳转码是1152 x 720转码,从而导致更快的加载时间。
在框2520中,具有ID 240ea199-95bd-4565-9283-3f560c2f10ad的命名为uStudioPlaylist的默认播放器模块检索为视频UFpuc1MT4vpP指定的1152 x 720MP4转码的位置。如果多个视频可用于Alice提供的嵌入代码,则将使得用于视频播放列表中的每个视频的转码对播放器可用。
在框2525中,具有ID e9e003b2-91f4-471b-a360-04f1afbe5416的命名为uStudioPlayer的默认播放器模块负责执行标准回放方法,所述标准回放方法包括缓冲、寻找、播放视频、暂停视频、调整回放音量、静音回放音量和切换全屏回放。
在框2530中,具有ID ddcdad8b-4d14-494f-a17b-8b60c89b3de2的命名为uStudioUI的默认播放器模块负责使用静态和动态控件及资产二者来确定播放器外观和布局。示例静态资产将是在Alice点击“播放”按钮之前显示给Alice的视频缩略图。相反,播放按钮的颜色和大小由uStudioUI播放器模块通过从播放器元数据中选择和检索这些播放器外观参数来动态地确定。在Alice示例中,小的、居中的和橙色的播放按钮在播放器模块的CSS中指定,并且类似于图12中的播放按钮。CSS文件的位置在播放器模块的配置中指定,并且CSS文件由uStudioUI播放器模块加载。uStudioUI播放器模块的源代码是目的地特定的:例如,uStudioUI播放器模块是用用于Roku OTT设备的专有Brightscript语言编写的。相比之下,uStudioUI播放器模块在Alice示例中确定了用HTML、CSS和JavaScript的播放器的布局和外观。改变多种设备和框架内的布局的该灵活性是本发明的实施例的主要优点。
在框2535中,具有ID 66f3fe6d-b791-40c1-b461-dfe48aa515e2的命名为uStudioAnalytics的默认播放器模块跟踪并捕获基本电视观众(viewership)、印象、人口统计数据、地理、观看者行为和参与数据。例如,Alice点击播放器的暂停按钮,并在30秒后重新开始观看。Alice然后在她检查了她的电子邮件之后将视频倒回15秒。在两个情况下,除了时间戳和类似数据之外,Alice的暂停、重新开始和倒回视频的动作也由uStudioAnalytics模块捕获并发送到uStudioAnalytics的播放器模块中指定的服务器。
在框2540中,视频播放器使得定制的播放器模块能够向播放器登记以更改功能性、布局和外观。在Alice示例中,使用图3中讨论的相同机制向播放器框架登记了具有ID8cd7dc7b-1df1-4597-acf5-01bdbecdf626的命名为CustomTrackingModule的定制播放器模块。该播放器模块的目的是跟踪Alice的鼠标在浏览器内的移动,作为Alice在屏幕上正在寻找的代理。当Alice移动她的鼠标时,触发Mouse.moved(鼠标.移动)事件连同鼠标位置的x-y坐标。CustomTrackingModule播放器模块还跟踪其他用户行为,诸如左键点击、右键点击以及浏览器窗口是否失去焦点。来自CustomTrackingModule播放器模块的每个事件都被发布到播放器模块配置中提供的服务器。CustomTrackingModule播放器模块是用JavaScript编写的,JavaScript是Alice的浏览器支持的语言。如果为不同的目的地(例如,Roku®、Apple TV®)创建了类似的播放器模块,则可能需要不同的编程语言来实现该模块。
在框2545和2550中,将播放器事件发布到可串行化的事件总线以用于模块之间的通信。通过发布或订阅事件,播放器模块可以执行取决于由其它模块发布的事件而不是其特定代码实现的操作。在Alice示例中,CustomTrackingModule播放器模块经由事件总线订阅uStudioPlayer播放器模块发布的事件,以便捕获Alice移动她的鼠标的上下文。例如,当Alice暂停视频时,CustomTrackingModule播放器模块订阅由uStudioPlayer播放器模块发布的Player.pause(播放器.暂停)事件,同时还跟踪Alice的鼠标移动。除了将Alice的鼠标移动的x-y坐标发送到播放器模块配置中指定的服务器之外,CustomTrackingModule播放器模块还发送播放器的暂停状态,从而允许下游分析以更好地理解Alice的鼠标移动的上下文。
在框2555中,播放器使用播放器模块的ID检索并向播放器模块发送播放器模块的配置。在Alice示例中,CustomTrackingModule播放器模块的配置列出了当发送到在播放器模块的配置中指定的服务器时播放器模块将订阅的事件,包括Player.pause。
现在参考图9,所示出的是可以与实施例一起使用的示例系统(例如,图4的客户端系统)的框图。如所看见的,系统900可以是智能电话或其它无线通信器或任何其它IoT设备。基带处理器905被配置成关于要从系统传输或由系统接收的通信信号执行各种信号处理。继而,基带处理器905耦合到应用处理器910,所述应用处理器910可以是系统的主CPU以除了诸如许多公知的社交媒体和多媒体app之类的用户应用之外还执行OS和其它系统软件。应用处理器910还可以被配置成针对设备执行多种其它计算操作。
继而,应用处理器910可以耦合到用户界面/显示器920(例如,触摸屏显示器)。另外,应用处理器910可以耦合到包括非易失性存储器(即闪存930)和系统存储器(即DRAM935)的存储器系统。在一些实施例中,闪存930可以包括其中可以存储秘密和其它敏感信息的安全部分932。如还看见的,应用处理器910还耦合到捕获设备945,诸如可以记录视频和/或静止图像的一个或多个图像捕获设备。
通用集成电路卡(UICC)940包括订阅者身份模块,所述订阅者身份模块在一些实施例中包括用来存储安全用户信息的安全储存器942。系统900还可以包括可以耦合到应用处理器910的安全处理器950(例如,可信平台模块(TPM))。包括一个或多个多轴加速计的多个传感器925可以耦合到应用处理器910以使得能够实现多种感测到的信息的输入,所述信息诸如运动和其它环境信息。另外,一个或多个认证设备995可用于接收例如用户生物计量输入以供在认证操作中使用。
如还图示的,提供近场通信(NFC)非接触式接口960,其经由NFC天线965在NFC近场中进行通信。虽然示出了单独的天线,但是要理解在一些实现中可以提供一个天线或一组不同的天线以使得能够实现各种无线功能性。
功率管理集成电路(PMIC)915耦合到应用处理器910以执行平台级功率管理。为此目的,PMIC 915可以向应用处理器910发出功率管理请求以根据需要进入某些低功率状态。此外,基于平台约束,PMIC 915还可以控制系统900的其它组件的功率水平。
为了使得能够诸如在一个或多个IoT网络中传输和接收通信,各种电路可以耦合在基带处理器905和天线990之间。具体地,可以存在射频(RF)收发器970和无线局域网(WLAN)收发器975。一般地,RF收发器970可用于根据诸如3G或4G无线通信协议之类的给定的无线通信协议、诸如依照码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)或其它协议来接收和传输无线数据和呼叫。另外,可以存在GPS传感器980,其中当要在配对过程中使用上下文信息时将位置信息提供给安全处理器950以供如本文中描述的那样使用。还可以提供其它无线通信,诸如无线电信号(例如,AM/FM)以及其它信号的接收或传输。另外,经由WLAN收发器975,还可以实现诸如根据蓝牙TM或IEEE 802.11标准的本地无线通信。
现在参考图26,所示出的是依照本发明的另一实施例的系统(例如,图4的服务器)的框图。多处理器系统1000是诸如服务器系统之类的点对点互连系统,并且包括经由点对点互连1050耦合的第一处理器1070和第二处理器1080。处理器1070和1080中的每个可以是诸如SoC之类的多核心处理器,包括第一和第二处理器核心(即,处理器核心1074a和1074b以及处理器核心1084a和1084b),但是在处理器中可能存在潜在地多得多的核心。另外,处理器1070和1080每个可以包括安全引擎1075和1085,用来执行安全操作,诸如证明、IoT网络用户引导(onboarding)等。
第一处理器1070还包括存储器控制器中枢(MCH)1072以及点对点(P-P)接口1076和1078。类似地,第二处理器1080包括MCH 1082以及P-P接口1086和1088。MCH 1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,其可以是本地附连到相应处理器的主存储器(例如,DRAM)的部分。第一处理器1070和第二处理器1080可以分别经由P-P互连1052和1054耦合到芯片组1090。芯片组1090包括P-P接口1094和1098。
此外,芯片组1090包括通过P-P互连1039将芯片组1090与高性能图形引擎1038耦合的接口1092。继而,芯片组1090可以经由接口1096耦合到第一总线1016。各种输入/输出(I/O)设备1014连同将第一总线1016耦合到第二总线1020的总线桥1018可以耦合到第一总线1016。各种设备可以耦合到第二总线1020,包括例如键盘/鼠标1022、通信设备1026和数据存储单元1028,诸如非易失性储存器或其它大容量存储设备。如所看见的,在一个实施例中,数据存储单元1028可以包括代码1030。如还所看见的,数据存储单元1028还包括可信储存器1029,用来存储要保护的敏感信息。此外,音频I/O 1024可以耦合到第二总线1020。
实施例可以用在其中IoT设备可以包括可穿戴设备或其它小形状因子IoT设备的环境中。现在参考图27,所示出的是依照另一个实施例的可穿戴模块1300(或者,例如,可以装配在具有视频屏幕或可以耦合到缺乏无线连接性的tv的冰箱等中的模块)的框图。在一个特定实现中,模块1300可以是Intel® Curie™模块,其包括适配在可以被实现为可穿戴设备的全部或部分的单个小模块内的多个组件。如所看见的,模块1300包括核心1310(当然在其它实施例中,可以存在不止一个核心)。这样的核心可以是相对低复杂度的有序核心,诸如基于英特尔架构® Quark™设计。在一些实施例中,核心1310可以实现如本文中描述的TEE。核心1310耦合到包括传感器中枢1320的各种组件,所述传感器中枢1320可以被配置成与多个传感器1380交互,所述多个传感器1380诸如是一个或多个生物计量、运动环境或其它传感器。存在功率递送电路1330连同非易失性储存器1340。在实施例中,该电路可以包括可再充电电池和再充电电路,其在一个实施例中可以无线地接收充电电力。可以存在一个或多个输入/输出(IO)接口1350,诸如与USB/SPI/I2C/GPIO协议中的一个或多个兼容的一个或多个接口。另外,存在无线收发器1390,其可以是低功耗蓝牙TM或其它短程无线收发器,以使得能够实现如本文中描述的无线通信。理解在不同的实现中,可穿戴模块可以采取许多其它形式。与典型的通用CPU或GPU相比,可穿戴和/或IoT设备具有小形状因子、低功率要求、有限指令集、相对慢的计算吞吐量或上面中的任何项。
实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置成执行本文中描述的各种方法和技术。当然,本发明的范围不限于通信设备,并且相反,其它实施例可以针对用于处理指令的其它类型的装置,或者包括响应于被在计算设备上执行而使设备实行本文中描述的方法和技术中一个或多个的指令的一个或多个机器可读介质。
实施例可以以代码来实现,并且可以存储在其上存储有指令的非暂时性存储介质上,所述指令可以用于将系统编程成执行指令。实施例还可以以数据来实现并且可以存储在非暂时性存储介质上,其如果由至少一个机器使用则使所述至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于任何类型的盘,所述盘包括软盘、光盘、固态驱动器(SSD)、光盘只读存储器(CD-ROM)、可覆写光盘(CD-RW)以及磁光盘,半导体器件,诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM),磁卡或光卡,或适于存储电子指令的任何其它类型的介质。
示例1a包括至少一种包括指令的非暂时性机器可读介质,所述指令被在计算设备上执行时使得计算设备实行用于创建可定制的视频播放器的方法,该方法包括:(A)向客户端传输包括如下各项的发布者界面:(A)(1)与播放器模块相关联的模块标识符;(A)(2)与模块标识符相关联的模块配置;(A)(3)用于确定最佳视频回放质量、视频回放分辨率和转码格式的多个模块;(A)(4)用于显示、选择和导航播放列表的多个模块,播放列表包括指向多个视频的指针(pointer),其中与视频播放列表中的视频相关联的一组视频缩略图被显示;(A)(5)用于执行标准回放方法的多个模块,所述标准回放方法包括缓冲、寻找、播放视频、暂停视频、调整回放音量、静音回放音量和切换全屏回放;(A)(6)用于从播放器元数据选择播放器外观参数的多个模块,播放器外观参数包括颜色、图像、视频缩略图,以及用于可定制的视频播放器内的布局和控件的其它设置;(A)(7)用于计算统计量并用于将所述统计量发送到服务器以用于存储的多个模块,所述统计量包括观看计数、印象、人口统计数据、地理数据、观看者行为数据和参与数据中的至少一个;(A)(8)用于使模块向可定制的视频播放器登记的指令;(A)(9)事件总线,模块可以向所述事件总线发布可串行化事件并且模块可以从所述事件总线订阅;(A)(10)用于使模块经由网络接口从事件总线订阅并向事件总线发布的指令;(A)(11)用于将模块配置发送到由其模块标识符标识的模块的指令;(B)从客户端接收由发布者选择的播放器元数据,以经由发布者界面确定播放器外观和布局;(C)从客户端接收由发布者经由发布者界面选择的播放器元数据;(D)生成播放器标识符,该播放器标识符与所接收的播放器元数据、播放器模块、播放器模块元数据和播放器模块配置相关联;(E)与所接收的播放器元数据、模块、模块元数据和模块配置相关联地存储该播放器标识符;(I)生成引用播放器标识符和模块标识符的嵌入代码,嵌入代码被配置成使得当向web站点、过顶(OTT)播放器或任何其它视频回放设备请求可定制的via播放器时,将客户端配置成加载可定制的视频播放器,所述可定制的视频播放器具有由与播放器标识符相关联的播放器元数据、模块和模块配置指定的外观、布局和功能性,并将该可定制的视频播放器配置成播放在与播放器标识符相关联的播放列表中指定的视频;以及(J)将生成的嵌入代码提供给客户端以用于经由发布者界面显示。
示例2a包括示例1的方法,其中可以向引用模块标识符的可定制视频播放器登记模块。
示例3a包括示例1a的方法,其中模块可以替换引用模块标识符的可定制视频播放器内的模块。
示例4a包括示例1a的方法,其中模块可以更改引用模块标识符的可定制视频播放器内的另一模块的指令。
示例5a包括示例1a的方法,其中发布者界面还包括用于输入播放器元数据的控件。
示例6a包括示例1a的方法,其中发布者界面还包括用于输入引用模块标识符的模块元数据的控件。
示例7a包括示例1a的方法,其中发布者界面还包括用于输入用于由其模块标识符标识的模块的模块配置的控件。
示例8a包括示例1的方法,其中多个视频与发布者帐户相关联,并且播放列表包括与发布者帐户相关联的所有视频。
示例9a包括示例8a的方法,其中显示与视频播放列表中的视频相关联的一组视频缩略图。
示例10a包括示例1a的方法,其中多个视频与发布者帐户相关联,并且播放列表包括与发布者帐户相关联的视频的子集。
示例11a包括示例10a的方法,其中显示与视频播放列表中的视频相关联的一组视频缩略图。
示例12a包括示例1a的方法,其中所述多个模块包括用于显示视频的主观看窗口以及用于显示可选视频播放列表、其相关联的元数据以及与视频播放列表中的视频相关联的可选缩略图的与主观看窗口相邻的播放列表窗口的模块,所述元数据包括视频标题、视频描述和回放持续时间。
示例13a包括一种装置,该装置包括用于执行示例1a至12a中的任一个的部件。
示例14a包括一种通信设备,该通信设备被布置成执行根据示例1a至12a中任一个的方法。
示例15a包括一种用于创建可定制的视频播放器的系统,该系统包括:处理器;将计算设备耦合到包括物理存储介质和网络中的至少一个的第一介质;计算机可读存储介质,其存储可由处理器执行的指令,所述指令包括用于例示播放器模块登记表(registry)的指令,被适配成:(A)向客户端传输包括如下各项的发布者界面:(a)(1)与播放器模块相关联的模块标识符;(a)(2)与模块标识符相关联的模块配置;(a)(3)用于确定最佳视频回放质量、视频回放分辨率和转码格式的多个模块;(a)(4)用于显示、选择和导航播放列表的多个模块,播放列表包括指向多个视频的指针,其中与视频播放列表中的视频相关联的一组视频缩略图被显示;(a)(5)用于执行标准回放方法的多个模块,所述标准回放方法包括缓冲、寻找、播放视频、暂停视频、调整回放音量、静音回放音量和切换全屏回放;(a)(6)用于从播放器元数据选择播放器外观参数的多个模块,播放器外观参数包括颜色、图像、视频缩略图,以及用于可定制的视频播放器内的布局和控件的其它设置;(a)(7)用于计算统计量并用于将所述统计量发送到网络接口以用于存储的多个模块,所述统计量包括电视观众数据、印象数据、人口统计数据、地理数据、观看者行为数据和参与数据中的至少一个;(a)(8)用于使模块向可定制的视频播放器登记的指令;(a)(9)事件总线,模块可以向所述事件总线发布可串行化事件并且模块可以从所述事件总线订阅;(a)(10)用于使模块经由网络接口从事件总线订阅并向事件总线发布的指令;(A)(11)用于将模块配置发送到由其模块标识符标识的模块的指令;(B)从客户端接收由发布者选择的播放器元数据,以经由发布者界面确定播放器外观和布局;(C)从客户端接收由发布者经由发布者界面选择的播放器元数据;(D)生成播放器标识符,该播放器标识符与所接收的播放器元数据、播放器模块、播放器模块元数据和播放器模块配置相关联;(E)与所接收的播放器元数据、模块、模块元数据和模块配置相关联地存储该播放器标识符;(F)生成引用播放器标识符和模块标识符的嵌入代码,嵌入代码被配置成使得当向web站点、过顶(OTT)播放器或任何其它视频回放设备请求可定制的via播放器时,将客户端配置成加载可定制的视频播放器,所述可定制的视频播放器具有由与播放器标识符相关联的播放器元数据、模块和模块配置指定的外观、布局和功能性,并将该可定制的视频播放器配置成播放在与播放器标识符相关联的播放列表中指定的视频;以及(G)将生成的嵌入代码提供给客户端以用于经由发布者界面显示。该系统可以包括存储播放器数据库的存储器,所述播放器数据库被适配成与所接收的播放器元数据相关联地存储所生成的播放器标识符,所接收的播放器元数据包括播放列表以及所接收的播放器外观和播放器布局参数。该系统可以包括存储模块数据库的存储器,所述模块数据库被适配成与所接收的模块元数据和模块配置相关联地存储所生成的模块标识符。
示例16a包括示例15a的系统,还包括:发布者帐户数据库,其耦合到播放器模块登记表,被适配成存储发布者和播放器标识符之间的关联。
示例17a包括示例15a的系统,其中嵌入代码形成统一资源定位符的至少一部分。
示例18a包括示例15a的系统,其中可以经由引用模块标识符的第一介质向应用程序接口(API)、客户端应用和最终用户中的至少一个登记模块。
示例19a包括示例15a的系统,其中可以引用模块标识符、经由引用模块标识符的第一介质、从应用程序接口(API)、客户端应用和最终用户中的至少一个移除模块。
示例20a包括示例15a的系统,其中可以引用模块标识符、经由引用模块标识符的第一介质、从应用程序接口(API)、客户端应用和最终用户中的至少一个更新模块。
示例21a包括示例15a的系统,其中模块可以被授权用于经由引用模块标识符的第一介质从应用程序接口(API)、客户端应用和最终用户中的至少一个分发到引用模块标识符的目的地。
示例22a包括示例15a的系统,其中模块可以未被授权用于经由第一介质从应用程序接口(API)、客户端应用和最终用户中的至少一个分发到引用模块标识符的目的地。
示例23a包括示例15a的系统,还包括网络接口,其中网络接口被适配成从客户端接收播放器标识符,并被适配成向客户端提供与播放器标识符相关联的播放器元数据。
示例24a包括示例23a的系统,还包括耦合到网络接口的视频服务器,所述视频服务器被适配成从客户端接收针对视频的请求并通过提供视频对请求进行响应。
示例25a包括示例24a的系统,还包括耦合到视频服务器的视频数据库,并且其中视频服务器被适配成从视频数据库向客户端提供视频。
示例26a包括示例15a的系统,还包括播放列表数据库,其被适配成存储多个播放列表,并且针对每个播放列表,存储与该播放列表相关联的一组内容。
示例27a包括示例26a的系统,其中内容是视频内容。
示例28a包括示例15a的系统,其中播放器模块登记表还被适配成:*从发布者接收播放器标识符和播放器元数据,并将新的播放器元数据与播放器数据库中的播放器标识符相关联。
示例29a包括示例28a的系统,还包括网络接口,其被适配成从客户端接收播放器标识符,并向客户端提供与播放器相关联的播放器元数据,所述播放器元数据包括新的播放器元数据。
示例30a包括示例28a的系统,其中新的播放器元数据替换已经与播放器标识符相关联的播放器元数据。
示例31a包括示例15a的系统,其中所述多个模块包括用于显示视频的主观看窗口以及用于显示可选视频播放列表、其相关联的元数据以及与视频播放列表中的视频相关联的可选缩略图的与主观看窗口相邻的播放列表窗口的模块,所述元数据包括视频标题、视频描述和回放持续时间。
示例32a包括示例15a的系统,还包括网络接口,其中网络接口被适配成从客户端接收模块标识符,并向客户端提供与模块标识符相关联的所有模块指令。
示例33a包括示例15a的系统,还包括网络接口,其中网络接口被适配成从客户端接收模块标识符,并向客户端提供与模块标识符相关联的模块指令的子集。
示例34a包括至少一种包括多个指令的机器可读介质,所述多个指令响应于被在计算设备上执行,使得计算设备实行根据示例15a至33a中任一个的方法。
示例1b包括一种由至少一个处理器执行的方法,该方法包括:从第一远程计算节点接收针对第一视频内容和第一视频播放器的第一请求;响应于接收到第一请求,(a)(i)获得用于第一视频播放器的第一源代码,(a)(ii)获得用于第一视频播放器的第一配置文件,(a)(iii)获得与第一视频播放器对应的第一播放器模块,以及(a)(iv)将第一视频内容、第一源代码、第一配置文件和第一播放器模块传送到第一远程计算节点;其中第一视频播放器包括多个指令,所述多个指令响应于被在至少一个计算设备上执行,使得所述至少一个计算设备经由图形用户界面播放视频(例如,文件或视频流);其中第一播放器模块包括多个指令,所述多个指令响应于被在所述至少一个计算设备上执行并且还响应于第一播放器模块订阅发布-订阅消息传送系统的第一事件总线,使得所述至少一个计算设备响应于如下而实行第一例程:(b)(i)从与第一视频播放器对应的附加播放器模块向第一事件总线的第一发布,以及(b)(ii)与第一发布对应的第一回调函数的执行。
示例1b的另一版本包括一种由至少一个处理器执行的方法,该方法包括:从第一远程计算节点接收针对第一视频内容和第一视频播放器的第一请求;响应于接收到第一请求,(a)(i)获得用于第一视频播放器的第一源代码,(a)(ii)获得用于第一视频播放器的第一配置文件,(a)(iii)获得与第一视频播放器对应的第一播放器模块,以及(a)(iv)将第一视频内容、第一源代码、第一配置文件和第一播放器模块传送到第一远程计算节点;其中第一视频播放器包括多个指令,所述多个指令响应于被在至少一个计算设备上执行,使得所述至少一个计算设备经由图形用户界面播放视频(例如,文件或视频流);其中第一播放器模块包括多个指令,所述多个指令响应于被在所述至少一个计算设备上执行并且还响应于第一播放器模块订阅发布-订阅消息传送系统的第一事件总线,使得所述至少一个计算设备响应于如下而实行第一例程:(b)(i)从与第一视频播放器对应的附加播放器模块向第一事件总线的第一发布,以及(b)(ii)与第一发布对应的第一回调函数的执行。
例如,文件服务器(例如,图26)可以接收第一请求,并且然后将第一源代码、第一配置文件和第一播放器模块分发给第一远程计算节点。第一远程计算节点可以包括例如图9和/或27的系统。这样的系统可以包括例如关于图24的由“Alice”使用的客户端节点。这样的客户端节点可以包括示例1b的“至少一次计算节点”。此外,“获得”第一源代码等可以包括从远离的计算节点下载代码,将代码从一个存储器(例如,图26的存储器1028)移动到另一个存储器(例如,图26的高速缓存1032)等。此外,传送信息可以包括计算节点之间的推送和/或拉取。
媒体播放器(例如,视频播放器)是用于播放多媒体文件的计算机程序。媒体播放器可以显示从诸如磁带录音机和CD播放器之类的物理设备已知的标准媒体控制图标,诸如播放、暂停和停止按钮。一些常规操作系统具有至少一个内置媒体播放器。例如,Windows®伴有Windows媒体播放器,而OS X伴有QuickTime播放器。Linux发行版也可能伴有媒体播放器,诸如SMPlayer、Amarok、Audacious、Banshee、MPlayer、Rhythmbox、Totem、VLC和xine。
在软件架构中,发布-订阅是消息传送模式,其中被称作发布者的消息的发送者不将消息编程成直接地发送到被称作订阅者的特定接收者,而是替代地将发布的消息表征成类,而不知道可能存在哪些订阅者,如果有的话。类似地,订阅者表达对一个或多个类的兴趣并且仅接收感兴趣的消息,而不知道存在哪些发布者,如果有的话。此模式提供较大的网络可扩展性和较动态的网络拓扑。
在pub/sub模型中,订阅者通常仅接收发布的总消息的子集。选择用于接收和处理的消息的过程被称作过滤。存在两个常见的过滤形式:基于主题的和基于内容的,其二者都可以由本文中描述的实施例使用。在基于主题的实施例中,消息被发布到“主题”或命名的逻辑信道。基于主题的系统中的订阅者将接收发布到他们订阅的主题的所有消息,并且主题的所有订阅者将接收相同的消息。发布者负责定义订阅者可订阅的消息的类。在基于内容的实施例中,只有在消息的属性或内容与订阅者定义的约束匹配时才将那些消息递送给订阅者。订阅者负责对消息进行分类。一些实施例支持这两个的混合,其中发布者将消息发布到主题,而订阅者登记对一个或多个主题的基于内容的订阅。
示例2b包括示例1b的方法,其中接收针对第一视频内容和第一视频播放器的第一请求包括经由与用于第一视频内容和第一视频播放器的至少一个特定标识符对应的至少一个嵌入代码接收第一请求。
连接可以是直接的或间接的。例如,特定标识符可以表明目的地身份,并且所述目的地身份然后表明播放器身份。
在实施例中,“嵌入代码”是被嵌入在页面源中并在如此做时创建对象的代码块(例如,HTML)。
示例3b包括示例1b的方法,其中响应于接收到第一请求,该方法包括:(a)(i)获得与第一视频播放器对应的第二和第三播放器模块,以及(a)(ii)将第二和第三播放器模块传送到第一远程计算节点。
在实施例中,第一、第二和第三播放器模块可以以任何顺序发送到远程计算节点,并且可以在时间上相对接近彼此(例如,数毫秒)或更长(例如,数分钟、数小时、数天)发送。例如,第二播放器模块可以评估远程节点的目的地配置,而第一播放器模块可以是集中在第二节点的用户的鼠标移动(其可以仅在已经评估了目的地配置之后发生)上的模块。
示例4b包括示例3b的方法,其中:响应于第二播放器模块被第一事件总线订阅,第二播放器模块将第二元数据发布到第一事件总线;并且第二元数据涉及来自包括如下各项的组的至少一个成员:用于第一远程计算节点的视频回放分辨率和用于第一远程计算节点的转码格式。
在一些实施例中,对事件总线的订阅可以仅在客户端远程计算节点上发生。然而,在其它实施例中,事件总线可以被定位远离远程计算节点(例如,在接收第一请求的同一服务器上或在另一服务器上)。在一些实施例中,事件总线可以分布在包括远程计算节点的各种节点之间。
示例5b包括示例4b的方法,其中响应于第三播放器订阅第一事件总线并且还响应于第二播放器发布第二元数据,该方法包括:(a)(i)从包括第四和第五播放器模块并且都对应第一视频的一组播放器模块加载第四播放器模块而不是第五播放器模块,以及(a)(ii)并且将第四播放器模块而不是第五播放器模块传送到第一远程计算节点。
因此,重要的是要注意可能存在大量播放器模块,其全部被配置成服务于相同目的(例如,执行相同例程,诸如关于视频使用的分析,包括但不限于观看视频的用户位于哪里和/或用户暂停视频多少次),但可能对于不同目的地是理想的。在这样的情况下,可能存在适合于不同分辨率或带宽的目的地的相同播放器模块的不同版本。在这样的情况下,可以基于针对目的地带宽的元数据来做出对播放器模块的选择。在这样的情况下,第四和第五播放器模块中仅一个被发送到远程计算节点。另一个播放器模块将不被发送以例如保留客户端(例如,智能手表)中的宝贵的存储器空间。
示例6b包括示例4b的方法,其中响应于第三播放器订阅第一事件总线并且还响应于第二播放器发布第二元数据,该方法包括:(a)(i)加载与第一视频播放器对应的第四播放器模块,以及(a)(ii)并且将第四播放器模块传送到第一远程计算节点。
示例7b包括示例6b的方法,其中第一、第二、第三和第四播放器模块中的每个包括独立于其它播放器模块执行并且经由事件总线与其它播放器模块通信的独立源代码。
因此,模块涉及模块化编程。模块化编程是一种软件设计技术,其强调将程序的功能性分离成独立的可互换模块,使得每个模块包含执行所期望的功能性的仅一个方面所需的一切。模块接口表达模块提供和要求的元素。接口中定义的元素可由其它模块检测到。该实现包含与接口中声明的元素对应的工作代码。模块化编程与结构化编程和面向对象编程密切相关,全部都具有通过分解成更小的块来促进大型软件程序和系统的构建的相同目的。虽然历史上这些术语的使用不一致,但今天的“模块化编程”指的是整个程序的代码成为多块的高级分解,结构化编程指的是结构化控制流的低级代码使用,并且面向对象的编程指的是对象(一种数据结构)的数据使用。
示例8b包括示例7b的方法,其中第一、第二、第三和第四播放器模块中的每个具有向第一视频播放器的库登记的回调函数。
回调是被作为引数传递给其它代码的一块可执行代码,所述其它代码被期望在某个方便的时间回调(执行)该引数。
示例9b包括示例1b的方法,包括:从第一远程计算节点接收针对第二视频播放器的第二请求;响应于接收到第二请求,(a)(i)获得用于第二视频播放器的第二源代码,(a)(ii)获得用于第二视频播放器的第二配置文件,(a)(iii)获得与第二视频播放器对应的附加的第一播放器模块,(a)(iv)以及将第二源代码、第二配置文件和附加的第一播放器模块传送给第一远程计算节点;其中附加的第一播放器模块响应于(b)(i)从与第二视频播放器对应的另一视频播放器模块向第二事件总线的第二发布以及(b)(ii)与第二发布对应的第二回调函数的执行,而实行第二例程。
例如,“Alice”可以使用移动计算节点(例如,图9)来观看浏览器内的视频内容,并且然后再次使用诸如YouTube®之类的应用。视频可以是相同的视频或不同的视频。这可能需要不同的视频播放器(因为Alice的单个计算节点仍然具有两个不同的目的地,其中浏览器是目的地并且YouTube是目的地),其将经由Alice用来访问内容的不同嵌入代码来要求。视频播放器可以具有不同的源代码、配置文件、播放器模块等。视频播放器可以具有完全不同的用户界面。
示例10b包括示例9b的方法,其中第一和第二视频播放器具有彼此不同的用户界面。
示例11b包括示例3b的方法,其中(a)第二播放器模块将第二元数据发布到第一事件总线,以及(b)第三播放器模块响应于所发布的第二元数据而传送行动号召(CTA)。
例如,参见图4。
CTA可以包括例如文本、图像、视频或多种其它文件类型。
示例12b包括示例11b的方法,其中第二元数据对应于事件并且第三播放器模块订阅该事件。
示例13b包括示例12b的方法,其中第一、第二和第三播放器模块每个分别包括源代码、配置文件和元数据。
示例14b包括示例1b的方法,包括:从第二远程计算节点接收针对第一视频内容和第一视频播放器的第二请求;以及响应于接收到第二请求,(a)(i)获得用于第一视频播放器的第一源代码,(a)(ii)获得用于第一视频播放器的第二配置文件,(a)(iii)获得与第一视频播放器对应的附加的第一播放器模块,以及(a)(iv)将第一视频内容、第一源代码、第二配置文件和附加的第一播放器模块传送到第二远程计算节点;其中附加的第一播放器模块包括多个指令,所述多个指令响应于被在至少一个计算设备上执行以及附加的第一播放器模块订阅发布-订阅消息传送系统的第二事件总线,使得所述至少一个计算设备响应于如下而执行第二例程:(b)(i)从与第一视频播放器对应的另一播放器模块向第二事件总线的第二发布,以及(b)(ii)与第二发布对应的第二回调函数的执行。
例如,Alice可以在两周的过程中两个不同的时间使用相同的代码。在此时间期间,内容提供商可以改变嵌入代码(间接地)要求的用于相同播放器的配置文件。因此,“播放”按钮可能已经基于配置文件中的改变而改变了颜色或样式或位置。“附加的第一播放器模块”可以是在这两周时段期间由内容提供商添加到播放器的模块。
示例15b包括示例14b的方法,其中第一和第二配置文件包括基于第一远程计算节点采用第一图形用户界面并且第二远程计算节点采用第二图形用户界面而使用于第一和第二远程计算节点的配置不同。
示例16b包括一种装置,该装置包括用于执行示例1b至15b中的任一个的部件。
示例17b包括至少一种包括多个指令的机器可读介质,所述多个指令响应于被在至少一个计算设备上执行,使得所述至少一个计算设备实行根据示例1b至15b中的任一个的方法。
示例18b包括至少一种存储介质,其上存储有用于使得基于处理器的系统执行包括如下各项的步骤的指令:响应于将针对第一视频内容和第一视频播放器的第一请求传送到第一远程计算节点,从第一远程计算节点接收:(a)(i)用于第一视频播放器的第一源代码,(a)(ii)用于第一视频播放器的第一配置文件,以及(a)(iii)与第一视频播放器对应的第一播放器模块;以及响应于接收到第一播放器模块,使第一播放器模块订阅发布-订阅消息传送系统的第一事件总线;其中第一视频播放器包括多个指令,所述多个指令响应于被在所述系统上执行,使得所述系统经由图形用户界面播放视频文件或视频流;其中第一播放器模块包括多个指令,所述多个指令响应于被在所述系统上执行,使得所述系统响应于如下各项而实行第一例程:(b)(i)从与第一视频播放器对应的附加播放器模块向第一事件总线的第一发布,以及(b)(ii)与第一发布对应的第一回调函数的执行。
示例19b包括示例18b的至少一种介质,包括用来进行如下各项的指令:(a)(i)获得与第一视频播放器对应的第二和第三播放器模块,(a)(ii)使第二和第三播放器模块订阅第一事件总线,以及(a)(iii)经由第二播放器模块将第二元数据发布到第一事件总线;其中第二元数据涉及来自包括如下各项的组的至少一个成员:用于第一远程计算节点的视频回放分辨率和用于第一远程计算节点的转码格式。
示例20b包括示例19b的至少一种介质,包括用来使得第三播放器模块响应于第二播放器发布第二元数据以及第三播放器模块订阅第二元数据而加载与第一视频播放器对应的第四播放器模块的指令。
本领域技术人员将理解,一般地,在本文中并且尤其在所附权利要求(例如,所附权利要求的主体)中使用的术语一般意图为“开放”术语(例如,术语“包括”应当被解释为“包括但不限于”,术语“具有”应当被解释为“至少具有”,“术语”包含”应当被解释为“包含但不限于”等)。本领域技术人员还将理解,如果想要特定数量的引入的权利要求叙述,则在权利要求中将明确地叙述这样的意图,并且在没有这样的叙述的情况下,不存在这样的意图。例如,作为对理解的帮助,以下所附权利要求可以包含介绍性短语“至少一个”和“一个或多个”的使用以引入权利要求叙述。然而,这样的短语的使用不应当被解释成暗示由不定冠词“一”或“一个”对权利要求叙述的引用将包含这样的引入的权利要求叙述的任何特定权利要求限制于仅包含一个这样的叙述的发明,即使在相同的权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”之类的不定冠词时(例如,“一”和/或“一个”通常应被解释成意味着“至少一个”或“一个或多个”);对于使用用于引入权利要求叙述的定冠词也是如此。另外,即使明确地叙述了特定数量的引入的权利要求叙述,本领域技术人员也将认识到,这样的叙述通常应该被解释成意味着至少所叙述的数量(例如,没有其它修饰语的“两个叙述”的赤裸叙述通常意味着至少两个叙述,或两个或更多个叙述)。在使用类似于“A、B或C中的至少一个等”的惯例的那些实例中,这样的构造一般意图在本领域技术人员将理解该惯例的意义上(例如,“具有A、B或C中的至少一个的系统”将包括但不限于只具有A、只具有B、只具有C、同时具有A和B、同时具有A和C、同时具有B和C和/或同时具有A、B和C等的系统。本领域技术人员还将理解,实际上呈现两个或更多个替代术语的任何析取词和/或短语,无论是在说明书、权利要求书还是附图中,都应该被理解成设想包括术语中的一个、术语中的任一个或两个术语的可能性。例如,短语“A或B”将被理解成包括“A”或“B”或“A和B”的可能性。
虽然已经关于有限数量的实施例描述了本发明的实施例,但是本领域技术人员将领会到来自其的许多修改和变型。所附权利要求书意图覆盖落入本发明的实施例的真正精神和范围内的所有这样的修改和变型。
Claims (20)
1.一种由至少一个处理器执行的方法,包括:
从第一远程计算节点接收针对第一视频内容和第一视频播放器的第一请求;
响应于接收到第一请求,(a)(i)获得用于第一视频播放器的第一源代码,(a)(ii)获得用于第一视频播放器的第一配置文件,(a)(iii)获得与第一视频播放器对应的第一播放器模块,以及(a)(iv)将第一视频内容、第一源代码、第一配置文件和第一播放器模块传送到第一远程计算节点;
其中第一视频播放器包括多个指令,所述多个指令响应于被在至少一个计算设备上执行,使得所述至少一个计算设备经由图形用户界面播放视频;
其中第一播放器模块包括多个指令,所述多个指令响应于被在所述至少一个计算设备上执行,使得所述至少一个计算设备进一步响应于如下内容而实行第一例程:(b)(i)第一播放器模块订阅发布-订阅消息传送系统的第一事件总线,(b)(ii)从与第一视频播放器对应的附加播放器模块向第一事件总线的第一发布,以及(b)(iii)与第一发布对应的第一回调函数的执行。
2.根据权利要求1所述的方法,其中接收针对第一视频内容和第一视频播放器的第一请求包括经由与用于第一视频内容和第一视频播放器的至少一个特定标识符对应的至少一个嵌入代码来接收第一请求。
3.根据权利要求1所述的方法,其中响应于接收到第一请求,所述方法包括:(a)(i)获得与第一视频播放器对应的第二和第三播放器模块,以及(a)(ii)将第二和第三播放器模块传送到第一远程计算节点。
4.根据权利要求3所述的方法,其中:
响应于第二播放器模块被第一事件总线订阅,第二播放器模块将第二元数据发布到第一事件总线;并且
第二元数据涉及来自包括如下各项的组的至少一个成员:用于第一远程计算节点的视频回放分辨率和用于第一远程计算节点的转码格式。
5.根据权利要求4所述的方法,其中响应于第三播放器订阅第一事件总线并且还响应于第二播放器发布第二元数据,所述方法包括:(a)(i)从包括第四和第五播放器模块并且都对应第一视频的一组播放器模块加载第四播放器模块而不是第五播放器模块,以及(a)(ii)并且将第四播放器模块而不是第五播放器模块传送到第一远程计算节点。
6.根据权利要求4所述的方法,其中响应于第三播放器订阅第一事件总线并且还响应于第二播放器发布第二元数据,所述方法包括:(a)(i)加载与第一视频播放器对应的第四播放器模块,以及(a)(ii)将第四播放器模块传送到第一远程计算节点。
7.根据权利要求6所述的方法,其中第一、第二、第三和第四播放器模块中的每个包括独立于其它播放器模块执行并且经由事件总线与其它播放器模块通信的独立源代码。
8.根据权利要求7所述的方法,其中第一、第二、第三和第四播放器模块中的每个具有向第一视频播放器的库登记的回调函数。
9.根据权利要求1所述的方法,包括:
从第一远程计算节点接收针对第二视频播放器的第二请求;
响应于接收到第二请求,(a)(i)获得用于第二视频播放器的第二源代码,(a)(ii)获得用于第二视频播放器的第二配置文件,(a)(iii)获得与第二视频播放器对应的附加的第一播放器模块,(a)(iv)以及将第二源代码、第二配置文件和附加的第一播放器模块传送到第一远程计算节点;
其中附加的第一播放器模块响应于(b)(i)从与第二视频播放器对应的另一视频播放器模块向第二事件总线的第二发布以及(b)(ii)与第二发布对应的第二回调函数的执行,而实行第二例程。
10.根据权利要求9所述的方法,其中第一和第二视频播放器具有彼此不同的用户界面。
11.根据权利要求3所述的方法,其中(a)第二播放器模块向第一事件总线发布第二元数据,以及(b)第三播放器模块响应于发布的第二元数据而传送行动号召。
12.根据权利要求11所述的方法,其中第二元数据对应于事件,并且第三播放器模块订阅所述事件。
13.根据权利要求12所述的方法,其中第一、第二和第三播放器模块中的每个分别包括源代码、配置文件和元数据。
14.根据权利要求1所述的方法,包括:
从第二远程计算节点接收针对第一视频内容和第一视频播放器的第二请求;以及
响应于接收到第二请求,(a)(i)获得用于第一视频播放器的第一源代码,(a)(ii)获得用于第一视频播放器的第二配置文件,(a)(iii)获得与第一视频播放器对应的附加的第一播放器模块,以及(a)(iv)将第一视频内容、第一源代码、第二配置文件和附加的第一播放器模块传送到第二远程计算节点;
其中附加的第一播放器模块包括多个指令,所述多个指令响应于被在至少一个计算设备上执行,使得所述至少一个计算设备进一步响应于如下内容而实行第二例程:(b)(i)附加的第一播放器模块订阅发布-订阅消息传送系统的第二事件总线,(b)(ii)从与第一视频播放器对应的另一播放器模块向第二事件总线的第二发布,以及(b)(iii)与第二发布对应的第二回调函数的执行。
15.根据权利要求14所述的方法,其中第一和第二配置文件包括基于第一远程计算节点采用第一图形用户界面并且第二远程计算节点采用第二图形用户界面而使用于第一和第二远程计算节点的配置不同。
16.一种用于视频的装置,包括用于执行权利要求1至15中任一项的部件。
17.至少一种包括多个指令的机器可读介质,所述多个指令响应于被在至少一个计算设备上执行,使得所述至少一个计算设备实行根据权利要求1至15中任一项所述的方法。
18.至少一种存储介质,具有存储于其上的用于使得基于处理器的系统执行包括如下各项的步骤的指令:
响应于将针对第一视频内容和第一视频播放器的第一请求传送到第一远程计算节点,从第一远程计算节点接收:(a)(i)用于第一视频播放器的第一源代码,(a)(ii)用于第一视频播放器的第一配置文件,以及(a)(iii)与第一视频播放器对应的第一播放器模块;以及
响应于接收到第一播放器模块,使第一播放器模块订阅发布-订阅消息传送系统的第一事件总线;
其中第一视频播放器包括多个指令,所述多个指令响应于被在所述系统上执行,使得所述系统经由图形用户界面播放视频;
其中第一播放器模块包括多个指令,所述多个指令响应于被在所述系统上执行,使得所述系统响应于如下各项而实行第一例程:(b)(i)从与第一视频播放器对应的附加播放器模块向第一事件总线的第一发布,以及(b)(ii)与第一发布对应的第一回调函数的执行。
19.根据权利要求18所述的至少一种介质,包括用来进行如下各项的指令:
(a)(i)获得与第一视频播放器对应的第二和第三播放器模块,(a)(ii)使第二和第三播放器模块订阅第一事件总线,以及(a)(iii)经由第二播放器模块将第二元数据发布到第一事件总线;
其中第二元数据涉及来自包括如下各项的组的至少一个成员:用于第一远程计算节点的视频回放分辨率和用于第一远程计算节点的转码格式。
20.根据权利要求19所述的至少一种介质,包括用来使得第三播放器模块响应于第二播放器发布第二元数据以及第三播放器模块订阅第二元数据而加载与第一视频播放器对应的第四播放器模块的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562266640P | 2015-12-13 | 2015-12-13 | |
US62/266640 | 2015-12-13 | ||
PCT/US2016/034263 WO2017105542A1 (en) | 2015-12-13 | 2016-05-26 | Video player framework for a media distribution and management platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108781311A CN108781311A (zh) | 2018-11-09 |
CN108781311B true CN108781311B (zh) | 2021-04-06 |
Family
ID=59057138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680081735.9A Active CN108781311B (zh) | 2015-12-13 | 2016-05-26 | 用于媒体分发和管理平台的视频播放器框架 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10362359B2 (zh) |
EP (1) | EP3387838A4 (zh) |
CN (1) | CN108781311B (zh) |
WO (1) | WO2017105542A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140108084A1 (en) * | 2012-10-12 | 2014-04-17 | Crestron Electronics, Inc. | Initiating Schedule Management Via Radio Frequency Beacons |
US10762675B2 (en) * | 2016-12-12 | 2020-09-01 | Facebook, Inc. | Systems and methods for interactive broadcasting |
US20190197186A1 (en) * | 2017-12-21 | 2019-06-27 | Mastercard International Incorporated | Computer-implemented methods, systems comprising computer-readable media, and electronic devices for automated transcode lifecycle buffering |
US11095958B2 (en) * | 2019-04-12 | 2021-08-17 | Clipkick, Inc. | Systems and methods of universal video embedding |
CN111031397B (zh) * | 2019-12-05 | 2022-09-30 | 北京奇艺世纪科技有限公司 | 收集剪辑片段评论的方法、装置、设备及存储介质 |
US11678016B1 (en) * | 2020-04-30 | 2023-06-13 | CSC Holdings, LLC | Real-time enablement of OTT applications |
CN111654712B (zh) * | 2020-06-22 | 2021-10-01 | 中国科学技术大学 | 适用于移动边缘计算场景的动态自适应流媒体组播方法 |
US11935076B2 (en) * | 2022-02-02 | 2024-03-19 | Nogueira Jr Juan | Video sentiment measurement |
CN114615546B (zh) * | 2022-02-08 | 2024-04-12 | 武汉光庭信息技术股份有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN114339456B (zh) * | 2022-03-16 | 2022-05-27 | 飞狐信息技术(天津)有限公司 | 一种视频发布方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282308A (zh) * | 2006-08-31 | 2008-10-08 | 阿森图雷全球服务有限公司 | 语音邮件接口的系统和方法 |
CN102016908A (zh) * | 2008-05-06 | 2011-04-13 | 微软公司 | 媒体内容节目编排,传递和消费 |
CN102420840A (zh) * | 2010-09-27 | 2012-04-18 | 西安龙飞软件有限公司 | 一种基于brew的Http递进式视频播放器的实现方法 |
WO2012166154A1 (en) * | 2011-06-03 | 2012-12-06 | Limelight Networks, Inc. | Embedded video player with modular ad processing |
WO2013166178A2 (en) * | 2012-05-02 | 2013-11-07 | One Mainstream, Inc. | System and method for multimedia content publishing on multiple platforms |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020104096A1 (en) * | 2000-07-19 | 2002-08-01 | Cramer Allen Brett | System and methods for providing web-based multimedia presentations |
US8082565B2 (en) * | 2002-05-16 | 2011-12-20 | Intel Corporation | Converged communication server with transaction management |
CN103550846B (zh) * | 2005-11-21 | 2018-02-06 | 阿西斯特医疗系统有限公司 | 医用流体注射系统 |
US9210437B2 (en) * | 2005-12-09 | 2015-12-08 | Nvidia Corporation | Hardware multi-stream multi-standard video decoder device |
US20100198697A1 (en) * | 2006-07-21 | 2010-08-05 | Videoegg, Inc. | Fixed Position Interactive Advertising |
US8046428B2 (en) | 2006-07-25 | 2011-10-25 | Microsoft Corporation | Presenting video content within a web page |
WO2008016634A2 (en) * | 2006-08-02 | 2008-02-07 | Tellytopia, Inc. | System, device, and method for delivering multimedia |
US7559017B2 (en) | 2006-12-22 | 2009-07-07 | Google Inc. | Annotation framework for video |
US8537890B2 (en) * | 2007-03-23 | 2013-09-17 | Ati Technologies Ulc | Video decoder with adaptive outputs |
US8310443B1 (en) | 2007-05-02 | 2012-11-13 | Google Inc. | Pie chart time indicator |
US8281332B2 (en) | 2007-05-02 | 2012-10-02 | Google Inc. | Animated video overlays |
US8069414B2 (en) | 2007-07-18 | 2011-11-29 | Google Inc. | Embedded video player |
US8112702B2 (en) | 2008-02-19 | 2012-02-07 | Google Inc. | Annotating video intervals |
WO2009137368A2 (en) | 2008-05-03 | 2009-11-12 | Mobile Media Now, Inc. | Method and system for generation and playback of supplemented videos |
US9131241B2 (en) | 2008-11-25 | 2015-09-08 | Microsoft Technology Licensing, Llc | Adjusting hardware acceleration for video playback based on error detection |
US8819559B2 (en) * | 2009-06-18 | 2014-08-26 | Cyberlink Corp. | Systems and methods for sharing multimedia editing projects |
US8010692B1 (en) * | 2009-11-05 | 2011-08-30 | Adobe Systems Incorporated | Adapting audio and video content for hardware platform |
JP6109956B2 (ja) * | 2012-12-17 | 2017-04-05 | インテル・コーポレーション | ビデオコンテンツを前処理するエンコーダハードウェアの活用 |
US9237367B2 (en) * | 2013-01-28 | 2016-01-12 | Rhythmone, Llc | Interactive video advertisement in a mobile browser |
-
2016
- 2016-05-26 CN CN201680081735.9A patent/CN108781311B/zh active Active
- 2016-05-26 US US16/061,698 patent/US10362359B2/en active Active
- 2016-05-26 EP EP16876184.9A patent/EP3387838A4/en not_active Withdrawn
- 2016-05-26 WO PCT/US2016/034263 patent/WO2017105542A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282308A (zh) * | 2006-08-31 | 2008-10-08 | 阿森图雷全球服务有限公司 | 语音邮件接口的系统和方法 |
CN102016908A (zh) * | 2008-05-06 | 2011-04-13 | 微软公司 | 媒体内容节目编排,传递和消费 |
CN102420840A (zh) * | 2010-09-27 | 2012-04-18 | 西安龙飞软件有限公司 | 一种基于brew的Http递进式视频播放器的实现方法 |
WO2012166154A1 (en) * | 2011-06-03 | 2012-12-06 | Limelight Networks, Inc. | Embedded video player with modular ad processing |
WO2013166178A2 (en) * | 2012-05-02 | 2013-11-07 | One Mainstream, Inc. | System and method for multimedia content publishing on multiple platforms |
Also Published As
Publication number | Publication date |
---|---|
WO2017105542A1 (en) | 2017-06-22 |
US10362359B2 (en) | 2019-07-23 |
CN108781311A (zh) | 2018-11-09 |
EP3387838A1 (en) | 2018-10-17 |
US20180376209A1 (en) | 2018-12-27 |
EP3387838A4 (en) | 2019-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108781311B (zh) | 用于媒体分发和管理平台的视频播放器框架 | |
US11769529B2 (en) | Storyline experience | |
US10999650B2 (en) | Methods and systems for multimedia content | |
US11882180B2 (en) | Dynamic content and cloud based content within collaborative electronic content creation and management tools | |
CN105659206B (zh) | 基于用户动作来为内容分享平台生成播放列表 | |
US20160173925A1 (en) | Aggregation and presentation of video content items for multiple users | |
US20170294212A1 (en) | Video creation, editing, and sharing for social media | |
US20160300594A1 (en) | Video creation, editing, and sharing for social media | |
KR20120116905A (ko) | 사용자 정의된 애셋의 집합의 생성 및 공유를 가능화하는 컴퓨터 구현 방법 | |
US20120233235A1 (en) | Methods and apparatus for content application development and deployment | |
CN104137553A (zh) | 视频管理系统 | |
US9639525B2 (en) | Narrative generating scheme | |
US20220182699A1 (en) | Aggregation and presentation of video content items with feed item customization | |
US20220078502A1 (en) | Techniques for obtaining and distributing user-generated content to internet-based content providers | |
US9721321B1 (en) | Automated interactive dynamic audio/visual performance with integrated data assembly system and methods | |
US20110167069A1 (en) | System and method for creating and providing media objects in a navigable environment | |
US9940645B1 (en) | Application installation using in-video programming | |
US20170039499A1 (en) | Calendar Management with Online Marketing Interface | |
CN117786159A (zh) | 文本素材获取方法、装置、设备、介质和程序产品 | |
US9715541B1 (en) | Identifying credits and aggregating credits into sets | |
US20200154178A1 (en) | Software video compilers implemented in computing systems | |
Ololube | Development of Reporter's Video Recorder Based on Android |
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 |