CN117793271A - 视频合成方法及电子设备 - Google Patents
视频合成方法及电子设备 Download PDFInfo
- Publication number
- CN117793271A CN117793271A CN202311523463.1A CN202311523463A CN117793271A CN 117793271 A CN117793271 A CN 117793271A CN 202311523463 A CN202311523463 A CN 202311523463A CN 117793271 A CN117793271 A CN 117793271A
- Authority
- CN
- China
- Prior art keywords
- template
- video
- service
- video composition
- animation
- 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.)
- Pending
Links
- 238000001308 synthesis method Methods 0.000 title abstract description 6
- 239000000203 mixture Substances 0.000 claims abstract description 133
- 238000000034 method Methods 0.000 claims abstract description 92
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 91
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 91
- 239000000463 material Substances 0.000 claims abstract description 88
- 238000009877 rendering Methods 0.000 claims abstract description 43
- 238000004519 manufacturing process Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims description 43
- 238000013473 artificial intelligence Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000006399 behavior Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 4
- 239000000523 sample Substances 0.000 claims 1
- 230000000694 effects Effects 0.000 description 7
- 238000009517 secondary packaging Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005287 template synthesis Methods 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例公开了视频合成方法及电子设备,所述方法包括:响应于针对目标商品的视频合成请求,并获取所述请求中携带的所述目标商品关联的素材资源信息;从模板库中确定至少一个第一模板,所述第一模板为使用通用性模板生产工具生成的用于描述视频合成规则的模板;利用所述素材资源信息对所述至少一个第一模板中描述的资源信息进行替换,并利用自定义的视频描述协议封装为第二模板;对所述第二模板进行解析,生成目标视频合成引擎可执行的指令,以便所述目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。通过本申请实施例,能够实现自动化的视频生产,支持跨端渲染,可以直接进行投放。
Description
技术领域
本申请涉及视频合成技术领域,特别是涉及视频合成方法及电子设备。
背景技术
在很多信息服务系统中,视频都是一种重要的信息表达方式。例如,在商品信息服务系统中,视频对于描述商品信息等方面起着很重要的作用,在很多场景页面中都需要通过视频的方式向用户表达具体商品的信息。其中,具体的视频包括从直播中录制并截取的讲解视频,或者,专门录制的讲解视频,等等。对于关联有这种讲解视频的商品,在向用户进行商品推荐的页面中,可以将商品的讲解视频展示在资源位中,或者,在商品详情页面中,也可以提供商品的讲解视频链接,以便用户通过查看这种讲解视频获得关于商品的详细信息,等等。
但是,在实际应用中,很多商家可能没有为商品录制讲解视频,甚至可能连普通视频都没有,此时,可能会影响商品的点击率、转化率等指标的提升。
发明内容
本申请提供了视频合成方法及电子设备,能够实现自动化的视频生产,并且能够使用通过通用性模板制作工作制作出的模板,生成视频格式的文件,从而支持跨端渲染,可以直接向多种应用场景中投放。
本申请提供了如下方案:
一种视频合成方法,所述方法应用于视频合成服务,所述方法包括:
响应于针对目标商品的视频合成请求,并获取所述请求中携带的所述目标商品关联的素材资源信息;
从模板库中确定至少一个第一模板,所述第一模板为使用通用性模板生产工具生成的用于描述视频合成规则的模板;
利用所述素材资源信息对所述至少一个第一模板中描述的资源信息进行替换,并利用自定义的视频描述协议封装为第二模板;
对所述第二模板进行解析,生成目标视频合成引擎可执行的指令,以便所述目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
其中,所述目标视频合成引擎为支持在中央处理器CPU中运行的服务引擎。
其中,所述针对目标商品的视频合成请求是由素材资源生成服务发起的,所述素材资源生成服务用于获取目标商品的描述信息,并通过人工智能AI大语言模型对所述描述信息进行模型理解,生成所述素材资源,所述素材资源包括用于进行视频合成的图片、讲解文案和/或语音素材。
其中,如果从模板库中确定的第一模板为多个,则所述方法还包括:
在时间维度上对所述多个第一模板进行拼接,以便对拼接后的模板进行资源替换。
其中,在所述利用自定义的视频描述协议封装为第二模板时,还包括:
通过所述自定义的视频描述协议添加视频合成规则和/或素材资源,并与进行了资源替换后的第一模板一起封装为所述第二模板。
其中,在对所述第二模板进行解析,生成目标视频合成引擎可执行的指令的过程中,包括:
将所述第一模板转换为二进制流式输入信息,以便所述目标视频合成引擎通过对所述二进制流式输入信息进行处理,生成视频格式的文件。
其中,所述将所述第一模板中的资源转换为二进制流式输入信息,包括:
将以描述文件形式存在的所述第一模板渲染为对应的动画;
根据所述动画中各帧画面的像素点信息确定所述二进制流式输入信息。
其中,所述视频合成服务运行于服务器中,所述将以描述文件形式存在的所述第一模板渲染为对应的动画,包括:
利用在服务器端通过模拟网页浏览器的行为创建的网页,对开源的软件开发工具包SDK进行加载,所述SDK用于将以描述文件形式存在的所述第一模板渲染为对应的帧动画。
其中,所述根据所述动画中各帧画面的像素点信息确定所述二进制流式输入信息,包括:
通过调用浏览器自带的用于进行Web音视频编解码的API,对所述第一模板对应的动画逐帧编码为二进制流式输入信息,以便浏览器进程与所述视频合成服务的主进程之间通过单次通信完成数据传输,并在所述视频合成服务的主进程中对二进制流式输入信息进行封装,以生成视频格式的文件。
其中,所述视频合成服务用于对多个目标商品进行批量化视频合成,其中,每个视频合成服务进程用于执行单个目标商品对应的视频合成任务;
所述方法还包括:
对所述网页浏览器进行空闲网页监测,在监测到空闲网页时,利用所述空闲网页加载所述SDK,以用于执行当前视频合成任务中的流式输入转换处理。
其中,所述利用在服务器端通过模拟网页浏览器的行为创建的网页,对软件开发工具包SDK进行加载,包括:
对于动画帧数大于预设阈值的第一模板,将所述第一模板对应的动画切分为多段,并利用分别在不同网页中加载的SDK对所述第一模板对应的动画进行分段渲染。
其中,所述视频合成服务运行于服务器中,所述将所述第一模板中的资源转换为二进制流式输入信息,包括:
通过在服务器环境中执行的降级版SDK对所述第一模板进行逐帧的解码,以生成所述二进制流式输入信息,其中,所述降级版SDK通过以下方式获得:对开源的原生SDK进行改写,将其中依赖于网页浏览器环境中的函数或二方库,替换为服务器环境中具有相同或相似功能的函数或二方库;所述SDK用于将以描述文件形式存在的所述第一模板渲染为对应的帧动画。
一种视频合成装置,所述装置应用于视频合成服务,包括:
请求接收单元,用于响应于针对目标商品的视频合成请求,并获取所述请求中携带的所述目标商品关联的素材资源信息;
模板确定单元,用于从模板库中确定至少一个第一模板,所述第一模板为使用通用性模板生产工具生成的用于描述视频合成规则的模板;
模板封装单元,用于利用所述素材资源信息对所述至少一个第一模板中描述的资源信息进行替换,并利用自定义的视频描述协议封装为第二模板;
模板解析单元,用于对所述第二模板进行解析,生成目标视频合成引擎可执行的指令,以便所述目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述的方法的步骤。
一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述任一项所述的方法的步骤。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请实施例,能够提供视频合成服务,该服务中可以实现对使用通用性模板制作工具制作的模板进行视频合成的支持,并可以将模板中的资源替换成具体商品对应的素材资源;另外,还可以通过自定义的视频描述协议,对通用性的模板进行二次封装。之后,还可以对二次封装后的模板进行解析,生成视频合成引擎可执行的指令,以便由该视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。通过这种方式,可以基于使用通用性模板制作工具制作的模板进行视频合成,模板的可复用性高,避免增加设计师的学习成本,另外,由于通用性模板制作工具具有规范的设计语言与丰富的特效视觉效果,因此,使用这种工具制作的模板可以获得更好的视频合成效果。另外,可以通过具体的视频合成引擎执行具体的合成处理,从而可以直接生成视频格式的文件,这种文件可以支持跨端渲染,而不需要依赖前端或者客户端的浏览器,因此,可以直接向具体应用方的页面资源位等处进行投放。
在优选的实施方式中,具体使用的视频合成引擎可以是ffmpeg等支持在CPU机器上运行的服务引擎,这样,在批量化进行视频合成的场景中,可以在服务器上执行具体的视频合成服务,并且可以使用CPU的服务器即可,降低对GPU资源的依赖。
另外,在服务器中进行视频合成的方式下,由于在对模板进行解析以生成视频合成引擎所能执行的指令的过程中,涉及到将第一模板转换为二进制流式输入信息,此时,就涉及到对以描述文件形式存在的第一模板渲染成对应的动画;而对于基于AE等制作的第一模板,其渲染需要依赖于浏览器环境,因此,在本申请实施例中,还提供了在服务器环境中对基于AE等制作的第一模板的渲染实现方式。其中一种方式可以是基于“无头浏览器”技术,在服务器中通过模拟网页浏览器的行为创建的网页,加载开源的原生SDK,从而可以由该SDK对第一模板进行渲染。或者,另一种方式下,可以提前对上述原生SDK进行改写,将其中依赖于网页浏览器环境中的函数或二方库,替换为服务器环境中具有相同或相似功能的函数或二方库,从而可以直接在服务器环境中执行这种SDK,来实现对第一模板的渲染。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的系统架构的示意图;
图2是本申请实施例提供的方法的流程图;
图3是本申请实施例提供的装置的示意图;
图4是本申请实施例提供的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
对于商品信息服务系统中,商品的讲解视频等通常是由商家进行录制,然后发布到系统中,但是,对于一些商家而言,录制讲解视频的成本可能比较高,因此,会存在大量的商品没有关联讲解视频的情况。
为了解决上述问题,商品信息服务系统可以提供视频合成服务,也即,可以根据商品的图片、文案、属性信息、卖点等内容,通过算法自动生产出商品的视频,包括讲解视频等,然后再向具体的应用中进行发布,例如,包括发布到“猜你喜欢”等商品推荐场景中,或者,发布到商品详情页场景中,等等。
其中,在提供视频合成服务的过程中,会涉及到对视频合成模板的使用,视频合成模板主要用于对视频的合成规则等进行描述,包括图片的数量,文案在图片中的位置,文案的字数长度,转场规则的设置,等等。为了制作这种视频合成模板,一种可行的方式是,基于设计软件AE(Adobe Effect)制作的Lottie(是一个复杂帧动画的解决方案,它提供了一套从设计师使用AE到各端开发者实现动画的工具流)动画文件作为视频合成模板,设计是完成模板设计之后,可以将这种模板导出为一份Json等格式的描述文件,利用具体商品的图片、文案等资源对模板中的内容进行替换后,可以生成一份同样是Json格式的描述文件。但是,这种文件本身并不是视频格式,需要通过浏览器打开一个页面,并在页面中加载一种开源的SDK(Software Development Kit,软件开发工具包)写成的容器才能渲染,这就使得这种描述文件只能在前端或者客户端渲染成帧动画形式,而不是一个真正的视频,因此,这种形式的文件无法直接投放到具体的“猜你喜欢”或者商品详情页等场景中。
另一种解决方案中,能够在视频合成的过程中,直接生产出mp4等格式的视频文件,但是,这种解决方案中需要使用其配套提供的模板制作工具来制作模板,也即,模板的制作过程不再通用,需要设计师重新学习新的模板制作工具,因此,设计师的学习成本会比较高。并且,通过这种非通用的模板设计工具设计出的模板只能在该系统内部使用,无法在其他工具中进行复用。另外,服务架构较为复杂,不适合业务敏捷迭代的场景,且强依赖GPU(Graphics Processing Unit,图形处理器)机器进行视频渲染。在需要通过服务器批量化生产视频的场景下,则意味着需要使用具有GPU的服务器才可以,而GPU机器的成本高,因此,也会使得视频生产的成本升高,在GPU资源有限的情况下,还可能会造成与其他任务争抢资源的情况,或者需要其他任务作出让步。
针对上述情况,本申请实施例提供了相应的解决方案,以使得实现模板的通用化,能够使用通过AE等更通用性的工具生产出的模板来进行视频的生产,并使得产出的结果直接是视频格式的文件,从而实现跨端渲染,可以直接向具体应用方的页面资源位等处进行投放。另外,在优选的实现方案中,还可以在服务器中实现批量化的视频生成,还可以通过对支持CPU的视频合成引擎的使用,降低对GPU机器的依赖。
具体的,在该方案中,可以提供视频合成服务,该服务中可以使用视频合成引擎完成视频合成处理,其中,在优选的实施方式下,具体的视频合成引擎可以是ffmpeg等支持在CPU(Central Processing Unit,中央处理器)机器上运行的视频合成引擎,以此降低对GPU资源的依赖。对于模板的使用,该方案可以使用通过AE等通用性的模板制作工具制作的模板。另外,为了同时满足具体应用方(例如“猜你喜欢”、商品详情页等)的个性化视频生产需求,还可以提供自定义的视频描述协议,通过这种视频描述协议,可以在通用的视频生产模板以及具体的资源素材(包括商品图片、文案、语音等)基础上增加一层封装,以得到包括了更多个性化视频合成规则等描述信息的视频生产模板,例如,个性化视频合成规则可以包括转场规则、花字的添加、讲解文案的位置等等。之后,还可以将这种新生成的模板进行解析,将其转换为具体的视频服务引擎可消费的指令。其中,对于具体基于AE等生成的通用性的模板中的资源(包括已经替换的具体商品对应的图片、文案等资源,还可以包括模板中无需替换的边框图片等资源),可以转换成二进制的流式输入信息。相应的,视频服务引擎即可读取具体的资源,根据模板中定义的视频生产规则去合成视频,产出mp4等格式的视频文件。
具体实现时,可以在前述ffmpeg等支持在CPU机器上运行的视频合成引擎的基础上进行封装,搭建一个针对视频合成的服务,并提供视频合成服务接口,具体的应用方则可以通过调用该接口来发起具体的视频合成请求,并在视频合成请求中携带具体商品的图片、讲解文案、语音等素材资源。或者,另一种方式下,为了进一步满足批量生成的需求,关于具体商品的商品图、讲解文案等还可以由AI(Artificial Intelligence,人工智能)大语言模型来生成,此时,还可以为应用方提供素材资源生成服务,应用方可以提供具体需要进行视频合成的商品列表(例如,可以由应用方按照一定的规则等进行圈选),该素材资源生成服务则可以从商品信息库中读取到这些商品的商品信息,包括商品图、文本信息、属性信息、卖点信息等,AI大语言模型则可以基于这些信息生成具体的素材资源,例如,具体生成的素材资源就可以包括合成的图片,讲解文案(例如,AI大模型可以在从商品详情内容中提取的文本内容、属性信息、卖点信息等基础上进行“创作”,生成一段或者多段通过自然语言进行上下文连贯表达的文案),等等,另外还可以通过调用具体的语音合成接口等方式,生成讲解文案对应的语音,等等。在这种提供了素材资源生成服务的情况下,可以由素材资源生成服务以商品为单位,对前述视频合成接口进行调用,并携带具体商品对应的素材资源信息,等等。
另外,还可以在前述视频合成服务中提供服务代码,这种服务代码可以是通用的,或者,还可以根据具体的应用方进行个性化配置,例如,应用方可以将其需求上报给视频合成服务的服务提供方,由视频合成服务的服务提供方为该应用方配置具体的服务代码,或者,视频合成服务的服务提供方也可以将具体的参数规则等开放给应用方,由应用方根据自身的需求自行输入服务代码,并部署到具体的视频合成服务中,等等。具体的服务代码就可以包括上述模板组装以及模板解析等相关的功能,也即,可以根据具体的视频合成请求,选择一个或者多个通用性的模板(例如,可以是基于AE等设计的模板,本申请实施例中,可以称为第一模板),并进行素材资源的替换(利用具体商品对应的素材资源替换模板中的资源),还可以在此基础上通过自定义的视频描述协议增加相关的个性化合成规则描述信息,生成新的模板(称为第二模板),之后再通过对该第二模板进行解析,生成ffmpeg等视频合成引擎可以执行的指令,由具体的视频合成引擎通过执行指令完成视频的合成。此时,就可以得到mp4等视频格式的视频文件,这种视频文件可进行跨端渲染,而不必依赖基于前端或客户端浏览器网页的容器,从而可以直接向具体的页面资源位中进行投放。
这里需要说明的是,具体在进行模板解析并生成视频合成引擎可以执行的指令的过程中,可以将第一模板中的资源(包括已经替换后的具体商品关联的资源,还可以包括第一模板中无需替换的资源)转换为二进制流式输入信息,以便于视频合成引擎进行处理。其中,关于具体的转换方式,可以通过“无头浏览器”的方式来实现,或者,还可以直接在服务器环境中实现,而不依赖于浏览器环境,对此,后文中会有详细介绍。
从系统架构角度而言,本申请实施例可以提供视频合成服务,该服务可以运行于服务器中,具体的,该视频合成服务中可以部署视频合成引擎,在优选方式下,该视频合成引擎可以是支持在CPU机器中运行的服务引擎,例如,具体可以是ffmpeg等。该视频合成服务中还可以部署于有具体的服务代码,该服务代码主要可以有对通用性的第一模板的二次封装,以及对模板的解析以生成视频合成视频中可以消费的指令等两方面的作用。其中,关于对通用性模板的二次封装部分,可以根据具体应用方的需求进行个性化配置,包括使用何种类型的第一模板,需要添加哪些个性化的模板合成规则等。在生成具体的指令后,就可以由具体的视频合成引擎来执行具体的指令,并完成视频的合成处理,输出视频格式的文件。其中,视频合成服务可以开放服务接口,以便于应用方或者其他服务进行调用。例如,一种方式下,还可以提供素材资源生成服务,该服务可以通过AI大模型,为具体商品生成讲解文案等类型的素材,以便于进行视频合成时使用,此时,可以由素材资源生成服务通过具体的接口调用视频合成服务,并以具体商品为单位传入具体的素材资源,由视频合成服务完成具体的视频合成处理过程。
参见图1,本申请实施例以多媒体编剪引擎与各式个性化素材为基础,结合AI大模型的智能能力及应用服务调度能力,提供规模化、智能化的视频生产服务。经过调研分析,为了适应业务灵活多变的需求,具体的智能视频生产流程可以被划分为四大模块:视频合成引擎,提供丰富多媒体编剪辑原子能力,包括图文/音视频编剪辑、素材资源、用户资源、模板功能、花字贴纸等;合成服务模块,提供消息排队、任务调度、进度感知、异常监控、消息存储、指令组装、资源管理、OSS(Object Storage Service,对象存储服务)推送(将视频推送到OSS服务里,生成视频链接供应用方访问)、日志上报等能力,支持批量调用生产;智能服务模块,提供AI语音,智能字幕,智能文案,数字人等赋能视频生产;业务服务模块,提供入参检测、资产管理、素材打标、调用记录,任务组装、物料预处理等能力,对外提供业务接口。
下面对本申请实施例提供的具体实现方案进行详细介绍。
首先,本申请实施例从前述视频合成服务的角度,提供了一种视频合成方法,该所述方法就可以应用于视频合成服务,参见图2,该方法可以包括:
S201:响应于针对目标商品的视频合成请求,并获取所述请求中携带的所述目标商品关联的素材资源信息。
其中,具体的视频合成请求可以是由具体的应用方进行发起,或者,在提供了素材资源生成服务的情况下,也可以由这种素材资源生成服务发起,具体可以通过调用视频合成服务对外开放的接口的方式,来发起具体的请求。
具体的,在由素材资源生成服务发起请求的方式下,应用方可以首先进行商品圈选,并将圈选出的需要进行视频合成的商品底表提供给素材资源服务,这样,具体的素材资源生成服务就可以根据该商品底表,获取其中各个商品的描述信息,这些描述信息就可以是从商品信息库等数据库中获取的,包括商品图片、标题、文本描述信息、属性信息、卖点信息,等等。之后,就可以通过AI大语言模型对所述描述信息进行模型理解,以生成素材资源,其中,具体生成的素材资源可以包括用于进行视频合成的图片、讲解文案、语音素材等等。也就是说,在具体进行视频合成之前,可以首先准备素材资源,这些素材资源可以来自于商品的描述信息,但是,如果直接利用这些基础描述信息进行视频合成,其效果可能会比较差,无法实现对真正录制的讲解视频的模拟。为此,还可以首先利用AI大模型对基础的描述信息进行理解,生产出更高质量的图片,还可以生产出讲解文案等,这种讲解文案可以是通过对图片、文本、属性、卖点等的含义进行理解之后生成的,生成的讲解文案可以是一段或者几段话,还可以具有上下文连贯表达的特点,等等。然后还可以将这种讲解文案转换为语音内容,具体可以通过调用已有的语音合成接口等方式完成这种文本转语音的处理。完成上述素材资源的生成之后,具体的素材资源生成服务就可以以商品为单位调用具体的视频合成服务接口,发起具体的视频合成请求。
其中,AI大模型可以是指一类基础模型(Foundation Model),具体可以指在使用海量数据下训练出来的参数量巨大的、能适应一系列下游任务的模型。对于AI大模型而言,不仅在参数规模上存在参数量巨大(随着模型的不断迭代,参数量通常也会呈指数级增长,从亿到万亿,再到百万亿,甚至还可以更多)的特点,并且,从模态支持上看,AI大模型也从支持图片、图像、文本、语音、视频等单一模态下的单一任务,逐渐发展为支持多种模态下的多种任务。也即,大型模型通常还具备多种模态信息的高效理解能力、跨模态的感知能力以及跨差异化任务的迁移与执行能力等,甚至可能会具备如人类大脑体现的多模态信息感知能力。从处理结果的角度而言,上述AI大模型还属于一种生成式模型(Generative Model)。这类模型不但能根据特征预测结果,还能“理解”数据是如何产生的,并以此为基础“创造”出新的数据。
从内容生成方式上而言,可以通过构造提示词(Prompt)文本(一种用于与人工智能模型交互的文本,可以通过自然语言进行表达)来“告诉”AI大模型需要生成什么样的内容,通过特殊形式的提示词文本撰写,可以使AI大模型生成的内容符合所需的期待和诉求。
由于AI大模型具有上述创作内容的能力,因此,可以应用到本申请实施例中,以协助生成具体进行视频合成时的素材资源。并且,可以将AI大模型的素材资源生产链路与视频合成链路打通,使得素材资源生成服务可以调用视频合成服务的接口。当然,在具体实现时,如果具体的应用方具有部署这种AI大模型的能力,则也可以由具体的应用方提前利用AI大模型进行素材资源的生成,然后直接调用本申请中的视频合成服务接口,等等。也就是说,可以支持应用方自定义生产链路,提供了更高效优质的视频合成方案与规模化工程化生产链路。
其中,无论是应用方直接调用视频合成服务接口,还是素材资源生成服务来调用该接口,都可以以商品为单位进行调用,并且可以在请求中携带具体商品的素材资源信息,包括具体资源的链接地址等等。相应的,视频合成服务收到具体的调用请求后,就可以从请求中提取到具体的素材资源信息,以便于后续进行视频合成处理。
这里需要说明的是,本申请实施例中各步骤的执行主体可以是视频合成服务,其中,该视频合成服务中可以部署具体的服务代码,如前文所述,这种服务代码可以实现模板的二次封装以及对模板的解析等功能。其中,关于模板的二次封装部分,可以是通用的代码,也可以根据具体应用方的需求进行个性化配置。
另外需要说明的是,在实际应用中,具体的视频合成服务可以批量处理多个视频合成任务,例如,可以为圈选出的商品底表中的多个商品进行视频合成。此时,每次接收到视频合成请求后,可以生成对应的视频合成任务,并添加到任务队列中,等到有空闲的视频合成服务进程时,再从具体的队列中读取一条任务并执行。
S202:从模板库中确定至少一个第一模板,所述第一模板为使用通用性模板生产工具生成的用于描述视频合成规则的模板。
在接收到具体的视频合成请求,并确定出其中携带的素材资源信息后,就可以选择具体的第一模板。具体实现时,这种第一模板可以是利用AE等通用性的模板制作工具进行制作的,并提前保存在模板库中。其中,在保存到模板库中时,还可以为模板添加具体的类别标签等,例如,包括通用类的模板,或者适用于某些商品类目的模板,等等。
具体在从模板库中选择这种第一模板时,可以选择一个第一模板,或者也可以选择多个,如果是选择多个,则可以在时间维度上对多个第一模板进行拼接。例如,一个模板A是一个时长为3S的动画,另一个模板B是一个时长为2S的动画,则将两个模板拼接在一起可以组成一个时长为5S的动画,等等。
关于具体选择怎样的第一模板,可以根据服务代码中定义的规则来确定。例如,如果是通用的服务代码,其中不限定具体使用的第一模板的类型,则可以采用在模板库中进行随机选择的方式来确定第一模板。或者,还可以在服务代码中对具体所需要选择的模板的特征进行定义,例如,需要适合某些特定的商品类目,或者,也可以对模板的时长进行限制,或者,还可以对模板的风格等进行限制,等等。
S203:利用所述素材资源信息对所述至少一个第一模板中描述的资源信息进行替换,并利用自定义的视频描述协议封装为第二模板。
在确定出第一模板之后,可以利用具体商品的素材资源对模板中的资源进行替换,也即,将模板中的图片、文案等替换成具体商品对应的图片、讲解文案等。其中,如果从模板库中确定的第一模板为多个,则可以在时间维度上对所述多个第一模板进行拼接,并对拼接后的模板进行资源替换。
在完成资源替换后,还可以利用自定义的视频描述协议对模板进行封装,得到第二模板。另外,还可以通过自定义的协议添加个性化的视频合成规则、素材资源,例如,包括讲解文案展示在视频画面的什么位置,视频的大小,是否平铺展示,等等。在添加了个性化的视频合成规则、资源等信息之后,可以得到前述第二模板。
具体实现时,在前述批量化生成的场景中,具体的视频合成任务被添加到任务队列中,每个任务可以对应各自的任务源信息,因此,每次执行一个具体的视频合成任务时,可以解析视频合成任务源信息,任务源中可以包括具体的模板信息和需要替换的素材资源信息,在请求完具体的模板对应的描述文件后,可以使用模板组装引擎对素材资源进行预加载与替换,期间可以涉及到图片素材的缩放与裁剪,文本素材的画面内容匹配与分词后卖点坑位匹配等处理。
S204:对所述第二模板进行解析,生成目标视频合成引擎可执行的指令,以便所述目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
在得到第二模板后,可以对第二模板进行解析,以生成目标视频合成引擎可执行的指令,之后,便可以目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
其中,在对所述第二模板进行解析,生成目标视频合成引擎可执行的指令的过程中,可以将具体第二模板转换成二进制流式输入信息,以便所述目标视频合成引擎通过对所述二进制流式输入信息进行处理,生成视频格式的文件。其中,由于第一模板在第二模板中仍然以描述文件的形式存在,因此,对第一模板中的资源转换为二进制流式输入信息的过程,与通过前述自定义协议添加的规则或者资源的转换过程可以是不同的。
其中,具体在将所述第一模板中的资源转换为二进制流式输入信息时,由于基于AE等设计的模板是以Json等格式的描述文件的形式存在,因此,在转换成二进制流式输入信息的过程中,需要将描述文件渲染成对应的动画,之后,再根据所述动画中各帧画面的像素点信息确定所述二进制流式输入信息。而在具体实现时,由于在本申请实施例中的视频合成服务可以运行于服务器中,而基于AE等制作的模板通常需要依赖浏览器才能够进行渲染,为此,本申请实施例还提供了在服务器中对第一模板进行渲染的实现方式。
其中,在一种方式下,在服务器中对这种第一模板进行渲染时,可以利用在服务器端通过模拟网页浏览器的行为创建的网页,对SDK(软件开发工具包)进行加载,其中,该SDK是开源的原生SDK(例如,lottie渲染SDK),用于对第一模板对应的动画进行渲染。之后,可以基于渲染的结果获得各帧画面的像素点信息,将这些像素点信息作为二进制流式输入信息,然后再传输给视频合成服务的主进程。其中,这里之所以称为“模拟网页浏览器的行为”,是因为,通常意义上,具体的网页浏览器是提供给用户使用的用于浏览网页的工具,需要在用户点击打开的触发下才能够打开,并展示出具体的前端页面,但是,在服务器环境中,打开浏览器以及其中网页的过程可以在后台执行,无需进行展示,可以没有前端页面,因此,这种在服务器端运行的浏览器也可以称为“无头浏览器”。
在上述实现方式下,具体在浏览器环境中渲染出第一模板对应的动画后,具体在转换为二进制流式输入信息时,一种方式下,可以利用截屏API对页面中的动画进行逐帧截屏并通信的形式交由服务端进行视频编码,但是,这种方式的处理开销主要是每一帧的截屏与通信。例如,对于一个帧率为25f/s(frames per second,帧每秒)、时长为10s的动画,渲染过程中需要包括250次截屏与通信,根据画面复杂程度,合成时间需要20s~60s。
为解决图像信息通信时间长的问题,在本申请的优选实施方式中,可以通过调用浏览器自带的用于进行Web音视频编解码的API,对所述第一模板对应的动画逐帧编码为二进制流式输入信息,这样,浏览器进程与所述视频合成服务的主进程之间通过单次通信即可完成数据传输,之后,可以在所述视频合成服务的主进程中对二进制流式输入信息进行封装,以生成视频格式的文件。
例如,上述用于进行Web音视频编解码的API具体可以为WebCodec,通过该API,可以在浏览器环境中直接对动画的VideoFrame(帧)进行逐帧编码为h264等格式的二进制流式输入信息,这样,浏览器进程与视频合成服务的主进程之间仅需要进行一次通信即可。之后,主进程再使用ffmpeg等视频合成引起进行视频格式的封装。例如,具体实现时,可以遍历第一模板对应的动画,将每一帧都转为videoframe对象,然后使用videoEncoder以便编码一边整合,最终生成一个video/h264格式的二进制文件,之后,可以使用ffmpeg将其封装为mp4文件。这样,可以节省截屏开销,缩减进程间的通信时间,前述例子中时长为10s视频的合成时间大约在3s~6s内即可完成,性能得到显著提升。
另外,由于具体的视频合成服务可以用于对多个目标商品进行批量化视频合成,其中,每个视频合成服务进程用于执行单个目标商品对应的视频合成任务,在上述通过无头浏览器进行二进制信息转换的方案中,还可以通过一些方式进行性能优化。
例如,其中一种优化方式可以是,为了避免频繁关闭打开页面造成的性能损耗,可以对空闲页面进行复用。具体的,可以对所述网页浏览器进行空闲网页监测,在监测到空闲网页时,利用所述空闲网页加载具体的SDK,以用于执行当前视频合成任务中的流式输入转换处理。另外还可以针对浏览器沙盒环境的特性,对无头浏览器页面进行了渲染帧级别的健康度与任务进度的监测,对超时任务进行定时清理,避免沙盒环境页面卡死占用内存。
另外,还可以通过分段渲染的方式来实现性能提升。具体的,对于动画帧数大于预设阈值的第一模板,可以将所述第一模板对应的动画切分为多段,并利用分别在不同网页中加载的SDK对所述第一模板对应的动画进行分段渲染。这样,后续可以在视频合成服务的主进程中对分段渲染的结果进行拼接,等等。
在前述方式下,需要在服务端通过“无头浏览器”实现对第一模板的渲染,而另一种方式下,为了降低对上述“无头浏览器”的依赖,本申请实施例中还提供了一种降级方案,在该方案中,可以通过在服务器环境中执行的降级版SDK对所述第一模板进行逐帧的解码,以生成所述二进制流式输入信息,其中,所述降级版SDK通过以下方式获得:对所述开源的原生SDK进行改写,将其中依赖于网页浏览器环境中的函数或二方库,替换为服务器环境中具有相同或相似功能的函数或二方库。也就是说,可以首先对前述原生SDK进行改写,将其中对浏览器环境中的函数、二方库等的依赖,替换为对服务器环境中具有相同或者相似功能的函数或二方库的依赖,这样,可以通过在服务器环境中直接执行该改写后的降级SDK的方式,实现对第一模板中的资源的二进制流式输入信息的转换,而不需要再执行打开浏览器、打开页面、在页面中加载原生SDK等方式来步骤。
在通过对模板进行解析生成视频合成引擎可以消费的指令之后,就可以由视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
以上对本申请实施例提供的方案进行了介绍,也即,可以在视频合成引擎的基础上进行封装,搭建一个针对视频的合成服务,对外提供智能视频合成服务接口,根据应用方的视频合成规模化与智能化需求,整个视频合成服务可以支持并发渲染,高稳定性和高可用性,支持多任务并发,资源管理,异常监控,消息存储等。
需要说明的是,在具体实现时,以上方案实现了视频合成过程中,对通用性的视频合成模板的支持,并且可以直接生成视频格式的文件,可以进行跨端渲染,从而可以直接向具体的页面资源位等进行投放。另外,为了降低具体进行视频合成过程中对GPU机器的依赖,具体的目标视频合成引擎可以为支持在CPU中运行的服务引擎,例如,前述例子中的ffmpeg,等等。
总之,通过本申请实施例,能够提供视频合成服务,该服务中可以实现对使用通用性模板制作工具制作的模板进行视频合成的支持,并可以将模板中的资源替换成具体商品对应的素材资源;另外,还可以通过自定义的视频描述协议,对通用性的模板进行二次封装。之后,还可以对二次封装后的模板进行解析,生成视频合成引擎可执行的指令,以便由该视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。通过这种方式,可以基于使用通用性模板制作工具制作的模板进行视频合成,模板的可复用性高,避免增加设计师的学习成本,另外,由于通用性模板制作工具具有规范的设计语言与丰富的特效视觉效果,因此,使用这种工具制作的模板可以获得更好的视频合成效果。另外,可以通过具体的视频合成引擎执行具体的合成处理,从而可以直接生成视频格式的文件,这种文件可以支持跨端渲染,而不需要依赖前端或者客户端的浏览器,因此,可以直接向具体应用方的页面资源位等处进行投放。
在优选的实施方式中,具体使用的视频合成引擎可以是ffmpeg等支持在CPU机器上运行的服务引擎,这样,在批量化进行视频合成的场景中,可以在服务器上执行具体的视频合成服务,并且可以使用CPU的服务器即可,降低对GPU资源的依赖。
另外,在服务器中进行视频合成的方式下,由于在对模板进行解析以生成视频合成引擎所能执行的指令的过程中,涉及到将第一模板转换为二进制流式输入信息,此时,就涉及到对以描述文件形式存在的第一模板渲染成对应的动画;而对于基于AE等制作的第一模板,其渲染需要依赖于浏览器环境,因此,在本申请实施例中,还提供了在服务器环境中对基于AE等制作的第一模板的渲染实现方式。其中一种方式可以是基于“无头浏览器”技术,在服务器中通过模拟网页浏览器的行为创建的网页,加载开源的原生SDK,从而可以由该SDK对第一模板进行渲染。或者,另一种方式下,可以提前对上述原生SDK进行改写,将其中依赖于网页浏览器环境中的函数或二方库,替换为服务器环境中具有相同或相似功能的函数或二方库,从而可以直接在服务器环境中执行这种SDK,来实现对第一模板的渲染。
需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
与前述方法实施例相对应,本申请实施例还提供了一种视频合成装置,所述装置应用于视频合成服务,参见图3,所述装置可以包括:
请求接收单元301,用于响应于针对目标商品的视频合成请求,并获取所述请求中携带的所述目标商品关联的素材资源信息;
模板确定单元302,用于从模板库中确定至少一个第一模板,所述第一模板为使用通用性模板生产工具生成的用于描述视频合成规则的模板;
模板封装单元303,用于利用所述素材资源信息对所述至少一个第一模板中描述的资源信息进行替换,并利用自定义的视频描述协议封装为第二模板;
模板解析单元304,用于对所述第二模板进行解析,生成目标视频合成引擎可执行的指令,以便所述目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
其中,所述目标视频合成引擎为支持在中央处理器CPU中运行的服务引擎。
其中,所述针对目标商品的视频合成请求可以是由素材资源生成服务发起的,所述素材资源生成服务用于获取目标商品的描述信息,并通过人工智能AI大语言模型对所述描述信息进行模型理解,生成所述素材资源,所述素材资源包括用于进行视频合成的图片、讲解文案和/或语音素材。
如果从模板库中确定的第一模板为多个,则所述装置还可以包括:
模板拼接单元,用于在时间维度上对所述多个第一模板进行拼接,以便对拼接后的模板进行资源替换。
另外,所述模板封装单元还可以用于:
在所述利用自定义的视频描述协议封装为第二模板时,通过所述自定义的视频描述协议添加视频合成规则和/或素材资源,并与进行了资源替换后的第一模板一起封装为所述第二模板。
其中,所述模板解析单元具体可以用于:
在对所述第二模板进行解析,生成目标视频合成引擎可执行的指令的过程中,将所述第一模板转换为二进制流式输入信息,以便所述目标视频合成引擎通过对所述二进制流式输入信息进行处理,生成视频格式的文件。
具体的,模板解析单元可以包括:
动画渲染子单元,用于将以描述文件形式存在的所述第一模板渲染为对应的动画;
流式输入信息确定子单元,用于根据所述动画中各帧画面的像素点信息确定所述二进制流式输入信息。
具体的,所述视频合成服务运行于服务器中,所述动画渲染子单元具体可以用于:
利用在服务器端通过模拟网页浏览器的行为创建的网页,对软件开发工具包SDK进行加载,所述SDK是所述通用性模板生产工具的开发方提供的原生SDK,用于将以描述文件形式存在的所述第一模板渲染为对应的动画。
流式输入信息确定子单元具体可以用于:
通过调用浏览器自带的用于进行Web音视频编解码的API,对所述第一模板对应的动画逐帧编码为二进制流式输入信息,以便浏览器进程与所述视频合成服务的主进程之间通过单次通信完成数据传输,并在所述视频合成服务的主进程中对二进制流式输入信息进行封装,以生成视频格式的文件。
其中,所述视频合成服务用于对多个目标商品进行批量化视频合成,其中,每个视频合成服务进程用于执行单个目标商品对应的视频合成任务;
所述装置还可以包括:
空闲网页监测单元,用于对所述网页浏览器进行空闲网页监测,在监测到空闲网页时,利用所述空闲网页加载所述SDK,以用于执行当前视频合成任务中的流式输入转换处理。
其中,所述动画渲染子单元具体可以用于:
对于动画帧数大于预设阈值的第一模板,将所述第一模板对应的动画切分为多段,并利用分别在不同网页中加载的SDK对所述第一模板对应的动画进行分段渲染。
另一种方式下,所述视频合成服务同样可以运行于服务器中,所述动画渲染子单元具体可以用于:
通过在服务器环境中执行的降级版SDK对所述第一模板进行逐帧的解码,以生成所述二进制流式输入信息,其中,所述降级版SDK通过以下方式获得:对所述通用性模板生产工具的开发方提供的原生SDK进行改写,将其中依赖于网页浏览器环境中的函数或二方库,替换为服务器环境中具有相同或相似功能的函数或二方库。
另外,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
以及一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
其中,图4示例性的展示出了电子设备的架构,具体可以包括处理器410,视频显示适配器411,磁盘驱动器412,输入/输出接口413,网络接口414,以及存储器420。上述处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420之间可以通过通信总线430进行通信连接。
其中,处理器410可以采用通用的CPU(Central Processing Unit,处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储用于控制电子设备400运行的操作系统421,用于控制电子设备400的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器423,数据存储管理系统424,以及视频合成处理系统425等等。上述视频合成处理系统425就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口413用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口414用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线430包括一通路,在设备的各个组件(例如处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,存储器420,总线430等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的视频合成方法及电子设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种视频合成方法,其特征在于,所述方法应用于视频合成服务,所述方法包括:
响应于针对目标商品的视频合成请求,并获取所述请求中携带的所述目标商品关联的素材资源信息;
从模板库中确定至少一个第一模板,所述第一模板为使用通用性模板生产工具生成的用于描述视频合成规则的模板;
利用所述素材资源信息对所述至少一个第一模板中描述的资源信息进行替换,并利用自定义的视频描述协议封装为第二模板;
对所述第二模板进行解析,生成目标视频合成引擎可执行的指令,以便所述目标视频合成引擎通过执行所述指令进行素材资源获取,并按照所述第二模板中的视频合成规则生成目标视频文件。
2.根据权利要求1所述的方法,其特征在于,所述目标视频合成引擎为支持在中央处理器CPU中运行的服务引擎。
3.根据权利要求1所述的方法,其特征在于,
所述针对目标商品的视频合成请求是由素材资源生成服务发起的,所述素材资源生成服务用于获取目标商品的描述信息,并通过人工智能AI大语言模型对所述描述信息进行模型理解,生成所述素材资源,所述素材资源包括用于进行视频合成的图片、讲解文案和/或语音素材。
4.根据权利要求1所述的方法,其特征在于,
如果从模板库中确定的第一模板为多个,则所述方法还包括:
在时间维度上对所述多个第一模板进行拼接,以便对拼接后的模板进行资源替换。
5.根据权利要求1所述的方法,其特征在于,
在所述利用自定义的视频描述协议封装为第二模板时,还包括:
通过所述自定义的视频描述协议添加视频合成规则和/或素材资源,并与进行了资源替换后的第一模板一起封装为所述第二模板。
6.根据权利要求1所述的方法,其特征在于,
在对所述第二模板进行解析,生成目标视频合成引擎可执行的指令的过程中,包括:
将所述第一模板转换为二进制流式输入信息,以便所述目标视频合成引擎通过对所述二进制流式输入信息进行处理,生成视频格式的文件。
7.根据权利要求6所述的方法,其特征在于,
所述将所述第一模板中的资源转换为二进制流式输入信息,包括:
将以描述文件形式存在的所述第一模板渲染为对应的动画;
根据所述动画中各帧画面的像素点信息确定所述二进制流式输入信息。
8.根据权利要求7所述的方法,其特征在于,
所述视频合成服务运行于服务器中,所述将以描述文件形式存在的所述第一模板渲染为对应的动画,包括:
利用在服务器端通过模拟网页浏览器的行为创建的网页,对开源的软件开发工具包SDK进行加载,所述SDK用于将以描述文件形式存在的所述第一模板渲染为对应的帧动画。
9.根据权利要求6所述的方法,其特征在于,
所述根据所述动画中各帧画面的像素点信息确定所述二进制流式输入信息,包括:
通过调用浏览器自带的用于进行Web音视频编解码的API,对所述第一模板对应的动画逐帧编码为二进制流式输入信息,以便浏览器进程与所述视频合成服务的主进程之间通过单次通信完成数据传输,并在所述视频合成服务的主进程中对二进制流式输入信息进行封装,以生成视频格式的文件。
10.根据权利要求8所述的方法,其特征在于,
所述视频合成服务用于对多个目标商品进行批量化视频合成,其中,每个视频合成服务进程用于执行单个目标商品对应的视频合成任务;
所述方法还包括:
对所述网页浏览器进行空闲网页监测,在监测到空闲网页时,利用所述空闲网页加载所述SDK,以用于执行当前视频合成任务中的流式输入转换处理。
11.根据权利要求8所述的方法,其特征在于,
所述利用在服务器端通过模拟网页浏览器的行为创建的网页,对软件开发工具包SDK进行加载,包括:
对于动画帧数大于预设阈值的第一模板,将所述第一模板对应的动画切分为多段,并利用分别在不同网页中加载的SDK对所述第一模板对应的动画进行分段渲染。
12.根据权利要求6所述的方法,其特征在于,
所述视频合成服务运行于服务器中,所述将所述第一模板中的资源转换为二进制流式输入信息,包括:
通过在服务器环境中执行的降级版SDK对所述第一模板进行逐帧的解码,以生成所述二进制流式输入信息,其中,所述降级版SDK通过以下方式获得:对开源的原生SDK进行改写,将其中依赖于网页浏览器环境中的函数或二方库,替换为服务器环境中具有相同或相似功能的函数或二方库;所述SDK用于将以描述文件形式存在的所述第一模板渲染为对应的帧动画。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至12任一项所述的方法的步骤。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行权利要求1至12任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311523463.1A CN117793271A (zh) | 2023-11-14 | 2023-11-14 | 视频合成方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311523463.1A CN117793271A (zh) | 2023-11-14 | 2023-11-14 | 视频合成方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117793271A true CN117793271A (zh) | 2024-03-29 |
Family
ID=90385834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311523463.1A Pending CN117793271A (zh) | 2023-11-14 | 2023-11-14 | 视频合成方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117793271A (zh) |
-
2023
- 2023-11-14 CN CN202311523463.1A patent/CN117793271A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108495192B (zh) | 页面编辑处理方法及装置 | |
CN111669623B (zh) | 视频特效的处理方法、装置以及电子设备 | |
US7146615B1 (en) | System for fast development of interactive applications | |
US8982132B2 (en) | Value templates in animation timelines | |
CN109242934B (zh) | 一种动画代码的生成方法及设备 | |
CN110234032B (zh) | 一种语音技能创建方法及系统 | |
CN112584061B (zh) | 多媒体通用模板生成方法、电子设备及存储介质 | |
CN111290778A (zh) | Ai模型的包装方法、平台及电子设备 | |
US20180143741A1 (en) | Intelligent graphical feature generation for user content | |
CN113110829B (zh) | 多ui组件库数据处理方法及装置 | |
JP6588577B2 (ja) | 命令リストを生成することによるflashコンテンツのhtmlコンテンツへの変換 | |
CN114138372A (zh) | 前端组件加载方法及装置 | |
CN112689197B (zh) | 一种文件格式转换方法、装置、以及计算机存储介质 | |
CN115510347A (zh) | 演示文稿的转换方法、装置、电子设备及存储介质 | |
CN105096989B (zh) | 一种背景音乐的处理方法和装置 | |
CN113643413A (zh) | 动画处理方法、装置、介质及电子设备 | |
US11645803B2 (en) | Animation effect reproduction | |
CN113905254A (zh) | 视频合成方法、装置、系统与可读存储介质 | |
CN117221656A (zh) | 题目讲解视频的生成方法、装置、电子设备及存储介质 | |
CN114422468A (zh) | 消息处理方法、装置、终端及存储介质 | |
CN109558186A (zh) | 一种页面显示方法和装置 | |
CN117793271A (zh) | 视频合成方法及电子设备 | |
CN111581402A (zh) | 内容测试素材的生成方法、系统、电子设备、存储介质 | |
CN111522546B (zh) | 一种页面的生成方法、相关装置及前端页面 | |
CN113190509A (zh) | 动画处理方法、装置、电子设备及计算机可读存储介质 |
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 |