在视频串流中实现的交互式应用程序的制作方法

文档序号:11156807阅读:309来源:国知局
在视频串流中实现的交互式应用程序的制造方法与工艺

本发明涉及一种交互式应用程序的方法,特别涉及一种在视频串流中实现的交互式应用程序的方法。



背景技术:

交互式应用程序,如游戏,可以是计算密集的。特别是对于某些种类的互动是应用程序,如交互式多媒体应用,这种高运算负载的主要组成是需要产生视频或音频以响应用户的输入。此外,负载会随着用户数量加成,因为相同的影像和声音可能需要针对给定应用的每个多个用户中分别产生。.

当这样的应用程序设置于服务器,例如基于云的服务器,结果可能需要大量的服务器,而其取得、更新和维持都是昂贵的。

在托管(hosting)计算密集的交互式应用程序,如游戏,需要较佳的解决方案。



技术实现要素:

本发明的实施例将多媒体计算机程序转换输出为一系列的串流视频剪辑,其可以通过由网络数据中心(IDCs)和内容发送网络(CDN)组成的视频串流基础设施在全球分发。

此外,在一些实施例中,视频剪辑以元数据标记方便播放,元数据可以包括,例如,标识符和触发信息。标识符可以是每个视频剪辑的唯一标识符,触发信息可以指定标识符下个播放的剪辑,可能是当前用户输入或其他条件的函数。

一般来说,本发明的实施例包括视频剪辑产生过程和交互式播放程序。

在产生过程中,用户(或者在一些变形,仿真的,机器人用户)与传统的交互式计算机程序互动。在响应用户的互动,计算机程序产生原始视频和音频数据,储存用户输入或其他事件触发产生的特定视频和音频数据,与触发条件相关的特定视频和音频数据之后转换为串流视频剪辑。该剪辑以元数据标记,包括例如ID、触发条件或播放事件,以及长度。在一些实施例,该剪辑之后经由内容发送网络传送到选定的网络数据中心以支持一个或多个交互式应用程序。

在播放过程中,在某些实施例,例如支持交互式游戏播放的实施例,播放第一个视频剪辑。在第一视频剪辑播放结束时(或在一些实施例,在第一视频剪辑播放期间的任何时间),参考元数据以识别触发条件或将触发下个视频剪辑播放的条件。在侦测到触发条件(例如用户按下某个按钮)时,播放下个视频剪辑。以这种方式继续播放直到基于最后的触发条件播放最后的视频剪辑。

在一些实施例中,播放发生在服务器中,如基于云的串流服务器,而内容从服务器串流到用户。在其他的实施例,在播放时,内容经由CDN和IDC串流到用户。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1是根据本发明实施例的分布式主从式计算机系统支持交互式实时多媒体应用程序的方框图;

图2是视频串流基础设施包括内容发送网络(CDN)和多个网络数据中心(IDCs)的方框图,通过本发明的实施例来分发视频剪辑;

图3是其根据本发明实施例,描述交互式视频剪辑产生和播放系统的图;

图4是根据本发明实施例的视频剪辑产生和播放程序的流程图;

图5是根据本发明实施例,描述视频剪辑的图结构组。

具体实施方式

本发明实施例提供多媒体信息的产生和播放,如用于交互式实时媒体应用程序的串流视频剪辑。

圖1是根据本发明实施例,分布式主从式计算机系统1000支持交互式实时多媒体应用程序的方框图。计算机系统1000包括一个或多个服务器计算机101和一个或多个用户设备103通过计算机程序产品131配置。计算机程序131可以在暂时性的或非暂时性的计算机可读取介质提供;然而,在特定实施例中,他是在非暂时性计算机可读取介质中提供,如持续性的(如,非挥发性)储存,挥发性内存(如,随机存取内存),或各种其他已知的非暂时性计算机可读取介质。

用户设备103包括中央处理器单元(CPU)120、内存122和储存空间121.用户设备103也包括输入和输出(I/O)子系统(图中未单独示出)(包括如显示器或触控显示器、键盘、d-pad、轨迹球、触摸板、操作杆、麦克风、和/或其他用户接口设备和相关联的控制器电路和/或软件)。用户设备103可以包括任何类型,可以提供媒体内容的电子设备。一些例子包括桌面计算机和可携式电子设备如移动电话、智能型手机、多媒体播放器、电子阅读器、平板/触摸板、笔记本电脑或膝上型PCs、智能电视、智能手表、头戴式显示器和其他通讯设备。

