一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频处理方法和装置、计算机可读存储介质、电子设备与流程

2022-06-11 05:30:15 来源:中国专利 TAG:


1.本公开实施例涉及计算机技术领域,具体而言,涉及一种视频处理方法和装置、计算机可读存储介质以及电子设备。


背景技术:

2.在互联网的浪潮下,硬件和软件技术的发展,促进了智能设备和软件的出现。与此同时,出现了基于虚拟对象的视频,满足不同用户的需求。
3.在基于虚拟人的视频中,可以将视频中的虚拟对象的动作、表情、手势等信息迁移到另一虚拟对象中。但是,相关技术中,虚拟对象的动作、表迁、手势等的迁移需要下载视频中虚拟对象的所有功能模块的软件开发工具包,会占用用户本地机器的存储空间,后续软件开发工具包的更新也难以及时同步用户;对于下载得到的软件开发工具包需要编写功能模块的调用顺序以及组合实现的逻辑,降低了功能模块的执行效率;还需要购买功能模块的软件开发工具包运行时需要的cpu(central processing unit,中央处理器)、gpu(graphics processing unit,图形处理器)等,导致用户使用成本较高。
4.因此,需要提供一种新的视频处理方法。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开的目的在于提供一种视频处理方法、视频处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的功能模块执行效率低以及用户使用成本高的问题。
7.根据本公开的一个方面,提供一种视频处理方法,包括:
8.接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;
9.根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;
10.获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端。在本公开的一种示例性实施例中,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,包括:
11.获取所述请求信息中包括的初始视频;
12.对所述初始视频进行检测,在确定所述初始视频中包含虚拟对象时,对所述虚拟对象的活动进行解析,获取所述初始视频中包括的虚拟对象的功能;
13.根据所述初始视频中包括的虚拟对象的功能,获取与所述虚拟对象的功能对应的功能模块。
14.在本公开的一种示例性实施例中,将所述功能模块封装为微服务,包括:
15.获取执行所述功能模块需要的环境;
16.将所述功能模块以及执行所述功能模块需要的环境封装为微服务。
17.在本公开的一种示例性实施例中,在根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务之前,所述视频处理方法还包括:
18.获取所述功能模块调用链中包括的待调用功能模块,确定与所述待调用功能模块对应的目标微服务,生成与所述目标微服务对应的唯一标识;
19.将所述目标微服务以及与所述目标微服务对应的唯一标识存储至任务信息存储数据库中。
20.在本公开的一种示例性实施例中,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据,包括:
21.获取所述功能模块调用链中包括各所述待调用功能模块的调用顺序;
22.根据各所述待调用功能模块的调用顺序,执行与所述待调用功能模块对应的目标微服务,得到所述结果数据。
23.在本公开的一种示例性实施例中,根据各所述待调用功能模块的调用顺序,执行与所述待调用功能模块对应的目标微服务,得到所述结果数据,包括:
24.获取所述待调用功能模块中的起始调用功能模块,以及与所述起始调用功能模块对应的起始目标微服务、与所述起始目标微服务对应的消息队列;
25.将与所述起始目标微服务对应的服务数据写入消息队列,在响应到所述消息队列中存在服务数据时,根据所述起始目标微服务的唯一标识,在所述共享数据卷中获取执行所述起始目标微服务的依赖文件;
26.根据所述依赖文件执行所述起始目标微服务,得到中间数据;
27.利用所述中间数据以及所述起始目标微服务的下一目标微服务的依赖文件,执行所述起始目标微服务的下一目标微服务,得到所述结果数据。
28.在本公开的一种示例性实施例中,利用所述中间数据以及所述起始目标微服务的下一目标微服务的依赖文件,执行所述起始目标微服务的下一目标微服务,得到所述结果数据,包括:
29.在得到与所述起始目标微服务对应的中间数据后,将所述中间数据存储至返回队列;
30.对所述返回队列中包括的中间数据进行判断,在确定所述起始目标微服务执行完成后,获取所述起始目标微服务的下一目标微服务,并将所述下一目标微服务的服务数据写入与所述下一目标微服务对应的消息队列;
31.在响应到与所述下一目标微服务对应的消息队列中存在服务数据时,根据所述下一目标微服务的唯一标识,在所述共享数据卷中获取执行所述下一目标微服务的依赖文件;其中,所述下一目标微服务的依赖文件中至少包括所述下一目标微服务的上一目标微服务的中间数据;
32.根据所述下一目标微服务的依赖文件执行所述下一目标微服务,得到所述下一目标微服务的中间数据,直至与所述待调用功能模块对应的目标微服务全部执行完,得到所
述结果数据。
33.在本公开的一种示例性实施例中,在得到所述结果数据之后,所述视频处理方法还包括:
34.获取所述请求信息中包括的结果返回文件,根据所述结果返回文件中包括的待返回结果的功能模块,确定与所述待返回结果的功能模块对应的待返回结果的目标微服务;
35.将执行所述目标微服务得到的中间数据以及所述结果数据上传至文件对象存储;
36.生成与所述待返回结果的目标微服务的中间数据对应的下载链接,以及所述结果数据的下载链接,将下载链接发送至所述客户端。
37.在本公开的一种示例性实施例中,利用所述目标模型文件以及所述结果数据,生成目标视频,包括:
38.获取所述目标模型文件中包括的目标虚拟对象骨骼数据;
39.根据所述目标虚拟对象骨骼数据以及所述结果数据,生成所述目标视频。
40.根据本公开的一个方面,提供一种视频处理装置,包括:
41.功能封装模块,用于接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;
42.结果数据生成模块,用于根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;
43.目标视频生成模块,用于获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端。
44.根据本公开的一个方面,提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一示例性实施例所述的视频处理方法。
45.根据本公开的一个方面,提供一种电子设备,包括:
46.处理器;以及
47.存储器,用于存储所述处理器的可执行指令;
48.其中,所述处理器配置为经由执行所述可执行指令来执行上述任一示例性实施例所述的视频处理方法。
49.本公开实施例提供的一种视频处理方法,接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端;一方面,在接收到客户端的请求信息之后,对客户端发送的请求信息中包括的初始视频进行解析,得到初始视频中包括的功能模块,并且将功能模块封装为微服务,解决了现有技术中需要下载虚拟对象的所有功能模块的软件开发工具包,占用本地机器的存储空间的问题,以及用户在执行功能模块的软件开发工具包时需要购买相对应的软件环境以及硬件环境的问题,降低了用户本地存储空间容量的消耗,降低了用户的资源消耗;另一方面,根据请求信息中包括的功能模块调用链,确定微服务中与功能模块调用链对应的目标微服务,并执行目标微服务,解决了相关技术中需要
对下载的软件开发工具包编写调用顺序以及组合实现的逻辑的问题,可以根据功能模块调用链执行目标微服务,提高了功能模块的执行效率。
50.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
51.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1示意性示出根据本公开示例实施例的一种视频处理的方法流程图。
53.图2示意性示出根据本公开示例实施例的一种视频处理系统的框图。
54.图3示意性示出根据本公开示例实施例的一种对请求信息中的初始视频进行解析,得到初始视频中包括的功能模块的方法流程图。
55.图4示意性示出根据本公开示例实施例的一种将功能模块封装为微服务的方法流程图。
56.图5示意性示出根据本公开示例实施例的一种获取微服务中包括的目标微服务之前视频处理方法的流程图。
57.图6示意性示出根据本公开示例实施例的一种执行目标微服务,得到结果数据的方法流程图。
58.图7示意性示出根据本公开示例实施例的一种根据待调用功能模块的调用顺序执行与待调用功能模块对应的目标微服务得到结果数据的方法流程图。
59.图8示意性示出根据本公开示例实施例的一种利用中间数据以及起始目标微服务的下一目标微服务的依赖文件,执行下一目标微服务,得到结果数据的方法流程图。
60.图9示意性示出根据本公开示例实施例的一种得到结果数据之后视频处理方法的流程图。
61.图10示意性示出根据本公开示例实施例的一种利用目标模型文件以及结果数据生成目标视频的方法流程图。
62.图11示意性示出根据本公开示例实施例的一种视频处理装置的框图。
63.图12示意性示出根据本公开示例实施例的用于实现上述视频处理方法的电子设备。
具体实施方式
64.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方
法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
65.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
66.对于基于虚拟对象的视频,可以将视频中虚拟对象的动作、表情、手势等信息迁移到另一个虚拟对象上,具体的,对视频中虚拟对象的动作、表情、手势经过识别、处理,输出视频中的关键数据,包括:虚拟对象表情数据集以及虚拟对象动作模型文件,并将输出的关键数据应用至新的虚拟对象。在相关技术中,对视频中的虚拟对象的动作、表情、手势等进行迁移时,首先,下载视频中虚拟对象的所有功能模块的软件开发工具包,下载好功能模块的软件开发工具包之后,通过代码编写功能模块的软件开发工具包的调用顺序以及组合方式的逻辑;然后,购买运行功能模块的软件开发工具包需要的cpu、gpu,并且搭建执行软件开发工具包的硬件环境以及软件环境。准备好所有执行环境后,执行用户编写好的代码,将待处理的视频作为输入,进而得到待处理视频的关键数据。但是,通过编写好的代码对待处理视频进行处理时,会占用用户机器大量硬件资源,还可能对用户同时运行的其他软件造成影响。
67.基于上述一个或者多个问题,本示例实施方式中首先提供了一种视频处理方法,该方法可以运行于服务器、服务器云集或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该视频处理方法可以包括以下步骤:
68.步骤s110.接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;
69.步骤s120.根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;
70.步骤s130.获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端。
71.上述视频处理方法,接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端;一方面,在接收到客户端的请求信息之后,对客户端发送的请求信息中包括的初始视频进行解析,得到初始视频中包括的功能模块,并且将功能模块封装为微服务,解决了现有技术中需要下载虚拟对象的所有功能模块的软件开发工具包,占用本地机器的存储空间的问题以及用户在执行功能模块的软件开发工具包时需要购买相对应的软件环境以及硬件环境的问题,降低了用户本地存储空间容量的消耗,降低了用户的资源消耗;另一方面,根据请求信息中包括的功能模块调用链,确定微服务中与功能模块调用链
对应的目标微服务,并执行目标微服务,解决了相关技术中需要对下载的软件开发工具包编写调用顺序以及组合实现的逻辑的问题,可以根据功能模块调用链执行目标微服务,提高了功能模块的执行效率。
72.以下,对本公开示例实施例的视频处理方法中涉及的各步骤进行详细的解释以及说明。
73.首先,对本公开示例实施例的应用场景以及目的进行解释以及说明。具体的,本公开示例实施例可以应用于视频中虚拟对象的动作、表情、手势等的迁移,主要研究如何提高初始视频中虚拟对象的迁移效率。
74.在本公开中以接收到的请求信息为基础,当接收到客户端发送的请求信息之后,对请求信息中包括的初始视频进行解析,得到初始视频中包括的虚拟对象的功能模块,对解析得到的功能模块进行封装,得到微服务,降低了用户执行功能模块的资源消耗;然后,利用请求信息中包括的功能模块调用链确定需要执行目标微服务以及目标微服务的执行顺序,获取目标微服务执行时需要的依赖文件,根据依赖文件对目标微服务进行执行,得到结果文件,提高了功能模块的执行效率;最后,根据结果文件以及请求信息中包括的目标模型文件中包括的目标虚拟对象的骨骼数据,生成目标视频,提高了初始视频中虚拟对象迁移的效率。
75.其次,对本公开示例实施例中涉及到的视频处理系统进行解释以及说明。参考图2所示,该视频处理系统可以包括客户端210以及服务端220。其中,客户端210,用于生成请求信息,其中,请求信息中包括初始视频、功能模块调用链、结果返回文件以及目标模型文件;将请求信息发送至服务端220。服务端220,与客户端210网络连接,其中,包括应用程序编程接口服务221、任务调度模块222、消息队列223、功能模块224、结果处理模块225以及存储模块226。其中,应用程序编程接口服务221用于接收客户端发送的请求信息,针对请求信息中的初始视频新建任务状态,其中,任务为目标微服务,将该任务状态存储至存储模块226的任务信息存储数据库2261,以及将任务信息发送至消息队列223;并且提供目标微服务执行状态的查询服务以及中间数据或者结果数据的下载链接的查询服务;任务调度模块222,与消息队列223网络连接,用于接收消息队列发送的任务信息,根据任务信息中的功能模块调用链对与功能模块调用链中功能模块对应的目标微服务进行调度;消息队列223与任务调度模块222网络连接,用于响应与目标微服务对应的消息队列中的服务数据,根据监听到的服务数据执行对应的功能模块224中包括的功能模块;其中,消息队列中可以包括任务队列、虚拟对象检测队列、动作迁移消息队列、maya消息队列、返回队列以及结果队列;功能模块224,与消息队列223网络连接,可以包括虚拟对象检测模块、动作迁移功能模块以及maya(三维建模和动画软件)功能模块,用于根据消息队列中包括的服务数据执行与该服务数据对应的目标微服务,将执行目标微服务产生的中间数据以及结果数据存储至存储模块226的共享数据卷2263中,同时将中间数据、结果数据以及任务信息发送至消息队列的返回队列中;结果处理模块225,与消息队列223网络连接,用于接收消息队列中结果队列发送的已经执行完成的目标微服务以及执行出错的目标微服务,将执行完成的目标微服务的中间数据存储至存储模块226的文件对象存储数据库2262中,并生成与目标微服务产生的中间数据对应的下载链接;并将任务结束状态存储至存储模块226的任务信息存储数据库2261中。
76.以下,将结合图2对步骤s110-步骤s130进行详细的解释以及说明。
77.在步骤s110中,接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务。
78.其中,请求信息中包括初始视频,在本示例实施例中是将初始视频中包括的虚拟对象的表情、动作、手势等迁移至目标虚拟对象上,以生成目标视频。初始视频的功能模块是根据虚拟对象在初始视频中的活动确定的,虚拟对象在初始视频中的活动可以为虚拟对象的表情变化,也可以为虚拟对象的动作变化,还可以为虚拟对象的手势变化,在本示例实施例中对虚拟对象在初始视频中的活动不做具体限定;例如,可以利用虚拟对象在初始视频中的表情变化生成表情迁移功能模块,可以根据虚拟对象在初始视频中的手势变化生成手势迁移功能模块,还可以根据虚拟对象在初始视频中的动作变化生成动作迁移功能模块,在本示例实施例中,对初始视频中包括的功能模块不做具体限定。可以将初始视频中包括的功能模块以及执行该功能模块需要的硬件环境以及软件环境封装为与功能模块对应的微服务。
79.此外,在本示例实施例中,也可以由系统提供视频中包括的虚拟对象的功能模块,系统提供的虚拟对象的功能模块可以包括虚拟对象的表情迁移功能模块、手势迁移功能模块、动作迁移功能模块等,系统中提供的虚拟对象的功能模块为基础功能模块,在本示例实施例中对系统提供的基础功能模块不做具体限定。当接收到客户端发送的请求信息之后,对请求信息中包括的初始视频进行解析,根据初始视频中虚拟对象的活动,在系统中获取与虚拟对象的活动对应的功能模块,并将获取到的功能模块封装为微服务。当功能模块为系统中提供时,可以实现多个请求分时使用同一套资源,提高了资源利用率,降低了成本。
80.在本示例实施例中,参考图3所示,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,可以包括步骤s310-步骤s330:
81.步骤s310.获取所述请求信息中包括的初始视频;
82.步骤s320.对所述初始视频进行检测,在确定所述初始视频中包含虚拟对象时,对所述虚拟对象的活动进行解析,获取所述初始视频中包括的虚拟对象的功能;
83.步骤s330.根据所述初始视频中包括的虚拟对象的功能,获取与所述虚拟对象的功能对应的功能模块。
84.以下,将对步骤s310-步骤s330进行进一步的解释以及说明。具体的,当服务端接收到客户端发送的请求信息之后,首先,获取请求信息中包括的初始视频,对初始视频进行检测,在确定接收到的初始视频中包括虚拟对象时,对虚拟对象在初始视频中的活动进行解析,其中,虚拟对象在初始视频中的活动可以包括虚拟对象在初始视频中的表情变化、手势变化、动作变化等,在本示例实施例中对虚拟对象的活动不做具体限定;根据虚拟对象在初始视频中的活动,得到初始视频中包括的虚拟对象的功能,例如,当虚拟对象在初始视频中存在表情变化时,可以获取虚拟对象的表情功能;当虚拟对象在初始视频中存在手势变化时,可以获取虚拟对象的手势功能;当虚拟对象在初始视频中存在动作变化时,可以获取虚拟对象的动作功能,在本示例实施例中对获取到的虚拟对象的功能不做具体限定。当获取到虚拟对象的功能之后,可以根据获取到的功能获取与虚拟对象的功能对应的功能模块,其中,功能模块中包括与虚拟对象的功能对应的代码。
85.在本示例实施例中,得到初始视频中包括的功能模块还可以包括:当获取到请求信息中包括的初始视频之后,对初始视频进行检测,在确定初始视频中包括虚拟对象时,对
虚拟对象的活动进行解析,得到虚拟对象的活动;然后,基于解析得到的虚拟对象的活动在系统中获取与虚拟对象的活动对应的功能模块,通过在系统中获取与虚拟对象的活动对应的功能模块,不需要根据虚拟对象的活动生成功能模块,提高了资源利用率,降低了成本。
86.当获取到初始视频中包括的虚拟对象的功能模块之后,可以对获取到的功能模块进行封装,得到微服务,在本示例实施例中,参考图4所示,将所述功能模块封装为微服务,可以包括步骤s410以及步骤s420:
87.步骤s410.获取执行所述功能模块需要的环境;
88.步骤s420.将所述功能模块以及执行所述功能模块需要的环境封装为微服务。
89.以下,将对步骤s410、步骤s420进行进一步的解释以及说明。具体的,首先,获取执行功能模块需要的环境,主要为获取执行软件功能模块的软件工具开发包需要的环境,该环境包括软件环境以及硬件环境。举例而言,当执行功能模块的软件开发工具包需要依赖maya、cuda(compute unified device architecture,统一计算设备架构)、pytorch(开源的python机器学习库)等软件环境,对硬件资源具有较高的要求,需要特定型号的cpu和gpu时,可以将执行该功能模块的软件工具开发包需要依赖的maya、cuda、pytorch等软件环境以及特定型号的cpu和gpu,与该功能模块封装为微服务。其中,每个功能模块可以根据自身的资源使用量弹性扩缩容,也可以读取相同的共享数据卷,该共享数据卷中存放了与功能模块对应的微服务执行时需要的依赖文件;微服务是以专注于单一责任与功能的小型功能区块为基础,利用模块化的方式组合出复杂的大型应用程序。当得到与功能模块对应的微服务之后,可以开放微服务的注册接口,方便后续添加其他的软件开发工具包。封装得到的微服务分布式部署在云服务器上;其中,分布式部署将需要进行大量计算的工程分割成小块,由多台计算机分别进行计算,再上传各计算机的运算结果,将各计算机的运算结果统一合并,得到结果;当客户端提交请求信息之后,不需要用户自行编写功能模块执行顺序以及组合逻辑,提高了功能模块的执行效率。
90.在本示例实施例中,通过将功能模块执行时需要的软件环境以及硬件环境与该功能模块封装为微服务,解决了用户使用任意功能模块的软件工具开发包时需要单独安装软件环境以及准备硬件环境的问题,降低了对用户本地存储资源的消耗,提高了资源利用率。
91.在步骤s120中,根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据。
92.其中,功能模块调用链包括客户端需要调用的功能模块以及各需要调用的功能模块的调用顺序,根据各需要调用的功能模块的调用顺序可以确定与各需要调用的功能模块对应的目标微服务的执行顺序;结果数据为依次执行目标微服务,当最后一个目标微服务执行完成后得到的数据。可以根据前一目标微服务的中间数据,得到结果数据;中间数据为目标微服务执行成功时生成的数据,可以将中间数据以及结果数据存储至存储模块的共享数据卷中。
93.在本示例实施例中,参考图5所示,在根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务之前,所述视频处理方法还可以包括步骤s510以及步骤s520:
94.步骤s510.获取所述功能模块调用链中包括的待调用功能模块,确定与所述待调用功能模块对应的目标微服务,生成与所述目标微服务对应的唯一标识;
95.步骤s520.将所述目标微服务以及与所述目标微服务对应的唯一标识存储至任务信息存储数据库中。
96.以下,将对步骤s510、步骤s520进行进一步的解释以及说明。具体的,首先,获取功能模块调用链中包括的待调用功能模块,在微服务中,确定与该待调用功能模块对应的目标微服务,生成目标微服务的唯一标识,并在存储模块的任务信息存储数据库中生成一个与目标微服务对应的任务信息,对目标微服务以及目标微服务的唯一标识进行存储。
97.在本示例实施例中,参考图6所示,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据,可以包括步骤s610、步骤s620:
98.步骤s610.获取所述功能模块调用链中包括各所述待调用功能模块的调用顺序;
99.步骤s620.根据各所述待调用功能模块的调用顺序,执行与所述待调用功能模块对应的目标微服务,得到所述结果数据。
100.以下,将对步骤s610、步骤s620进行进一步的解释以及说明。具体的,当获取到客户端的请求信息之后,首先,获取请求信息中的功能模块调用链中包括的待调用功能模块以及各待调用功能模块的调用顺序,其中,功能模块调用链中至少包括一个待调用功能模块;当得到待调用功能模块以及其调用顺序之后,可以确定与待调用功能模块对应的微服务中包括的目标微服务以及各目标微服务的执行顺序,根据该执行顺序对各目标微服务进行执行,得到结果数据。
101.进一步的,参考图7所示,根据各所述待调用功能模块的调用顺序,执行与所述待调用功能模块对应的目标微服务,得到所述结果数据,可以包括步骤s710-步骤s740:
102.步骤s710.获取所述待调用功能模块中的起始调用功能模块,以及与所述起始调用功能模块对应的起始目标微服务、与所述起始目标微服务对应的消息队列;
103.步骤s720.将与所述起始目标微服务对应的服务数据写入消息队列,在响应到所述消息队列中存在服务数据时,根据所述起始目标微服务的唯一标识,在所述共享数据卷中获取执行所述起始目标微服务的依赖文件;
104.步骤s730.根据所述依赖文件执行所述起始目标微服务,得到中间数据;
105.步骤s740.利用所述中间数据以及所述起始目标微服务的下一目标微服务的依赖文件,执行所述起始目标微服务的下一目标微服务,得到所述结果数据。
106.以下,将对步骤s710-步骤s740进行进一步的解释以及说明。具体的,对目标微服务进行执行时,首先,获取与功能模块调用链中包括的起始待调用功能模块、与起始待调用功能模块对应的起始目标微服务,以及与起始目标微服务对应的消息队列,任务调度模块将起始目标微服务的服务数据写入对应的消息队列中,初始视频中虚拟对象的功能模块会实时监听对应的消息队列,当起始功能模块监听到与起始目标微服务对应的消息队列中存在服务数据时,主动读取该服务数据,根据该服务数据对应的起始目标微服务的唯一标识,在共享数据卷中获取执行起始目标微服务的依赖文件,当获取到依赖文件之后,根据依赖文件执行起始目标微服务,得到中间数据;然后,获取起始目标微服务的下一目标微服务,利用起始目标微服务的中间数据以及下一目标微服务的依赖文件,执行下一目标微服务,得到结果数据。
107.在进一步的,参考图8所示,利用所述中间数据以及所述起始目标微服务的下一目
标微服务的依赖文件,执行所述起始目标微服务的下一目标微服务,得到所述结果数据,可以包括步骤s810-步骤s840:
108.步骤s810.在得到与所述起始目标微服务对应的中间数据后,将所述中间数据存储至返回队列;
109.步骤s820.对所述返回队列中包括的中间数据进行判断,在确定所述起始目标微服务执行完成后,获取所述起始目标微服务的下一目标微服务,并将所述下一目标微服务的服务数据写入与所述下一目标微服务对应的消息队列;
110.步骤s830.在响应到与所述下一目标微服务对应的消息队列中存在服务数据时,根据所述下一目标微服务的唯一标识,在所述共享数据卷中获取执行所述下一目标微服务的依赖文件;其中,所述下一目标微服务的依赖文件中至少包括所述下一目标微服务的上一目标微服务的中间数据;
111.步骤s840.根据所述下一目标微服务的依赖文件执行所述下一目标微服务,得到所述下一目标微服务的中间数据,直至与所述待调用功能模块对应的目标微服务全部执行完,得到所述结果数据。
112.以下,将对步骤s810-步骤s840进行进一步的解释以及说明。具体的,当起始目标微服务执行完毕得到中间数据之后,可以将中间数据以及与中间数据对应的起始目标微服务的服务数据存储至返回队列中,返回队列将目标微服务、执行该目标微服务产生的中间数据发送至任务调度模块,任务调度模块对接收到的目标微服务、与目标微服务对应的服务数据以及执行该目标微服务得到的中间数据进行判断,确定与中间数据对应的目标微服务是否成功执行,当成功执行时,获取起始目标微服务的下一目标微服务,将该下一目标微服务的服务数据写入与下一目标微服务对应的消息队列中,以使得与下一目标微服务对应的功能模块监听到对应的消息队列中存在服务数据时,主动读取该服务数据,根据该服务数据的唯一标识在共享数据卷中获取执行该下一目标微服务的依赖文件,其中,下一目标微服务的依赖文件中至少包括执行当前目标微服务的上一目标微服务得到的中间数据,并根据获取到的依赖文件执行下一目标微服务,得到下一目标微服务的中间数据,将下一目标微服务的中间数据存储至返回队列中;重复上述执行步骤,直至与待调用功能模块对应的目标微服务全部执行成功,得到结果数据。
113.在本示例实施例中,参考图9所示,在得到所述结果数据之后,所述视频处理方法还可以包括步骤s910-步骤s930:
114.步骤s910.获取所述请求信息中包括的结果返回文件,根据所述结果返回文件中包括的待返回结果的功能模块,确定与所述待返回结果的功能模块对应的待返回结果的目标微服务;
115.步骤s920.将执行所述目标微服务得到的中间数据以及所述结果数据上传至文件对象存储;
116.步骤s930.生成与所述待返回结果的目标微服务的中间数据对应的下载链接,以及所述结果数据的下载链接,将下载链接发送至所述客户端。
117.以下,将对步骤s910-步骤s930进行进一步的解释以及说明。具体的,首先,获取客户端发送的请求信息中包括的结果返回文件,其中,该结果返回文件中记载了执行完与待调用功能模块对应的目标微服务后,需要返回中间结果的待调用功能模块,即,根据结果返
回文件中包括的待返回结果的功能模块,确定需要返回中间数据的目标微服务;然后,将目标微服务执行得到的中间数据以及结果数据全部上传至文件对象存储,上传完成后生成与待返回结果的目标微服务的中间数据对应的下载链接,结果处理模块将下载链接存储至任务信息存储数据库,当与该中间数据对应的目标微服务的服务数据中指定需要发送邮件时,将与待返回结果的目标微服务的中间数据对应的下载链接通过邮件发送至对应的邮箱中。
118.此外,在目标微服务执行过程中可以实时通过websocket(一种在单个tcp连接上进行全双工通信的协议)接口从应用程序编程接口服务中查询目标微服务的执行状态,还可以在目标微服务执行完成后,在应用程序编程接口服务中查询中间数据或者结果数据的下载链接。其中,通过websocket接口弥补了传统http(hyper text transfer protocol,超文本传输协议)等的协议中只能客户端发送请求,服务端只能响应客户端请求的问题。
119.在本示例实施例中,通过请求信息中的功能模块调用链确定微服务中包括的目标微服务以及目标微服务的执行顺序,并根据该执行顺序执行目标微服务,得到结果数据,解决了相关技术中需要由用户编写调用顺序以及组合方式的逻辑,提高了功能模块的执行效率;并且对与单个请求信息而言,每个目标微服务的执行虽然存在先后依赖关系,但是,在接收到多个请求信息时,与每个请求信息对应的目标微服务可以并行执行,进一步提高了执行效率。
120.在步骤s130中,获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端。
121.其中,目标模型文件为目标虚拟对象模型静态文件,主要为目标虚拟对象的骨骼数据。
122.在本示例实施例中,参考图10所示,利用所述目标模型文件以及所述结果数据,生成目标视频,可以包括步骤s1010以及步骤s1020:
123.步骤s1010.获取所述目标模型文件中包括的目标虚拟对象骨骼数据;
124.步骤s1020.根据所述目标虚拟对象骨骼数据以及所述结果数据,生成所述目标视频。
125.以下,将对步骤s1010、步骤s1020进行进一步的解释以及说明。具体的,当得到目标微服务执行完生成的结果数据之后,可以获取请求信息中包括的目标模型文件,根据目标模型文件中包括的目标虚拟对象的骨骼数据以及结果数据生成目标视频。在生成目标视频之后,可以将目标视频发送至客户端。
126.本公开示例实施例提供的视频处理方法至少具有以下优点:一方面,当接收到客户端发送的请求信息之后,对请求信息中包括的初始视频进行解析,获取初始视频中包括的功能模块,解决了相关技术中,用户需要下载初始视频中功能模块的软件工具开发包的问题,降低了用户存储资源的消耗;另一方面,当得到初始视频中包括的功能模块之后,对执行该功能模块需要的硬件环境与软件环境进行封装,得到与功能模块对应的微服务,解决了相关技术中,在调用功能模块的软件开发工具包时需要提前购买软件环境或者硬件环境的问题,降低了用户根据初始视频生成目标视频的成本;再一方面,根据请求信息中的功能模块调用链确定与待调用功能模块对应的目标微服务以及目标微服务的执行顺序,并根据目标微服务的执行顺序执行目标微服务,解决了相关技术中需要用户编写调用顺序以及
组合方式的逻辑的问题,提高了目标微服务的执行效率。
127.本公开示例实施例还提供了一种视频处理装置,参考图11所示,可以包括:功能封装模块1110、结果数据生成模块1120以及目标视频生成模块1130。其中:
128.功能封装模块1110,用于接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;
129.结果数据生成模块1120,用于根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;
130.目标视频生成模块1130,用于获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端。
131.上述视频处理装置中各模块的具体细节已经在对应的视频处理方法中进行了详细的描述,因此此处不再赘述。
132.在本公开的一种示例性实施例中,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,包括:
133.获取所述请求信息中包括的初始视频;
134.对所述初始视频进行检测,在确定所述初始视频中包含虚拟对象时,对所述虚拟对象的活动进行解析,获取所述初始视频中包括的虚拟对象的功能;
135.根据所述初始视频中包括的虚拟对象的功能,获取与所述虚拟对象的功能对应的功能模块。
136.在本公开的一种示例性实施例中,将所述功能模块封装为微服务,包括:
137.获取执行所述功能模块需要的环境;
138.将所述功能模块以及执行所述功能模块需要的环境封装为微服务。
139.在本公开的一种示例性实施例中,在根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务之前,所述视频处理方法还包括:
140.获取所述功能模块调用链中包括的待调用功能模块,确定与所述待调用功能模块对应的目标微服务,生成与所述目标微服务对应的唯一标识;
141.将所述目标微服务以及与所述目标微服务对应的唯一标识存储至任务信息存储数据库中。
142.在本公开的一种示例性实施例中,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据,包括:
143.获取所述功能模块调用链中包括各所述待调用功能模块的调用顺序;
144.根据各所述待调用功能模块的调用顺序,执行与所述待调用功能模块对应的目标微服务,得到所述结果数据。
145.在本公开的一种示例性实施例中,根据各所述待调用功能模块的调用顺序,执行与所述待调用功能模块对应的目标微服务,得到所述结果数据,包括:
146.获取所述待调用功能模块中的起始调用功能模块,以及与所述起始调用功能模块对应的起始目标微服务、与所述起始目标微服务对应的消息队列;
147.将与所述起始目标微服务对应的服务数据写入消息队列,在响应到所述消息队列中存在服务数据时,根据所述起始目标微服务的唯一标识,在所述共享数据卷中获取执行所述起始目标微服务的依赖文件;
148.根据所述依赖文件执行所述起始目标微服务,得到中间数据;
149.利用所述中间数据以及所述起始目标微服务的下一目标微服务的依赖文件,执行所述起始目标微服务的下一目标微服务,得到所述结果数据。
150.在本公开的一种示例性实施例中,利用所述中间数据以及所述起始目标微服务的下一目标微服务的依赖文件,执行所述起始目标微服务的下一目标微服务,得到所述结果数据,包括:
151.在得到与所述起始目标微服务对应的中间数据后,将所述中间数据存储至返回队列;
152.对所述返回队列中包括的中间数据进行判断,在确定所述起始目标微服务执行完成后,获取所述起始目标微服务的下一目标微服务,并将所述下一目标微服务的服务数据写入与所述下一目标微服务对应的消息队列;
153.在响应到与所述下一目标微服务对应的消息队列中存在服务数据时,根据所述下一目标微服务的唯一标识,在所述共享数据卷中获取执行所述下一目标微服务的依赖文件;其中,所述下一目标微服务的依赖文件中至少包括所述下一目标微服务的上一目标微服务的中间数据;
154.根据所述下一目标微服务的依赖文件执行所述下一目标微服务,得到所述下一目标微服务的中间数据,直至与所述待调用功能模块对应的目标微服务全部执行完,得到所述结果数据。
155.在本公开的一种示例性实施例中,在得到所述结果数据之后,所述视频处理方法还包括:
156.获取所述请求信息中包括的结果返回文件,根据所述结果返回文件中包括的待返回结果的功能模块,确定与所述待返回结果的功能模块对应的待返回结果的目标微服务;
157.将执行所述目标微服务得到的中间数据以及所述结果数据上传至文件对象存储;
158.生成与所述待返回结果的目标微服务的中间数据对应的下载链接,以及所述结果数据的下载链接,将下载链接发送至所述客户端。
159.在本公开的一种示例性实施例中,利用所述目标模型文件以及所述结果数据,生成目标视频,包括:
160.获取所述目标模型文件中包括的目标虚拟对象骨骼数据;
161.根据所述目标虚拟对象骨骼数据以及所述结果数据,生成所述目标视频。
162.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
163.此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,
164.但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合
并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
165.在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
166.所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
167.下面参照图12来描述根据本公开的这种实施方式的电子设备1200。图12显示的电子设备1200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
168.如图12所示,电子设备1200以通用计算设备的形式表现。电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230以及显示单元1240。
169.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1210执行,使得所述处理单元1210执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1410可以执行如图1中所示的步骤s110:接收客户端发送的请求信息,对所述请求信息中包括的初始视频进行解析,得到所述初始视频中包括的功能模块,并将所述功能模块封装为微服务;s120:根据所述请求信息中包括的功能模块调用链,获取所述微服务中包括的与所述功能模块调用链对应的目标微服务,并执行所述目标微服务,得到结果数据;s130:获取所述请求信息中包括的目标模型文件,利用所述目标模型文件以及所述结果数据,生成目标视频,并将所述目标视频发送至所述客户端。
170.存储单元1220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)12201和/或高速缓存存储单元12202,还可以进一步包括只读存储单元(rom)12203。
171.存储单元1220还可以包括具有一组(至少一个)程序模块12205的程序/实用工具12204,这样的程序模块12205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
172.总线1230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
173.电子设备1200也可以与一个或多个外部设备1300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1200交互的设备通信,和/或与使得该电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1250进行。并且,电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
174.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开
实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
175.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
176.根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
177.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
178.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
179.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
180.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
181.此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
182.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者
适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献