可左右滑动选省市

用于互动视频的引擎架构和装置实用新型专利

更新时间:2024-10-01
用于互动视频的引擎架构和装置实用新型专利 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:用于互动视频的引擎架构和装置

专利类型:实用新型专利

专利申请号:CN202010208925.0

专利申请(专利权)人:优酷文化科技(北京)有限公司
权利人地址:北京市怀柔区杨宋镇凤翔东大街9号201室

专利发明(设计)人:李凯

专利摘要:公开了一种用于互动视频的引擎架构和装置。该用于互动视频的引擎架构包括:互动组件容器单元,用于渲染互动组件;视频播放容器单元,用于播放视频片段;以及,互动播放引擎单元,用于解析互动播放协议以获得互动脚本;解析所述互动脚本,调度所述互动组件容器单元,加载互动组件;和,响应于来自所述互动组件容器单元的互动结果,调度所述视频播放容器单元,播放互动视频。这样,可以实现对于自定义组件的高灵活性和高可移植性渲染。

主权利要求:
1.一种用于互动视频的引擎架构系统,包括:
互动组件容器单元,用于渲染互动组件,所述互动组件容器是不同厂商开发的不同类型的用于渲染的容器;
视频播放容器单元,用于播放视频片段,所述视频播放容器是加载有用于播放视频片段的视频播放器的各种容器;
互动播放引擎单元,用于解析互动播放协议以获得互动脚本;
解析所述互动脚本,调度所述互动组件容器单元,加载互动组件;和响应于来自所述互动组件容器单元的互动结果,调度所述视频播放容器单元,播放互动视频;
其中,所述互动组件容器单元包括:
互动组件模块,用于获取互动节点及互动节点对应的互动组件的数据;以及组件容器模块,用于响应于所述互动播放引擎单元的调度,从所述互动组件模块接收所述互动组件的数据,基于所述数据渲染所述互动组件,和获得所述互动组件的互动结果。
2.根据权利要求1所述的用于互动视频的引擎架构系统,其中,所述互动组件容器单元进一步包括:通信协议模块,用作所述互动组件与所述组件容器模块的通信接口,所述通信协议包括用于所述互动组件的渲染的协议,用于互动事件的触发的协议以及与所述互动组件关联的附加参数的变更的协议。
3.根据权利要求1所述的用于互动视频的引擎架构系统,其中,所述组件容器模块进一步用于初始化容器和删除所述互动组件的数据。
4.根据权利要求1所述的用于互动视频的引擎架构系统,其中,所述组件容器模块进一步用于订阅所述互动播放引擎单元调度所述互动组件容器单元的第一事件。
5.根据权利要求4所述的用于互动视频的引擎架构系统,其中,所述视频播放容器单元包括:事件订阅模块,用于订阅所述互动播放引擎单元调度所述视频播放容器单元的第二事件;
事件触发模块,用于响应于所述第二事件,触发所述视频容器模块生成用于播放的视频流;以及视频容器模块,用于响应于检测到基于所述第二事件的触发,通过解析视频ID和初始化视频播放器生成所述视频流。
6.根据权利要求5所述的用于互动视频的引擎架构系统,其中,所述视频容器模块进一步用于附加所述视频流和卸载所述视频流。
7.根据权利要求1所述的用于互动视频的引擎架构系统,其中,所述互动播放引擎单元包括:互动组件管理模块,用于预加载所述互动组件容器单元,调度所述互动组件容器单元的数据和控制所述互动组件容器单元的渲染时间;以及视频片段管理模块,用于解析所述视频片段的数据结构和控制所述视频片段的播放时间。
8.根据权利要求7所述的用于互动视频的引擎架构系统,其中,所述互动组件管理模块进一步用于桥接调度所述互动组件容器单元的第一事件;和所述视频片段管理模块进一步用于触发调度所述视频播放容器单元的第二事件。
9.根据权利要求7所述的用于互动视频的引擎架构系统,其中,所述视频片段管理模块进一步用于管理与所述互动视频有关的附加参数。
10.一种用于互动视频的引擎装置,包括:权利要求1‑9中任意一项所述的引擎架构系统。 说明书 : 用于互动视频的引擎架构和装置技术领域[0001] 本申请涉及互动视频技术领域,且更为具体地,涉及一种用于互动视频的引擎架构和装置。背景技术[0002] 目前,随着技术的不断迭代,互动方式的升级,具有互动性的互动视频也在视频领域中逐渐兴起。用户在观看互动视频的过程中,可以通过互动操作解锁剧情或者推进剧情发展,用户不再仅是视频的观看者而是参与者,因此,互动视频对于用户而言能够激发用户的好奇心与探索力,吸引用户观看。[0003] 例如,互动视频的常见的互动形式是分支剧情,其又被称为AB剧,形式也比较简单,即在视频的某个节点设置分支剧情的选项,根据用户选择播放相应的分支剧情,分支剧情可以是完全相互独立的,比如,独立的故事线和独立的结局,当然,分支剧情也可以只是剧情的中间过程,分支剧情结束时又回归了剧情主线。[0004] 由于互动视频会出现从剧情主线向不同分支剧情发展,或者,从不同分支剧情回归剧情主线的需求,因此,互动视频一般由多个视频片段(或者视频区间)组成,比如剧情主线为一个视频片段,每个分支剧情对应一个视频片段。此外,互动视频还包括互动组件,例如用于向用户呈现选项的互动组件,用于接收用户操作的互动组件等。[0005] 因此,互动视频的播放需要专门的、适于互动视频的引擎架构。发明内容[0006] 为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种用于互动视频的引擎架构和装置,其通过单独的容器分别渲染互动组件和播放视频片段,并基于互动脚本来调度互动组件的渲染和视频片段的播放以生成互动视频,从而实现对于自定义组件的高灵活性和高可移植性渲染。[0007] 根据本申请的一方面,提供了一种用于互动视频的引擎架构,包括:互动组件容器单元,用于渲染互动组件;视频播放容器单元,用于播放视频片段;以及,互动播放引擎单元,用于解析互动播放协议以获得互动脚本;解析所述互动脚本,调度所述互动组件容器单元,加载互动组件;和,响应于来自所述互动组件容器单元的互动结果,调度所述视频播放容器单元,播放互动视频。[0008] 在上述用于互动视频的引擎架构中,所述互动组件容器单元包括:互动组件模块,用于获取互动节点及互动节点对应的互动组件的数据;以及,组件容器模块,用于响应于所述互动播放引擎单元的调度,从所述互动组件模块接收所述互动组件的数据,基于所述数据渲染所述互动组件,和获得所述互动组件的互动结果。[0009] 在上述用于互动视频的引擎架构中,所述互动组件容器单元进一步包括:通信协议模块,用作所述互动组件与所述组件容器模块的通信接口,所述通信协议包括用于所述互动组件的渲染的协议,用于互动事件的触发的协议以及与所述互动组件关联的附加参数的变更的协议。[0010] 在上述用于互动视频的引擎架构中,所述组件容器模块进一步用于初始化容器和删除所述互动组件的数据。[0011] 在上述用于互动视频的引擎架构中,所述组件容器模块进一步用于订阅所述互动播放引擎单元调度所述互动组件容器单元的第一事件。[0012] 在上述用于互动视频的引擎架构中,所述视频播放容器单元包括:事件订阅模块,用于订阅所述互动播放引擎单元调度所述视频播放容器单元的第二事件;事件触发模块,用于响应于所述第二事件,触发所述视频容器模块生成用于播放的视频流;以及,视频容器模块,用于响应于检测到基于所述第二事件的触发,通过解析视频ID和初始化视频播放器生成所述视频流。[0013] 在上述用于互动视频的引擎架构中,所述视频容器模块进一步用于附加所述视频流和卸载所述视频流。[0014] 在上述用于互动视频的引擎架构中,所述互动播放引擎单元包括:互动组件管理模块,用于预加载所述互动组件容器单元,调度所述互动组件容器单元的数据和控制所述互动组件容器单元的渲染时间;以及,视频片段管理模块,用于解析所述视频片段的数据结构和控制所述视频片段的播放时间。[0015] 在上述用于互动视频的引擎架构中,所述互动组件管理模块进一步用于桥接调度所述互动组件容器单元的第一事件;和,所述视频片段管理模块进一步用于触发调度所述视频播放容器单元的第二事件。[0016] 在上述用于互动视频的引擎架构中,所述视频片段管理模块进一步用于管理与所述互动视频有关的附加参数。[0017] 根据本申请的另一方面,提供了一种用于互动视频的引擎装置,包括如上所述的用于互动视频的引擎架构。[0018] 本申请提供的用于互动视频的引擎架构和装置能够通过单独的容器分别渲染互动组件和播放视频片段,并基于互动脚本来调度互动组件的渲染和视频片段的播放以生成互动视频,从而实现对于自定义组件的高灵活性和高可移植性渲染。附图说明[0019] 通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。[0020] 图1图示了根据本申请实施例的用于互动视频的引擎架构的示意性框图。[0021] 图2图示了根据本申请实施例的互动视频的播放过程的示意图。[0022] 图3图示了根据本申请实施例的互动组件容器单元的示意性框图。[0023] 图4图示了根据本申请实施例的视频渲染容器单元的示意性框图。[0024] 图5图示了根据本申请实施例的互动播放引擎单元的示意性框图。[0025] 图6图示了根据本申请实施例的用于互动视频的引擎装置的示意性框图。具体实施方式[0026] 下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。[0027] 申请概述[0028] 如上所述,对于近来兴起的互动视频(互动视频可以由专业视频公司制作的视频片段构成,也可以由不同用户通过互联网协作方式上传的视频片段构成等),由于不同服务提供商所定义的互动视频协议的不同,具体的解决方法和视频引擎也不相同。其中,有些互动视频协议对于互动场景的使用相对固化,这会对于自定义组件的渲染的灵活性和可移植性造成限制。[0029] 针对上述技术问题,本申请的基本构思是通过单独的容器分别渲染互动组件和播放视频片段,并基于互动脚本调度互动组件的渲染和视频片段的播放以生成互动视频。[0030] 具体地,本申请提供的用于互动视频的引擎架构包括:互动组件容器单元,用于渲染互动组件;视频播放容器单元,用于播放视频片段;以及,互动播放引擎单元,用于解析互动播放协议以获得互动脚本;解析所述互动脚本,调度所述互动组件容器单元,加载互动组件;和,响应于来自所述互动组件容器单元的互动结果,调度所述视频播放容器单元,播放互动视频。[0031] 这样,本申请提供的用于互动视频的引擎架构由于通过单独的容器分别渲染互动组件和播放视频片段,通过互动组件和视频片段的容器分离,可以在遵循用于互动视频播放的引擎的调度的前提下,对于每个容器进行独立地优化和进一步扩展。[0032] 也就是,通过互动播放引擎单元基于互动脚本来调度用于互动组件和视频片段的容器,可以实现在单页应用中的多容器同时渲染的解决方案,并且通过基于互动脚本的引擎的驱动,统一地控制多容器渲染和互动行为。这样,可以实现对于互动组件的自定义,并且保证了自定义组件的高灵活性和高可移植性渲染。[0033] 在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。[0034] 示例性引擎架构[0035] 图1图示了根据本申请实施例的用于互动视频的引擎架构的示意性框图。图2图示了根据本申请实施例的互动视频的播放过程的示意图。下面,将结合图2所示的互动视频的播放过程,对根据本申请实施例的用于互动视频的引擎架构进行具体说明。[0036] 如图1所示,根据本申请实施例的用于互动视频的引擎架构100包括如下单元。[0037] 互动组件容器单元110用于渲染互动组件。这里,用于所述互动组件的容器可以是不同厂商开发的不同类型的用于渲染的容器,比如Rax容器。容器作为一种内核轻量级的操作系统层虚拟化技术,其特点包括极其轻量、秒级部署(相比于虚拟机快很多),易于移植和弹性伸缩。[0038] Rax容器是基于Weex容器开发的容器,其中,Rax是一款类React语法的前端框架,其与React的最大不同在于React用于Web页面的渲染,而Rax的目标则是通用的跨容器的渲染引擎。这里,Weex容器是一种可以用Javascript开发,在Android/ios渲染的容器技术。因此,本领域技术人员可以理解,在本申请实施例中,Weex容器也可以用作用于渲染互动组件的容器。[0039] 视频渲染容器单元120用于播放视频片段。这里,用于所述视频片段的播放的容器可以是加载有用于播放视频片段的视频播放器的各种容器。[0040] 互动播放引擎单元130用于解析互动播放协议以获得互动脚本;解析所述互动脚本,调度所述互动组件容器单元,加载互动组件;和,响应于来自所述互动组件容器单元的互动结果,调度所述视频播放容器单元,播放互动视频。[0041] 这里,所述互动播放协议指的是描述互动视频中的视频片段与互动事件的渲染规则的数据结构。这样,互动播放引擎单元130通过解析互动播放协议对应的数据结构并转换为运行时控制器,可以基于互动脚本来对视频片段的播放以及互动组件的加载和渲染进行调度。[0042] 所述互动脚本用于描述互动组件和视频片段在互动视频中的渲染时间点和播放时间点,因此,基于所述互动脚本,互动播放引擎单元130可以知道在哪个时间点加载哪个互动组件,和在哪个时间点播放哪个视频片段。[0043] 如图2所示,互动播放引擎单元130基于互动脚本,首先播放视频节点1的视频片段。当视频节点1的视频片段结束时,互动播放引擎单元130基于互动脚本进入互动节点2,从而加载互动节点2的互动组件。在本申请实施例中,互动播放引擎单元130通过调度互动组件容器单元110来加载相应的互动组件。[0044] 在互动组件容器单元110完成互动节点2的互动组件的渲染,并获得了互动结果,例如,哪个互动选项被选中之后,将互动结果回传给互动播放引擎单元130。互动播放引擎单元130基于解析的互动脚本,可以确定基于互动结果应该播放哪个视频片段,从而进一步调度视频播放容器单元120来播放相应的视频片段。[0045] 例如,如图2所示,当互动组件容器单元110将例如选中选项A的互动结果回传给互动播放引擎单元130。互动播放引擎单元130基于解析的互动脚本确定基于选项A应该播放对应于视频节点3的视频片段,则调度视频播放容器单元120来播放该视频片段。或者,当互动组件容器单元110将例如选中选项B的互动结果回传给互动播放引擎单元130。互动播放引擎单元130基于解析的互动脚本确定基于选项B应该播放对应于视频节点4的视频片段,则调度视频播放容器单元120来播放该视频片段。[0046] 此外,也可能互动组件容器单元110回传给互动播放引擎单元130的互动结果指示应该进一步加载互动组件。例如,如图2所示,互动节点5的某个选项的互动结果指示应该进一步加载互动节点7的互动组件,因此,互动播放引擎单元130也会响应于来自互动组件容器单元110的互动结果,调度互动组件容器单元110加载另一互动组件。[0047] 也就是,基于互动脚本,互动播放引擎单元130可以动态地调度互动组件容器单元110和视频播放容器单元120,以按照互动脚本来渲染互动组件和播放视频片段以生成互动视频。[0048] 在本申请实施例中,互动播放引擎单元130可以通过事件来动态地调度互动组件容器单元110和视频播放容器单元120,从而所述互动组件容器单元110和所述视频播放容器单元120分别订阅所述互动播放引擎单元的用于调度的的事件,以动态地加载/渲染/卸载互动组件和视频片段。[0049] 并且,互动播放引擎单元130还需要监听相关事件的回调,来控制互动组件和视频片段当前的渲染状态,从而完成视频片段播放的执行顺序与分支处理。[0050] 作为互动播放引擎单元130与互动组件容器单元110和视频播放容器单元120之间的接口,可以采用JsBriage提供组件与容器的互通能力。并且,因为在本申请实施例中,互动组件容器单元110可以采用网络端容器或者移动端容器,因此,互动播放引擎单元130可以为网络端容器和移动端容器统一定义一套JsBriage的API(应用程序接口),以便于根据本申请实施例的用于互动视频的引擎架构应用于其它平台。[0051] 下面,将进一步详细说明根据本申请实施例的用于互动视频的引擎架构中的各个单元。[0052] 图3图示了根据本申请实施例的互动组件容器单元的示意性框图。[0053] 如图3所示,在如图1所示的实施例的基础上,所述互动组件容器单元110可以包括以下模块。[0054] 互动组件模块111,用于获取互动节点及其对应的互动组件的数据。这里,互动组件指的是互动视频中用于实现互动功能的组件。例如,所述互动组件可以是用于用户选择分支剧情的选项,例如对应于分支剧情1的选项1,对应于分支剧情2的选项2,等等。或者,所述互动组件可以是用于用户选择视角的选项,例如,对应于人物A的视角的选项1,对应于人物B的视角的选项2,等等。[0055] 此外,所述互动组件还可以是用于接收用户操作的组件,例如用于接收用户操作以展示不同互动界面的组件,用于接收用户操作以更改与互动视频中的剧情相关联的某些数值的组件,等等。[0056] 并且,在本申请实施例中,所述互动组件可以由互动视频的编辑人员自定义,并且,除了由互动视频服务的提供商的互动视频制作人员自定义以外,还可以由观看互动视频的用户或者其它第三方定义。也就是,在本申请实施例中,互动组件的自定义具有很高的灵活性。[0057] 组件容器模块113,用于响应于所述互动播放引擎单元的调度,从所述互动组件模块接收所述互动组件的数据,基于所述数据渲染所述互动组件,和获得所述互动组件的互动结果。[0058] 在本申请实施例中,所述组件容器模块113可以通过多种渲染引擎来渲染所述互动组件。例如,除Rax容器自身的渲染引擎以外,还可以使用更加复杂的渲染引擎,以及WebGL、Canvas(画布)等渲染方式。[0059] 另外,所述组件容器模块113除了用于渲染所述互动组件以外,还执行与互动组件的渲染有关的其它功能。具体地,所述组件容器模块113可以进一步用于初始化容器和卸载所述互动组件,即,删除所述互动组件的数据。[0060] 也就是,当互动播放引擎单元基于从组件容器模块113接收到互动组件的互动结果,而跳转到另一互动节点或者视频节点之后,可以通知组件容器模块113删除所渲染的互动组件的数据。[0061] 此外,在本申请实施例中,所述互动组件在所述互动视频的播放过程中,可以以互动事件的形式被触发。例如,当需要渲染作为用于用户选择分支剧情或者视角的选项的互动组件时,由选择分支剧情或者视角的用户选择事件触发。并且,所述互动事件的触发由互动播放引擎单元的调度。[0062] 因此,由于所述组件容器模块113受互动播放引擎单元的调度以渲染互动组件,所述组件容器模块113进一步用于订阅所述互动播放引擎单元调度所述互动组件渲染单元的第一事件。并且,基于所述第一事件,所述组件容器模块113可以用于加载或者卸载容器,例如加载或者卸载Rax容器。[0063] 此外,可选地,互动组件容器单元110可以进一步包括通信协议模块112,用作所述互动组件与所述组件容器模块的通信接口。也就是,由于在本申请实施例中,所述互动组件可能是包含第三方互动组件在内的互动组件,包含各种类型的自定义组件,因此,为了确保组件容器模块与自定义的互动组件的兼容,设置通信协议模块112以作为所述互动组件与所述组件容器模块的通信接口。[0064] 这里,取决于所述互动组件的具体情况,所述通信协议可以包括用于互动组件的渲染的协议,例如,以用于用户选择分支剧情或者视角的选项的渲染。并且,所述通信协议可以包括用于互动事件的触发的协议,例如,以用于接收用户操作作为触发以展示不同页面。并且,所述通信协议可以包括与所述互动组件关联的附加参数的变更的协议。[0065] 因此,在根据本申请实施例的用于互动视频的引擎架构中,所述互动组件容器单元包括:互动组件模块,用于获取互动节点及互动节点对应的互动组件的数据;以及,组件容器模块,用于响应于所述互动播放引擎单元的调度,从所述互动组件模块接收所述互动组件的数据,基于所述数据渲染所述互动组件,和获得所述互动组件的互动结果。[0066] 并且,在上述用于互动视频的引擎架构中,所述互动组件容器单元进一步包括:通信协议模块,用作所述互动组件与所述组件容器模块的通信接口,所述通信协议包括用于所述互动组件的渲染的协议,用于互动事件的触发的协议以及与所述互动组件关联的附加参数的变更的协议。[0067] 另外,在上述用于互动视频的引擎架构中,所述组件容器模块进一步用于初始化容器和删除所述互动组件的数据。[0068] 此外,在上述用于互动视频的引擎架构中,所述组件容器模块进一步用于订阅所述互动播放引擎单元调度所述互动组件容器单元的第一事件。[0069] 图4图示了根据本申请实施例的视频播放容器单元的示意性框图。[0070] 如图4所示,在如图1所示的实施例的基础上,所述视频播放容器单元120可以包括以下模块。[0071] 事件订阅模块121,用于订阅所述互动播放引擎单元调度所述视频播放容器单元的第二事件。如上所述,因为所述视频播放容器单元120受互动播放引擎单元的调度以播放视频片段,所以所述视频渲染容器单元120包括事件订阅模块121,以订阅所述互动播放引擎单元调度所述视频播放容器单元的第二事件。[0072] 也就是,当通过作为互动事件的第一事件调度互动组件时,如果所述互动组件与视频片段的播放相关联,例如作为用户选择分支剧情或者视角的选项的互动组件与作为分支剧情的视频片段和作为所选视角的视频片段相关联,则在触发第一事件的情况下,进一步响应于互动结果,也会触发播放相应的视频片段的第二事件。[0073] 事件触发模块122,用于响应于所述第二事件,触发视频容器模块123生成用于播放的视频流。响应于所述互动播放引擎单元130调度所述视频播放容器单元120以播放所述视频片段的第二事件,所述事件触发模块122触发视频容器模块123以生成用于播放的视频流。[0074] 视频容器模块123,用于响应于检测到基于所述第二事件的触发,通过解析视频ID和初始化视频播放器生成所述视频流。这里,在本申请实施例中,所述视频容器模块123播放视频片段的功能与通常的用于播放视频的播放器类应用相同,也就是,通过解析视频ID和初始化视频播放器来生成用于播放的视频流。[0075] 此外,所述视频容器模块123还可以用于附加所述视频流和卸载所述视频流。[0076] 因此,在根据本申请实施例的用于互动视频的引擎架构中,所述视频播放容器单元包括:事件订阅模块,用于订阅所述互动播放引擎单元调度所述视频播放容器单元的第二事件;事件触发模块,用于响应于所述第二事件,触发所述视频容器模块生成用于播放的视频流;以及,视频容器模块,用于响应于检测到基于所述第二事件的触发,通过解析视频ID和初始化视频播放器生成所述视频流。[0077] 并且,在上述用于互动视频的引擎架构中,所述视频容器模块进一步用于附加所述视频流和卸载所述视频流。[0078] 图5图示了根据本申请实施例的互动播放引擎单元的示意性框图。[0079] 如图5所示,在如图1所示的实施例的基础上,所述互动播放引擎单元130包括以下模块。[0080] 互动组件管理模块131,如上所述,其用于预加载互动组件容器单元110,接收互动组件容器单元110的数据,和控制互动组件容器单元110的渲染时间。此外,所述互动组件管理模块131进一步用于桥接调度互动组件容器单元110的第一事件。[0081] 视频片段管理模块132,用于解析所述视频片段的数据结构和控制所述视频片段的播放时间。并且,所述视频片段管理模块132进一步用于触发调度所述视频渲染容器单元的第二事件。[0082] 另外,如上所述,在所述互动视频中,存在与所述互动视频有关的附加参数。在互动视频领域中,其中的某些有时也被称为“视频资产”。具体地,视频资产指的是互动视频中,每个章节解锁剧情会根据资产状态(例如:好感度),而触发隐藏剧情。[0083] 如上所述,在自定义互动组件时,也需要自定义与互动事件有关的视频资产的数值变动。例如,当用户选择某个选项时,男女主人公之间的好感度增加,从而后续取决于好感度向用户呈现不同分支剧情。因此,所述视频片段管理模块132用于管理与所述互动视频有关的附加参数,以基于所述附加参数的数值不同来调度所述视频部分容器单元渲染不同视频片段。[0084] 因此,在根据本申请实施例的用于互动视频的引擎架构中,所述互动播放引擎单元包括:互动组件管理模块,用于预加载所述互动组件容器单元,调度所述互动组件容器单元的数据和控制所述互动组件容器单元的渲染时间;以及,视频片段管理模块,用于解析所述视频片段的数据结构和控制所述视频片段的播放时间。[0085] 并且,在上述用于互动视频的引擎架构中,所述互动组件管理模块进一步用于桥接调度所述互动组件容器单元的第一事件;和,所述视频片段管理模块进一步用于触发调度所述视频播放容器单元的第二事件。[0086] 另外,在上述用于互动视频的引擎架构中,所述视频片段管理模块进一步用于管理与所述互动视频有关的附加参数。[0087] 示例性引擎装置[0088] 本申请实施例还提供一种包含前述实施例提供的引擎架构的引擎装置,以下结合附图对该引擎装置进行详细说明。[0089] 图6图示了根据本申请实施例的用于互动视频的引擎装置的框图。[0090] 如图6所示,根据本申请实施例的用于互动视频的引擎装置200,其包括用于互动视频的引擎架构210。所述用于互动视频的引擎架构210包括:互动组件容器单元211,用于渲染互动组件;视频播放容器单元212,用于播放视频片段;以及,互动播放引擎单元213,用于解析互动播放协议以获得互动脚本;解析所述互动脚本,调度所述互动组件容器,加载互动组件;和,响应于来自所述互动组件容器的互动结果,调度所述视频播放容器,播放互动视频。[0091] 在一个示例中,在上述用于互动视频的引擎装置200中,所述互动组件容器单元211包括:互动组件模块,用于获取互动节点及互动节点对应的互动组件的数据;以及,组件容器模块,用于响应于所述互动播放引擎的调度,从所述互动组件单元接收所述互动组件的数据,基于所述数据渲染所述互动组件,和获得所述互动组件的互动结果。[0092] 在一个示例中,在上述用于互动视频的引擎装置200中,所述互动组件容器单元211进一步包括:通信协议模块,用作所述互动组件与所述组件容器模块的通信接口,所述通信协议包括用于所述互动组件的渲染的协议,用于互动事件的触发的协议以及与所述互动组件关联的附加参数的变更的协议。[0093] 在一个示例中,在上述用于互动视频的引擎装置200中,所述组件容器模块进一步用于初始化容器和删除所述互动组件的数据。[0094] 在一个示例中,在上述用于互动视频的引擎装置200中,所述组件容器模块进一步用于订阅所述互动播放引擎单元调度所述互动组件容器单元的第一事件。[0095] 在一个示例中,在上述用于互动视频的引擎装置200中,所述视频播放容器单元212包括:事件订阅模块,用于订阅所述互动播放引擎单元调度所述视频播放容器单元的第二事件;事件触发模块,用于响应于所述第二事件,触发所述视频容器模块生成用于播放的视频流;以及,视频容器模块,用于响应于检测到基于所述第二事件的触发,通过解析视频ID和初始化视频播放器生成所述视频流。[0096] 在一个示例中,在上述用于互动视频的引擎装置200中,所述视频容器模块进一步用于附加所述视频流和卸载所述视频流。[0097] 在一个示例中,在上述用于互动视频的引擎装置200中,所述互动播放引擎单元213包括:互动组件管理模块,用于预加载所述互动组件容器单元,调度所述互动组件容器单元的数据和控制所述互动组件容器单元的渲染时间;以及,视频片段管理模块,用于解析所述视频片段的数据结构和控制所述视频片段的播放时间。[0098] 在一个示例中,在上述用于互动视频的引擎装置200中,所述互动组件管理模块进一步用于桥接调度所述互动组件容器单元的第一事件;和,所述视频片段管理模块进一步用于触发调度所述视频播放容器单元的第二事件。[0099] 在一个示例中,在上述用于互动视频的引擎装置200中,所述视频片段管理模块进一步用于管理与所述互动视频有关的附加参数。[0100] 这里,本领域技术人员可以理解,根据本申请实施例的用于互动视频的引擎装置的其它细节与之前在“示例性引擎架构”部分中描述的根据本申请实施例的用于互动视频的引擎架构的相应细节完全相同,为了避免冗余便不再赘述。[0101] 并且,根据本申请实施例的用于互动视频的引擎装置与本申请实施例的用于互动视频的引擎架构类似,都可以实现了用于互动视频的生成和播放的软件架构。具体地,根据本申请实施例的用于互动视频的引擎架构和装置可以实现在各种视频服务提供商的终端设备中,例如用于互动视频的制作和编辑的服务器等。[0102] 在一个示例中,根据本申请实施例的用于互动视频的引擎架构和装置可以作为一个软件模块和/或硬件模块而集成到终端设备中。例如,该用于互动视频的引擎架构和装置可以是该终端设备的操作系统中的一个软件模块,或者可以是针对于该终端设备所开发的一个应用程序;当然,该用于互动视频的引擎架构和装置也可以实现为终端设备的众多安装有软件的硬件模块之一[0103] 替换地,在另一示例中,该用于互动视频的引擎架构和装置与该终端设备也可以是分立的设备,并且该用于互动视频的引擎架构和装置可以通过有线和/或无线网络连接到该终端设备,并且按照约定的数据格式来传输互动信息。[0104] 以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。[0105] 本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。[0106] 还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。[0107] 提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。[0108] 为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

专利地区:北京

专利申请日期:2020-03-23

专利公开日期:2024-07-26

专利公告号:CN112969098B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部