服务器计算机101包括中央处理单元CPU110、储存空间111和内存112(并可包括I/O子系统,未单独示出)。服务器计算机101可以是能够托管计算机产品131的任何计算机设备,用来与一个或多个客户端计算机通讯,例如,用户设备103,通过网络,例如网络102(如,网络)。服务器计算机101经由网络与一个或多个客户端计算机通讯,并且可以采用协议如网络协议组(TCP/IP)、超文本传送协议(HTTP)或HTTPS、实时协议,或其他协议。

内存112和122可以包括任何已知的计算机内存设备。储存空间111和121可以包括任何已知的储存空间设备。

尽管未示出,内存112和122和/或储存空间111和121也可以包括任何可通过服务器计算机101和用户设备103存取的数据储存设备,诸如,可移动或可携式的任何内存(如,闪存或外接硬盘),或任何由第三方托管的数据储存空间(如云端储存空间),并且不限于此。

用户设备103和服务器计算机101经由网络102存取和通讯。网络102包括有线和无线连接,包括广域网(WANs)和蜂巢式网络或任何其他类型作为设备间通讯使用的计算机网络。

在所示实施例中,计算机程序产品131实际上代表计算机程序产品或计算机程序产品部分组成,用来在个别的服务器101和用户设备103上执行。计算机程序产品131的部分装入内存112组成服务器101,遵照本文进一步描述的发明要求,记录并播放交互式串流视频剪辑。串流视频剪辑播放到,例如,用户设备103,其支持接收串流视频,例如经由具有HTML5功能的浏览器。

图2显示视频串流基础设施的一个例子,通过本发明的实施例使用以分发视频剪辑。如图所示,视频串流基础设施2000包括内容发送网络(CDN)200和网络数据中心(IDCs)210-260。

媒体文件201最初储存在文件储存空间202,媒体文件201之后经由CDN200分发到IDCs 210-260。在文件分发后,每个个别的IDC具有分发媒体文件的本地副本。个别的本地副本之后储存为媒体文件副本211-261。每个IDC 210-260之后服务串流媒体,如视频,到个别IDC地理邻近区域的用户,以响应用户的请求。媒体文件副本211-261可以周期性的更新。

在本发明的一些实施例,使用视频串流基础设施2000分发由本文公开的发明过程产生的视频剪辑。也就是说,例如,本发明的视频剪辑作为媒体文件201储存在文件储存空间202,之后经由CDN 200分发到IDCs 210-260,在那里他们可以用于作为串流视频播放给用户。

在其他实施例,本发明视频剪辑直接从,例如,一个或多个服务器,如基于云的服务器分发,而不使用视频串流基础设施2000。

图3是一个系统3000的高阶方框图,其用来产生和储存用元数据标记的交互式视频剪辑,并用来分发交互式视频到用户设备,根据本发明的实施例。系统3000可以被实现为硬件模块或软件模块,或硬件和软件模块的组合。在部分实施例,系统3000的至少一部分包括在服务器运行的软件,如服务器101。

在所示的实施例中,除了产生和储存以元数据标记的交互式视频剪辑,系统3000执行附加的相关功能。例如,在该实施例系统3000还能够回放预先储存的视频剪辑,并且能够响应用户的互动传输串流视频给用户,而不需要将视频首次储存如视频剪辑。在替代实施例中,这些一个或多个功能可以通过单独或多个系统提供。

在图3,计算机程序310可以是,例如,交互式多媒体应用程序。例如,计算机程序310可以是游戏应用程序。计算机程序310产生输出程序320响应输入程序330。

在一些实施例,输出程序320包括原始视频和音频输出,在一些实施例,输出程序320包括视频渲染结果。

在一些实施例,输入程序330包括基于用户输入互动指示的控制信息,如用户按下按钮,选择列表上的项目或键入命令。这样的用户输入互动可以源自输入接口设备350,输入接口设备可以是与用户设备相关的接口设备,如用户设备103。特定用户设备相关的接口设备可以包括操作杆、鼠标、触控屏幕等。在一些实施例,输入接口设备350可以与远程用户设备103并列,并与其他系统的组件经由网络通讯。虽然标记为「接口设备」,但是本领域技术人员将了解输入设备/组件如接口设备350可以,在特定实施例中,包括输入组件被建置于,即,部分的,用户设备103中(例如触控屏幕、按钮等),而不是从用户设备103分离并插入用户设备103中。

在一些实施例中,输入接口设备350是「机器人」实体,产生一连串仿真真实使用者行为的输入序列。这样的机器人实体可以用来「训练」系统,并且使其产生许多(或甚至全部)输出程序320可能的情况。以这种方式「训练」系统3000的目的可以是,例如,使其产生并储存每个与输出程序320相关视频剪辑的至少一个副本。

应用程序互动容器340提供运行环境运行计算机程序310。在本发明的实施例中,应用程序互动容器340侦测并截取通过输入接口设备350产生的用户输入,并以输入程序330的形式,传递拦截的用户输入到计算机程序310。

应用程序互动容器340还截取原始视频和音频产生为输出程序320,并且利用计算机程序视频处理平台360的服务将原始视频和音频转换串流视频格式,然后将转换的视频和音频作为一个或多个视频片段或剪辑370储存在数据库390。每个剪辑代表响应特定触发条件的音频和视频输出程序(或播放事件),其中一组可能的触发条件包括,例如,输入程序330的特定项目。在一些实施例,原始视频和音频转换为多媒体封装格式,在一些实施例,原始视频和音频被转换为称为MPEG2-传输串流(MPEG2-TS)的格式。

随着视频剪辑370的产生,他们也以一组属性380标记(这里也称作「元数据」),组成,例如,剪辑ID、播放事件和长度。元数据380中的属性与相关联的对应的视频剪辑370储存于数据库390。储存的剪辑370可以用于将来的播放,储存的、标记视频剪辑370可以由相同或不同的用户再次使用。潜在地,给定的剪辑370可以通过数千个用户以计算机程序310在共享服务器或服务器组上互动而被再次使用。

例如,下一次出现给定的播放事件(基于,例如,来自特定用户输入的侦测,从相同用户或不同用户),可以播放以该事件标记的储存的视频剪辑370,从而避免需要重新产生对应的原始视频和音频。对于一些应用程序,这可以导致计算机处理能力的显著节省。见下面的播放过程说明,以得到进一步的细节。

如上所述,在所示实施例中,系统3000也可以回放预先储存的视频剪辑。例如,基于用户经由输入接口设备350的互动,使输入程序330、计算机程序310可以确定特定具有对应到用户互动的元数据380的预先储存剪辑370,其是有效的并且适合响应用户的互动。然后匹配的剪辑370可以从储存空间和串流中撷取,例如,根据多媒体封存格式,如MPEG2-TS,到用户设备103。

如上所述,在所示实施例中,系统3000也可以串流视频给用户以响应用户互动,即使视频当前未被储存为串流视频剪辑370,例如,基于用户经由输入接口设备350互动使输入程序330、计算机程序310可以确定特定视频输出是适合响应用户互动,但没有对应的剪辑370可以使用。所需的视频可以之后通过计算机程序310产出作为原始输出视频320。应用程序互动容器340之后截取输出程序320并且,利用计算机程序视频处理平台360的服务,将原始视频转换为流格式,根据,例如,多媒体封装格式,如MPEG2-TS,并将串流视频发送给用户设备103。有利地,串流视频可以同时被记录、封装为视频剪辑370,并与适当的元数据380储存以作为将来使用。

图4显示产出、储存和播放互动视频剪辑及相关的元数据的过程4000,根据本发明的实施例。在一些实施例,过程4000也支持其他相关的功能,如,例如,在没有首次储存视频作为视频剪辑下,串流视频给用户。

在步骤410,计算机程序在服务器,如服务器101启动。服务器可以是,例如,基于云的服务器。服务器可以是,例如,游戏服务器。计算机程序可以是,例如,交互式多媒体应用程序,如,例如,游戏应用程序。

在步骤420,该过程监控用户输入。

在决策框430,如果没有侦测到用户输入,过程返回到步骤420并继续监控用户输入。若侦测到用户输入,则控制移转到决策框440。

在决策框440,若具有匹配元数据的预先储存视频剪辑存在(即,元数据对应用户输入),控制移转到步骤450,预先储存视频剪辑串流到用户。然后控制返回到步骤420,并且该过程继续监控用户输入。

如果,在决策框440,没有发现具匹配元数据的预先储存剪辑,控制移转到步骤460。在步骤460,来自输出程序响应用户输入的视频片段串流到用户。同时,视频片段被记录用来作为对应视频剪辑的创建准备。在步骤470,记录的视频以串流形式被封装到视频剪辑。例如,流格式可以是多媒体封装格式如MPEG2-TS。

在步骤480,产生与视频剪辑相关的元数据(例如,剪辑ID,播放事件或触发、长度)。

在步骤490,视频剪辑和相关的元数据储存作为将来使用,例如,当遇到与对应剪辑储存元数据的启动装置时,视频剪辑可以通过播放程序在将来使用。通过使用储存的视频剪辑,播放程序可以避免计算机程序需要重新产生对应储存视频剪辑的视频片段。

视频片段可以继续被记录,封装到流格式的片段中,并与相关的元数据储存直到,例如,游戏结束。

注意,程序4000在服务器运行的情况下,例如基于云的服务器,其实际上可以同时处理多个用户,可能许多用户。在这样的情况下,完全可能的是,给定的视频片段已经被记录、封装并储存为视频剪辑370,与对应的元数据380在先前用户与程序4000的交互过程中。在这种情况下,不应该需要再次记录对应的片段,相反地,视频剪辑可以从先前储存的剪辑系列中撷取,基于元数据,其可以包括唯一的ID。

图5显示视频剪辑和相关元数据的图形结构化例子组5000,根据本发明实施例使用在播放程序。这些剪辑可以是,例如,从图3的系统3000和/或通过图4的程序4000产生的视频剪辑370和相关的元数据380。在播放程序,视频剪辑370从服务器串流,如服务器计算机101或与网络数据中心相关的服务器,如IDC210。视频剪辑370在用户设备接收并观看,如用户设备103,其具有适当的功能,如支持HTML5的浏览器。

每个交互式多媒体应用程序或应用程序的部分,可能与相似于视频剪辑组5000形式的播放视频剪辑组相关,也称作元数据播放列表,例如,多级别游戏的每个级别可以有他自己的元数据播放列表。如上所述,关于每个视频剪辑370的元数据被学习作为响应真实或「机器人」用户输入的执行应用程序,因此,同时,元数据播放列表也学习,这是因为元数据播放列表是视频剪辑370的集合,根据元数据380连接,针对特定的应用程序或应用程序的部分。

在图5的例子中,视频剪辑由圆圈表示,每个具有一个ID。例如,视频剪辑510以ID=A标记。箭头表示「播放事件」或触发条件使播放程序5000依箭头方向前进,例如,若视频剪辑520正在播放而按钮X被按下,视频剪辑520的播放停止而视频剪辑530开始。若,另一方面,当视频剪辑520正在播放,用户选择「项目2」,程序转而改变到视频剪辑540。若视频剪辑530正在播放而按钮Y被按下,程序转换并播放视频剪辑550。若视频剪辑540正在播放而用户滑动到「目标Z」,则程序转换并播放视频剪辑560。若视频剪辑560或550任一个正在播放而从麦克风(「MIC」)接收到音频命令「提交」,程序转换并开始播放视频剪辑570。说明稍微不同种类的触发,当视频剪辑510完成播放时,程序自动前进到标记A’的视频剪辑,即视频剪辑520。

可选地,可以采用快取机制帮助视频剪辑的平滑播放。

在本发明的部分实施例,从服务器传送到用户设备的视频,是混合预先计算的视频(储存和再次播放的视频剪辑)和实时产生的视频串流(尚未储存为具有元数据的视频剪辑的视频)。

在上面的描述中,参考串流多媒体封装格式,如MPEG2-TS。应当理解,本发明的实施例不限于MPEG2-TS,而是可以采用各种各样串流封装格式的任何一种,包含但不限于3GP、ASF、AVI、DVR-MS、Flash Video(FLV,F4V)、IFF、Matroska(MKV)、MJ2、QuickTime文件格式、MPEG节目串流、MP4、Ogg和RM(RealMedia封装)。实施例在没有标准化封装格式下的运作也是被预期的。

尽管上面已经描述了一些示例性实施例,但本技术领域人员将了解,在不脱离本发明的精神和范围的情况下,许多修改和变化是可能的。因此,所有这些修改和变化是预期包含在发明请求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1