HK40028958B - 视频特效的处理方法、装置以及电子设备 - Google Patents
视频特效的处理方法、装置以及电子设备 Download PDFInfo
- Publication number
- HK40028958B HK40028958B HK42020018831.6A HK42020018831A HK40028958B HK 40028958 B HK40028958 B HK 40028958B HK 42020018831 A HK42020018831 A HK 42020018831A HK 40028958 B HK40028958 B HK 40028958B
- Authority
- HK
- Hong Kong
- Prior art keywords
- duration
- timestamp
- target
- video
- scaling
- Prior art date
Links
Description
技术领域
本发明涉及数字多媒体技术,尤其涉及一种视频特效的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
互联网特别是移动互联网的发展,使得视频作为信息的传播媒介得到前所未有的运用。为了增强视频所承载信息的表现力,并提升关注度,相关技术通常会为视频增加视频特效。
例如,相关技术中,可以基于专业的视频编辑设计软件例如AE(Adobe AfterEffect)来设计特效动画,AE中可以使用Airbnb开源的火热动画库方案以及便携式动画图形(PAG,Portable Animated Graphics)方案。
但是,通过视频编辑设计软件设计出的视频特效的时长均是固定的,难以适用于需求多样化的应用场景;如果针对各种可能的场景来生成各种不同播放时长的视频特效,则不仅会造成计算资源的浪费,而且影响视频呈现的实时性。
发明内容
本发明实施例提供一种视频特效的处理方法、装置、电子设备及计算机可读存储介质,能够实现视频特效时长的自由伸缩。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种视频特效的处理方法,所述方法包括:
获取视频特效文件,并从所述视频特效文件中提取时长伸缩逻辑;
获取需要所述视频特效文件所实现的目标播放时长,其中,所述目标播放时长区别于所述视频特效文件的原始播放时长;
根据所述时长伸缩逻辑,确定所述视频特效文件中与目标时间轴对应的特效帧;
其中,所述目标时间轴的长度与所述目标播放时长一致;
根据与所述目标时间轴对应的特效帧进行渲染,以形成符合所述目标播放时长的视频特效播放过程。
本发明实施例提供一种视频特效的处理装置,所述装置包括:
文件获取模块,用于获取视频特效文件,并从所述视频特效文件中提取时长伸缩逻辑;
时长获取模块,用于获取需要所述视频特效文件所实现的目标播放时长,其中,所述目标播放时长区别于所述视频特效文件的原始播放时长;
特效帧确定模块,用于根据所述时长伸缩逻辑,确定所述视频特效文件中与目标时间轴对应的特效帧;
其中,所述目标时间轴的长度与所述目标播放时长一致;
渲染模块,用于根据与所述目标时间轴对应的特效帧进行渲染,以形成符合所述目标播放时长的视频特效播放过程。
在上述方案中,所述文件获取模块,还用于:
执行以下处理之一以得到对应所述特效对象的编码导出文件:
对所述特效对象的多个图层结构进行编码处理,得到对应所述特效对象的编码导出文件;
对所述特效对象的多个特效帧进行编码处理,得到对应所述特效对象的编码导出文件;
对所述特效对象的多个特效帧进行视频格式压缩处理,并对得到的视频格式压缩处理结果进行编码处理,得到对应所述特效对象的编码导出文件;
将时长伸缩类型以及时长伸缩区间封装在所述编码导出文件中,得到对应所述特效对象的视频特效文件。
在上述方案中,所述时长伸缩逻辑包括时长伸缩区间以及对应的时长伸缩类型;所述文件获取模块,还用于:
对所述视频特效文件进行解码处理,得到对应所述视频特效文件的至少一个时长伸缩区间以及对应的时长伸缩类型;
其中,所述时长伸缩类型包括以下类型中的任意一种:时间线性伸缩类型;时间重复类型;时间倒序重复类型。
在上述方案中,所述时长获取模块,还用于:
当所述时长伸缩区间的数目为多个时,将所述视频特效文件拆分为与所述数目一致的多个视频特效子文件,并分别获取针对每个所述视频特效子文件的目标播放时长间;
当所述时长伸缩区间的数目为一个时,获取针对所述视频特效文件的整体的目标播放时长。
在上述方案中,所述时长获取模块,还用于:在获取需要所述视频特效文件所实现的目标播放时长之后,
当所述时长伸缩区间的数目为多个时,针对每个所述视频特效子文件执行以下处理:
从所述视频特效子文件中获取对应特效对象的原始时间轴;
保持所述原始时间轴的帧率不变,对所述原始时间轴进行时长伸缩处理,得到对应所述目标播放时长的目标时间轴;
当所述时长伸缩区间的数目为一个时,针对所述视频特效文件执行以下处理:
从所述视频特效文件中获取对应特效对象的原始时间轴;
保持所述原始时间轴的帧率不变,对所述原始时间轴进行时长伸缩处理,得到对应所述目标播放时长的目标时间轴。
在上述方案中,当所述时长伸缩区间的数目为多个时,所述特效帧确定模块,还用于:
针对每个时长伸缩区间执行以下处理:
从所述视频特效子文件中获取包括所述特效对象的多个特效帧、以及每个所述特效帧在所述原始时间轴上对应的时间戳,以作为每个所述特效帧的原始特效帧时间戳;
基于时长伸缩区间、以及每个所述特效帧对应的原始特效帧时间戳,在所述多个特效帧中确定与所述目标时间轴上每个时间戳对应的特效帧。
在上述方案中,当所述时长伸缩区间的数目为一个时,所述特效帧确定模块,还用于:
从所述视频特效文件中获取包括所述特效对象的多个特效帧、以及每个所述特效帧在所述原始时间轴上对应的时间戳,以作为每个所述特效帧的原始特效帧时间戳;
基于时长伸缩区间、以及每个所述特效帧对应的原始特效帧时间戳,在所述多个特效帧中确定与所述目标时间轴上每个时间戳对应的特效帧。
在上述方案中,所述特效帧确定模块,还用于:
依次将所述目标时间轴上每个时间戳作为目标时间戳,以执行以下处理:
基于时长伸缩区间,确定所述目标时间戳在所述原始时间轴上对应的时间戳;
当所述目标时间戳在所述原始时间轴上对应的时间戳与任一所述原始特效帧时间戳重叠时,将重叠的所述原始特效帧时间戳对应的特效帧确定为所述目标时间戳对应的特效帧;
当所述目标时间戳在所述原始时间轴上对应的时间戳未与任一所述原始特效帧时间戳重叠时,确定与所述目标时间戳在所述原始时间轴上对应的时间戳距离最小的所述原始时间戳,并将确定所述原始特效帧时间戳对应的特效帧确定为所述目标时间戳对应的特效帧。
在上述方案中,所述特效帧确定模块,还用于:
针对每个所述时长伸缩区间执行以下处理:
当所述目标时间戳不大于所述时长伸缩区间的起始时间戳时,将所述目标时间戳确定为在所述原始时间轴上对应的原始时间戳;
当所述目标时间戳大于所述时长伸缩区间的起始时间戳,且小于所述时长伸缩区间的终止时间戳时,对所述目标时间戳进行基于所述时长伸缩类型的映射,得到对应的原始时间戳;
当所述目标时间戳大于或者等于所述终止时间戳,且小于所述目标播放时长时,确定所述原始播放时长与所述目标播放时长之间的第一差值,将所述第一差值与所述目标时间戳进行求和处理,并将求和处理结果确定所述目标时间戳在所述原始时间轴上对应的时间戳。
在上述方案中,所述特效帧确定模块,还用于:
当所述时长伸缩类型为所述时间线性缩减类型、或者所述时间线性拉伸类型时,将所述目标播放时长与所述原始播放时长的第二差值确定为伸缩长度,并将所述伸缩长度与所述时长伸缩区间的长度进行求和处理;
对所述时长伸缩区间的长度与求和处理结果进行求比值处理,得到伸缩系数;
确定所述目标时间戳与所述起始时间戳之间的第三差值,将所述第三差值与所述伸缩系数进行相乘处理;
对相乘处理结果与所述起始时间戳进行求和处理,得到对应的原始时间戳。
在上述方案中,所述特效帧确定模块,还用于:
当所述时长伸缩类型为所述时间重复类型时,确定所述目标时间戳与所述起始时间戳之间的第四差值,对所述第四差值与所述时长伸缩区间的长度进行求余数处理;
将求余数处理结果与所述起始时间戳进行求和处理,得到对应的原始时间戳。
在上述方案中,所述特效帧确定模块,还用于:
当所述时长伸缩类型为所述时间倒序重复类型时,确定所述目标时间戳与所述起始时间戳之间的第五差值,对所述第五差值与所述时长伸缩区间的长度进行求余数处理;
针对对应求余数处理结果的比值结果进行取整处理,得到取整结果;
当所述取整结果为偶数时,将求余数处理结果与所述起始时间戳进行求和处理,得到对应的原始时间戳;
当所述取整结果为奇数时,确定所述时长伸缩区间的长度与所述求余数处理结果之间的第六差值,对所述第六差值与所述起始时间戳进行求和处理,得到对应的原始时间戳。
本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的视频特效的处理方法。
本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本发明实施例提供的视频特效的处理方法。
本发明实施例具有以下有益效果:
通过视频特效文件中封装时长伸缩逻辑,使得一个视频特效文件自由伸缩为不同应用场景所需求的播放时长,具有普遍的适用性,再次基础上进行渲染形成视频特效播放过程,节约了制作大量不同播放时长的视频特效文件所带来的计算资源和时间资源的巨大消耗。
附图说明
图1是本发明实施例提供的视频特效的处理系统的一个可选的结构示意图;
图2是本发明实施例提供的视频特效的处理装置的一个可选的结构示意图;
图3A-3E是本发明实施例提供的视频特效的处理方法的一个可选的流程示意图;
图4是本发明实施例提供的视频特效的处理方法的应用效果示意图;
图5是本发明实施例提供的视频特效的处理系统的流程图;
图6A-6C是本发明实施例提供的视频特效的处理处理方法的标注示意图;
图7是本发明实施例提供的视频特效的处理方法的时间轴示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)AE:是Adobe After Effect的简称,是Adobe公司推出的一款图形视频处理软件,适用于从事设计和视频特技的机构,包括电视台、动画制作公司、个人后期制作工作室以及多媒体工作室,属于层类型后期软件。
2)视频特效文件,承载特效内容的二进制文件,例如PAG文件,是一种以二进制文件格式进行储存的贴纸动画。
3)原始时间轴:视频特效文件整体所对应的时间轴,或者视频特效子文件所对应的特效部分进行播放时所对应的时间轴。
4)目标时间轴:视频特效文件中完整的特效对象进行伸缩处理后进行播放时所对应的时间轴,或者视频特效子文件所对应的部分特效对象进行伸缩处理后进行播放时所对应的时间轴。
相关技术中移动互联网客户端基于AE(Adobe After Effect)实现动画的方案有Airbnb开源的Lottie方案和PAG方案,它们都打通了AE动画设计到移动端呈现的工作流,设计师在AE上设计的动画通过导出插件导出动画文件,进而在移动端通过SDK进行加载渲染,从而大大降低了开发的成本,但是,两个方案通过AE设计出的动画文件中动画的时长都是固定的,申请人在实施本发明实施例的过程中发现,在部分用户界面动画及视频编辑的场景下,需要外部能够控制动画文件的时长,如对部分区间动画文件固定,对部分区间动画进行线性拉伸或循环处理,如贴纸动画长度为2秒,而是实际需要动画长度为4秒,外部需要将贴纸动画拉伸为4秒,或者对贴纸动画进行重复绘制,即将贴纸动画播放2遍。
针对相关技术的固定的视频特效文件与任意目标播放时长需求之间存在矛盾的技术问题,本发明实施例提供一种视频特效的处理方法,可以支持固定动画文件的时间伸缩,并且外部应用平台只需要设置动画文件的目标播放时间,动画文件就可以按照用户配置的伸缩逻辑进行时间伸缩。视频特效文件的播放时长伸缩处理是由视频特效文件中的时长伸缩逻辑控制,对视频特效文件解码后,根据时长伸缩逻辑处理并渲染即可实现目标播放时长的视频特效播放过程;能够直接应用于各种应用和各种平台,且不受平台的操作系统的限制,实现流程极其简洁。
下面说明本发明实施例提供的电子设备的示例性应用,本发明实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端设备,也可以实施为服务器。下面,将结合图1说明电子设备实施为终端时的示例性应用。
参见图1,图1是本发明实施例提供的视频特效的处理系统的一个可选的结构示意图,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
下面结合不同的应用场景说明本发明实施例提供的视频特效处理方法的应用。
在一个应用场景中,设计者利用终端500或者通过调用服务器的云服务设计视频特效文件,发送视频特效文件到客户端的服务器200(即后台服务器),由服务器200存储接收到的视频特效文件,或由服务器200将视频特效文件存储到数据库600或文件系统;用户使用终端400中运行的客户端,客户端可以是游戏应用、社交网络应用、短视频应用、网上购物应用等的各种类型的应用,用户使用的过程中,触发服务器200的下发视频的业务逻辑,例如,服务器200定期下发业务使用报告,例如,游戏中的每周战报视频以及每月消费视频报告的业务逻辑,业务使用报告的具体内容与客户端的业务有关,并触发服务器200下发增强视频表现力的视频特效文件,视频特效文件可以是客户端预先存储的。
在一些应用场景中,终端400中运行的客户端基于视频特效文件中的时长伸缩逻辑,以服务器200下发的视频的播放时长为目标播放时长,在渲染视频的同时,还渲染视频特效文件中所承载的视频特效,以形成符合目标播放时长的视频特效播放过程,从而实现视频特效与视频同步显示的效果,具体过程如下:终端400响应接收到从服务器200返回的原生视频(每周战报视频)以及视频特效文件,获取原生视频的原生视频时长(每周战报视频的时长),将原生视频时长作为目标播放时长,对视频特效文件进行解码以执行相应的时长伸缩处理,使得经过时长伸缩处理的特效适配于原生视频的播放时长,最后将该特效进行渲染并与原生视频进行同时显示,以显示出带有特效的每周战报视频。
在一些应用场景中,服务器下发多个视频,视频特效作为多个视频之间的转场动画,以将多个视频进行串联播放;转场动画的时长可以是服务器下发视频时指定的,例如可以是根据用户账号等级(等级越高,则转场时间越短);当终端400中运行的客户端播放完一个视频时,渲染视频特效文件中所承载的视频特效,以形成符合目标播放时长的视频特效播放过程,视频特效播放过程实际上是实现了转场动画的作用,以使多个视频之间的衔接更加自然,具体过程如下:终端400从服务器200中获取对应某一特效的视频特效文件进行解码,且基于指定的目标播放时长(转场动画的时长)执行相应的时长伸缩处理,并将经过时长伸缩处理之后的特效在若干个原生视频之间进行渲染。
服务器针对不同用户下发的视频,或者针对同一用户下发的不同视频的播放时长是变化的,利用同一个视频特效文件可以同时复用于众多视频的播放过程中,减少服务器重复生成视频的计算资源消耗,减少了用户侧的等待延迟。
在另一个应用场景中,终端400中的运行的客户端是社交网络客户端,或者视频分享客户端,具有视频采集、编辑和分享的功能。客户端采集了视频,利用从服务器下载的特效文件进行合成,例如图像拼接(二者同时显示)或时间轴拼接(即以视频特效文件用于衔接采集的多个视频),对于前者,以视频的播放时长为目标播放时长,具体过程如下:终端400响应接收到用户拍摄的原生视频,获取原生视频的原生视频时长,终端400从服务器200中获取对应某一特效的视频特效文件进行解码以将原生视频时长作为目标播放时长,针对视频特效执行相应的时长伸缩处理,使得该视频特效适配于原生视频,将该特效与原生视频进行图像拼接处理后,进行实时渲染以预览最终编辑效果,进行预览后还可以对图像拼接处理结果进行编码处理,形成一个新视频文件分享给其他用户,对于后者,以用户设定的时长或客户端默认的转场动画的时长为目标播放时长,在播放完一个视频后,渲染视频特效文件中所承载的视频特效,以形成符合目标播放时长的视频特效播放过程,视频特效播放过程实际上是实现了转场动画的作用,以使多个视频之间的衔接更加自然,具体过程如下:终端400从服务器200中获取对应某一特效的视频特效文件进行解码,且基于指定的目标播放时长(转场动画的时长)执行相应的时长伸缩处理,并将经过时长伸缩处理之后的特效在若干个原生视频之间进行渲染,并将经过时长伸缩处理之后的特效与若干个原生视频进行时间轴拼接处理,再进行编码处理,得到一个新的视频文件,以向其他用户进行分享。
在上述视频编辑场景中,用户可以继续调整目标播放时长并对原声视频以及视频特效进行重新渲染,直至确定得到的最终预览结果符合要求后,客户端(视频编辑客户端)结合原生视频和视频特效文件编码形成完整的视频文件,并可以进行分享。
需要指出的,上文所述的客户端中用以实现特效处理的功能可以是客户端中原生的,也可以是客户端通过植入相应的插件例如SDK来实现的,对于客户端中实现视频特效处理的具体形式不做限定。
此外,作为客户端渲染的替代方案,当渲染耗费的计算资源(处理器和运存)超出终端的承受能力(例如)时,客户端可以请求服务器进行渲染,并根据服务器返回的渲染数据呈现视频特效播放过程。
下面继续以本发明实施例提供的电子设备为上文所述的终端为例说明,参见图2,图2是本发明实施例提供的终端400一个可选的结构示意图,图2所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的视频特效的处理装置可以采用软件方式实现,图2示出了存储在存储器450中的视频特效的处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:文件获取模块4551、时长获取模块4552、特效帧确定模块4553和渲染模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将说明本发明实施例提供的视频特效的处理方法在上文所述的终端的示例性应用和实施。需要指出,下文是以终端的角度进行说明,但是可以理解的,根据上文的具体应用场景的介绍,下文中视频特效的相关处理可以是由终端中运行的客户端来完成的,因此下文中对终端具体可以是终端中运行的客户端,关于客户端的示例上文已有说明,不再重复。
参见图3A,图3A是本发明实施例提供的视频特效的处理方法的一个可选的流程示意图,将结合图3A示出的步骤进行说明。
在步骤101中,终端获取视频特效文件,并从视频特效文件中提取时长伸缩逻辑。
作为示例,获取视频特效文件的方式主要是通过插件来导出视频特效文件,视频特效文件可以是PAG格式的贴纸动画文件,为了读取工程文件中的动画特性数据,可以根据具体需求选择矢量导出方式、位图序列帧导出方式或者视频序列帧导出方式中的一种导出PAG二进制文件,客户端或者服务器端对导出的PAG二进制文件进行解码,这里以终端为例进行说明,即终端对导出的PAG二进制文件进行解码,进而通过渲染模块进行渲染后呈现,终端进行解码以及呈现的过程可以通过调用渲染SDK实现,解码的作用是将PAG二进制文件反序列化为客户端可以操作的数据对象,解码出的数据结构可以参照PAG数据结构。
在一些实施例中,步骤101中获取视频特效文件,可以通过以下技术方案实现:执行以下处理之一以得到对应特效对象的编码导出文件:对特效对象的多个图层结构进行编码处理,得到对应特效对象的编码导出文件;对特效对象的多个特效帧进行编码处理,得到对应特效对象的编码导出文件;对特效对象的多个特效帧进行视频格式压缩处理,并对得到的视频格式压缩处理结果进行编码处理,得到对应特效对象的编码导出文件;将时长伸缩类型以及时长伸缩区间封装在编码导出文件中,得到对应特效对象的视频特效文件。
作为示例,首先通过以下三种方式之一得到特效对象的编码导出文件:矢量导出、位图序列帧导出和视频序列帧导出,矢量导出方式可以支持大部分的AE特性,导出文件极小,通常应用于用户界面上或内容可编辑的场景,矢量导出是对AE动画图层结构的还原,矢量导出方式是通过AE提供的SDK,对AE动画图层结构进行了还原,并在导出的过程中采用了动态比特位存储技术,大幅降低了文件大小;位图序列帧导出和视频序列帧导出方式能够支持所有的AE特性,但是导出文件较大,通常应用在视频合成中或对动画特效有特别要求的场景,位图序列帧导出的是位图数据,位图序列帧导出是将设计师设计的复杂动效中的每一帧转换为图片格式进行存储,更具体的,针对AE大部分动画具有连贯性、帧间差异小的特点,选取某一帧作为关键帧,后面的每帧数据与之进行对比,获取到差异位图的位置信息、宽高数据,并截取差异位图信息进行存储,从而降低文件大小。同时位图序列帧支持导出多个版本(缩放系数、帧率、尺寸不同),来满足不同场景下的需求,这种处理方式的优点是可以支持所有AE特性,缺点是导出的文件会偏大,且无法实现对AE动画中图片替换、文本编辑操作,适用于处理遮罩、阴影等复杂特效,主要应用于网页端;视频序列帧导出方式采用的是视频领域的H.264压缩格式,相对于位图序列帧,解码速度会更快,侧重应用于移动端,视频序列帧导出方式将截取的图片进行视频格式压缩,视频序列帧导出方式是针对位图序列帧导出图片格式体积大和解码效率低的问题所进行一种优化,从性能方面看,矢量导出方式可以做到文件大小和性能都到非常优化的极限状态,但是需要设计师花费额外的工作量不断进行调优,针对于序列帧导出方式产生的PAG视频特效文件,渲染性能上增加了额外的图片解码耗时,但整体耗时只跟序列帧图片的尺寸有关系。
作为示例,将用户输入的时长伸缩类型以及时长伸缩区间封装在编码导出文件中,实际上是修改PAG贴纸动画文件的数据结构,可以在文件根路径的层级增加时长伸缩类型和时长伸缩区间,最终得到对应特效对象的视频特效文件,在具体实施的过程中,可以不限定封装步骤与进行编码步骤的执行顺序,即可以先在根路径的层级增加时长伸缩类型和时长伸缩区间,再进行上述三种方式之一的编码导出处理,也可以先进行编码导出处理,再在根路径的层级增加时长伸缩类型和时长伸缩区间。
通过上述实施例,将设计师通过AE设计动画、再提供动画数据特性到终端开发工程师以实现动画功能的开发流程,缩减为设计师通过AE设计动画的导出PAG贴纸动画文件,终端对PAG贴纸动画文件直接加载显示,即大幅减少了终端开发的工作量,也兼容了各个平台的开发需求。
在一些实施例中,所述时长伸缩逻辑包括时长伸缩区间以及对应的时长伸缩类型;步骤101中从视频特效文件中提取时长伸缩逻辑,可以通过以下技术方案实现:对视频特效文件进行解码处理,得到对应视频特效文件的至少一个时长伸缩区间以及对应的时长伸缩类型;其中,时长伸缩类型包括以下类型中的任意一种:时间线性伸缩类型;时间重复类型;时间倒序重复类型。
作为示例,视频特效文件可以为上述PAG贴纸动画文件,是一种针对特效对象的描述文件,在进行解码后可以提取到基于用户配置的时长伸缩区间与对应的时长伸缩类型,时长伸缩区间的数目通常为1个,但是在较为复杂的应用场景下,时长伸缩区间的数目为多个,针对每个时长伸缩区间,分别对应有用户配置的时长伸缩类型,对于用户配置功能,可以通过终端为用户提供配置入口,接收用户输入的时长伸缩区间与时长伸缩类型,参见图6A,图6A是本发明实施例提供的视频特效的处理方法的标注示意图,即通过各个应用场景下的客户端提供的配置入口601和602来接收用户输入的时长伸缩区间与时长伸缩类型,在接收到时长伸缩逻辑之后,还可以发生页面跳转,以继续接收输入的对应各个时长伸缩区间的目标播放时长,或者在设置完时长伸长逻辑之后,将所接收的配置信息通过进程间通信发送到AE客户端,以结合AE客户端中获取的特效数据进行编码处理,获取最终的视频特效文件,从视频特效文件中提取伸缩逻辑之后,再提供目标播放时长的配置入口603,通过这种实施方式能够有利于任意应用场景的客户端灵活设置动画特效文件的伸缩逻辑,还可以通过AE客户端进行时长伸缩区间与时长伸缩类型的标注,参见图6B-6C,图6B-6C是本发明实施例提供的视频特效的处理方法的标注示意图,即直接通过AE客户端接收用户输入的时长伸缩区间与时长伸缩类型,以结合AE客户端中获取的特效数据进行编码处理,获取最终的视频特效文件,通过这种实施方式可以缓解各个应用场景的客户端的开发优化任务,各个客户端侧可以直接调用渲染SDK获取视频特效文件以执行后续的逻辑。
在步骤102中,终端获取需要所述视频特效文件所实现的目标播放时长,其中,目标播放时长区别于视频特效文件的原始播放时长。
基于图3A,参见图3B,图3B是本发明实施例提供的视频特效的处理方法的一个可选的流程示意图,步骤102中获取需要所述视频特效文件所实现的目标播放时长可以通过步骤1021至步骤1022实现,将结合各步骤进行说明。
在步骤1021中,当时长伸缩区间的数目为多个时,将视频特效文件拆分为与数目一致的多个视频特效子文件,并分别获取针对每个视频特效子文件的目标播放时长间。
作为示例,在实施过程中并不限定视频特效文件拆分的方式,只需要保证拆分后得到的每个视频特效子文件中均包含有且仅包含有一个时长伸缩区间,而针对于每个时长伸缩区间的目标播放时长可以是对视频特效文件的目标播放时长进行分配得到的,例如,视频特效文件的目标播放时长为10秒,视频特效文件中存在两个时长伸缩区间,分别是1秒-2秒的第一时长伸缩区间、以及3秒-4秒的第二时长伸缩区间这两个区间,那么针对于第一时长伸缩区间的第一目标播放时长仅需要保证结合对应第二时长伸缩区间的第二目标播放时长满足视频特效文件的目标播放时长,即若第一时长伸缩类型是重复类型,那么第一目标播放时长至少大于2秒(0秒-2秒),且第一目标播放时长和第二目标播放时长的总和为10秒,由于限制条件较少,即仅限定了对应各子文件的目标播放时长的和为视频特效文件的目标播放时长,以及各个子文件的目标播放时长满足对应时长伸缩区间,在不需要用户人为干预的情形下,避免了用户进行设置的麻烦,从而提供了多样化且随机的渲染效果。
作为示例,每个视频特效子文件的目标播放时长间实际涉及到视频特效文件的目标播放时长的分配问题,在进行分配的过程中可以按照上述满足一定条件的约束下进行任意分配之外,还可以为用户提供分配方案配置功能,在图6C的用户配置入口中还可以提供相关入口以方便用户输入为每个时长伸缩区间所配置的目标播放时长,例如,由用户设定每个时长伸缩区间对应的视频特效子文件的目标播放时长,通过这种实施方式有利于用户以更细粒度的方式灵活控制各个子文件的渲染效果,进而控制整个文件的渲染效果。
作为示例,当时长伸缩区间的数目为多个时,且存在需要与特效进行适配呈现的原生视频时,可以直接将原生视频的时长作为视频特效文件对应的目标播放时长,针对不同伸缩区间对原生视频的时长进行分配,使得每个伸缩区间的目标播放时长满足上述限制条件,若分配的目标播放时长不满足对应特效子文件的时长伸缩逻辑中的时长伸缩类型,则选择其他的视频特效文件,在素材库中可以存在相同特效对象对应不同时长伸缩逻辑的视频特效文件。
在步骤1022中,当时长伸缩区间的数目为一个时,获取针对视频特效文件的整体的目标播放时长。
作为示例,当时长伸缩区间的数目为一个时,并不存在需要对视频特效文件的目标播放时长进行分配的问题,直接将用户配置的目标播放时长作为视频特效文件的整体的目标播放时长,当用户输入的目标播放时长不符合时长伸缩区间的时长伸缩类型时,会返回用户提示错误信息,并再次开放入口供接收用户输入目标播放时长。
作为示例,当时长伸缩区间的数目为一个时,且存在需要与特效进行适配呈现的原生视频时,可以直接将原生视频的时长作为特效的目标播放时长,若原生视频的时长不满足对应特效文件的时长伸缩逻辑中的时长伸缩类型,则选择其他的视频特效文件,在素材库中可以存在相同特效对象对应不同时长伸缩逻辑的视频特效文件。
由于不同的应用场景下对于目标播放时长的需求是多种多样的,同一个视频特效文件可以同时复用于众多视频的播放过程以及编辑过程中,可以减少服务器重复生成视频的计算资源消耗,减少了用户侧的等待延迟。
在一些实施例中,在执行步骤102获取需要所述视频特效文件所实现的目标播放时长之后,还可以执行以下技术方案:当时长伸缩区间的数目为多个时,针对每个视频特效子文件执行以下处理:从视频特效子文件的时间轴中获取对应特效对象的原始时间轴,即子文件的时间轴中出现特效对象的部分时间轴;保持原始时间轴的帧率不变,对原始时间轴进行时长伸缩处理,得到对应目标播放时长的目标时间轴;当时长伸缩区间的数目为一个时,针对视频特效文件执行以下处理:从视频特效文件中获取对应特效对象的原始时间轴;保持原始时间轴的帧率不变,对原始时间轴进行时长伸缩处理,得到对应目标播放时长的目标时间轴。
作为示例,当时长伸缩区间的数目为多个时,从视频特效子文件的时间轴中出现特效对象的部分时间轴作为原始时间轴,保持原始时间轴的帧率不变,对原始时间轴进行时长伸缩处理,得到对应目标播放时长的目标时间轴。当时长伸缩区间的数目为一个时,直接将视频特效文件中对应特效对象的原始时间轴进行时长伸缩处理,得到对应目标播放时长的目标时间轴,上述这两种情形中所进行的伸缩处理时,均保持帧率不变,即保证最小时间单位不变,从而使得特效的时长伸缩处理的效果是播放进度发生改变,而不是播放帧率发生改变。
在步骤103中,终端根据时长伸缩逻辑,确定视频特效文件中与目标时间轴对应的特效帧;其中,目标时间轴的长度与目标播放时长一致。
基于图3A,参见图3C,图3C是本发明实施例提供的视频特效的处理方法的一个可选的流程示意图,当时长伸缩区间的数目为多个时,步骤103中根据时长伸缩逻辑,确定视频特效文件中与目标时间轴对应的特效帧可以通过针对每个时长伸缩区间执行步骤1031A至步骤1032A实现,将结合各步骤进行说明。
在步骤1031A中,从视频特效子文件中获取包括特效对象的多个特效帧、以及每个特效帧在原始时间轴上对应的时间戳,以作为每个特效帧的原始特效帧时间戳。
作为示例,在不需要进行时长伸缩处理时,所依赖的渲染逻辑即是视频特效子文件中各个特效帧在原始时间轴上对应的时间戳,例如,存在特效帧1至特效帧24,帧率是24帧每秒,即每1/24秒为一个时间戳,例如0,1/24,2/24,…,23/24,在这24个时间戳上分别呈现特效帧1至24,上述时间戳0,1/24,2/24,…,23/24分别为特效帧1至特效帧24的原始特效帧时间戳。
在步骤1032A中,基于时长伸缩区间、以及每个特效帧对应的原始特效帧时间戳,在多个特效帧中确定与目标时间轴上每个时间戳对应的特效帧。
作为示例,进行时长伸缩处理的过程实际上是确定目标时间轴上每个时间戳对应的特效帧,假设原始时间轴是1秒,帧率是24帧每秒,即每1/24秒为一个时间戳,目标时间轴是2秒,帧率仍然是24帧每秒,则目标时间轴上每个时间戳为0,1/24,2/24,…,23/24,24/24,…,47/24,在进行伸缩处理时,可以通过时长伸缩区间以及对应的时长伸缩类型来确定目标时间轴上的时间戳与原始时间轴上时间戳的映射关系以及映射范围,从而基于映射关系以及映射范围确定目标时间轴上的每个时间戳所对应的原始时间轴上时间戳,所对应的原始时间轴上时间戳中有的时间戳是原始特效帧时间戳,有的时间戳没有呈现特效帧,例如时间戳为1/48,对于没有呈现特效帧的时间戳采取就近原则,来确定需要呈现的特效帧。
基于图3A,参见图3D,图3D是本发明实施例提供的视频特效的处理方法的一个可选的流程示意图,当时长伸缩区间的数目为一个时,步骤103中根据时长伸缩逻辑,确定视频特效文件中与目标时间轴对应的特效帧可以通过步骤1031B至步骤1032B实现,将结合各步骤进行说明。
在步骤1031B中,从视频特效文件中获取包括特效对象的多个特效帧、以及每个特效帧在原始时间轴上对应的时间戳,以作为每个特效帧的原始特效帧时间戳。
作为示例,在不需要进行时长伸缩处理时,所依赖的渲染逻辑即是视频特效文件中各个特效帧在原始时间轴上对应的时间戳,例如,存在特效帧1至特效帧24,帧率是24帧每秒,即每1/24秒为一个时间戳,例如0,1/24,2/24,…,23/24,在这24个时间戳上分别呈现特效帧1至24,上述时间戳0,1/24,2/24,…,23/24分别为特效帧1至特效帧24的原始特效帧时间戳。
在步骤1032B中,基于时长伸缩区间、以及每个特效帧对应的原始特效帧时间戳,在多个特效帧中确定与目标时间轴上每个时间戳对应的特效帧。
作为示例,进行时长伸缩处理的过程实际上是确定目标时间轴上每个时间戳对应的特效帧,假设原始时间轴是1秒,帧率是24帧每秒,即每1/24秒为一个时间戳,目标时间轴是2秒,帧率仍然是24帧每秒,则目标时间轴上每个时间戳为0,1/24,2/24,…,23/24,24/24,…,47/24,在进行伸缩处理时,可以通过时长伸缩区间以及对应的时长伸缩类型来确定目标时间轴上的时间戳与原始时间轴上时间戳的映射关系以及映射范围,从而基于映射关系以及映射范围确定目标时间轴上的每个时间戳所对应的原始时间轴上时间戳,所对应的原始时间轴上时间戳中有的时间戳是原始特效帧时间戳,有的时间戳没有呈现特效帧,例如时间戳为1/48,对于没有呈现特效帧的时间戳采取就近原则,来确定需要呈现的特效帧。
在一些实施例中,步骤1032A或者1032B中基于时长伸缩区间、以及每个特效帧对应的原始特效帧时间戳,在多个特效帧中确定与目标时间轴上每个时间戳对应的特效帧,可以通过以下技术方案实现:依次将目标时间轴上每个时间戳作为目标时间戳,以执行以下处理:基于时长伸缩区间,确定目标时间戳在原始时间轴上对应的时间戳;当目标时间戳在原始时间轴上对应的时间戳与任一原始特效帧时间戳重叠时,将重叠的原始特效帧时间戳对应的特效帧确定为目标时间戳对应的特效帧;当目标时间戳在原始时间轴上对应的时间戳未与任一原始特效帧时间戳重叠时,确定与目标时间戳在原始时间轴上对应的时间戳距离最小的原始时间戳,并将确定原始特效帧时间戳对应的特效帧确定为目标时间戳对应的特效帧。
作为示例,假设原始时间轴是1秒,帧率是24帧每秒,即每1/24秒为一个时间戳,存在特效帧1至特效帧24,帧率是24帧每秒,即每1/24秒为一个时间戳,例如0,1/24,2/24,…,23/24,在这24个时间戳上分别呈现特效帧1至24,上述时间戳0,1/24,2/24,…,23/24分别为特效帧1至特效帧24的原始特效帧时间戳,目标时间轴是2秒,帧率仍然是24帧每秒,则目标时间轴上每个时间戳为0,1/24,2/24,…,23/24,24/24,…,47/24,将目标时间轴上每个时间戳作为目标时间戳,并分别确定各个目标时间戳对应的原始时间戳,分别对应的原始时间戳是0,0,1/24,1/24,2/24,2/24,…,23/24,23/24,由于目标时间戳在原始时间轴上对应的时间戳与原始特效帧时间戳重叠,则将这些原始特效帧时间戳所对应的特效帧分别确定为各个目标时间戳上的特效帧,则目标时间轴上每个时间戳为0,1/24,2/24,…,23/24,24/24,…,47/24分别对应的特效帧为特效帧1,特效帧1,…,特效帧24,特效帧24,但是这种变换情况是理想状态下的变换,在一些情形下,目标时间轴上每个目标时间戳所对应的原始时间轴上的时间戳并不一定都是原始特效帧时间戳,例如,假设目标时间戳1/24在原始时间轴上对应的时间戳为1/48,但是在帧率为24帧每秒的情况下原始时间轴上的时间戳1/48并没有对应的特效帧,因此采取就近原则,将时间距离最近的特效帧A作为时间戳1/48的特效帧,进而确定为目标时间戳1/24对应的特效帧,出于存在两个距离最近时间戳的原因,这里特效帧A可以是时间戳0上的特效帧,也可以是时间戳1/24的特效帧,若是目标时间戳1/24在原始时间轴上对应的时间戳为1/36,则距离其最近的时间戳是时间戳1/48,这里的特效帧A为时间戳1/24的特效帧。
在一些实施例中,上述基于时长伸缩区间,确定目标时间戳在原始时间轴上对应的时间戳,可以通过以下技术方案实现:针对每个时长伸缩区间执行以下处理:当目标时间戳不大于时长伸缩区间的起始时间戳时,将目标时间戳确定为在原始时间轴上对应的原始时间戳;当目标时间戳大于时长伸缩区间的起始时间戳,且小于时长伸缩区间的终止时间戳时,对目标时间戳进行基于时长伸缩类型的映射,得到对应的原始时间戳;当目标时间戳大于或者等于终止时间戳,且小于目标播放时长时,确定原始播放时长与目标播放时长之间的第一差值,将第一差值与目标时间戳进行求和处理,并将求和处理结果确定目标时间戳在原始时间轴上对应的时间戳。
作为示例,由于时长伸缩逻辑中的时长伸缩区间已经限定了需要进行伸缩的区间,因此针对于目标时间轴上不同的时间戳,将根据不同的映射关系,映射得到在原始时间轴上对应的时间戳,参见图7,原始时间轴的长度是m,目标时间轴的长度是n,时长伸缩区间是从a至b,时长伸缩区间的长度是b-a,经过时长拉伸处理之后,时长伸缩区间的起始时间戳是a,终止时间戳是n-(m-b),若目标时间戳t在0至a之间,则对应在原始时间轴上的时间戳也是t,因为这个时间段属于片头固定的区间,若目标时间戳t在n-(m-b)至n之间,则对应在原始时间轴上的时间戳是m-n+t,若目标时间戳t在a至n-m+b之间,则需要根据不同的时长伸缩类型进行映射处理。
在一些实施例中,上述对目标时间戳进行基于时长伸缩类型的映射,得到对应的原始时间戳,可以通过以下技术方案实现:当时长伸缩类型为时间线性缩减类型、或者时间线性拉伸类型时,将目标播放时长与原始播放时长的第二差值确定为伸缩长度,并将伸缩长度与时长伸缩区间的长度进行求和处理;对时长伸缩区间的长度与求和处理结果进行求比值处理,得到伸缩系数;确定目标时间戳与起始时间戳之间的第三差值,将第三差值与伸缩系数进行相乘处理;对相乘处理结果与起始时间戳进行求和处理,得到对应的原始时间戳。
作为示例,当目标时间戳t在a至n-m+b之间,则需要根据不同的时长伸缩类型进行映射处理,若时长伸缩类型为时间线性伸缩时,将目标播放时长n与原始播放时长m的第二差值确定为伸缩长度,并将伸缩长度与时长伸缩区间的长度b-a进行求和处理;对时长伸缩区间的长度b-a与求和处理结果进行求比值处理,得到伸缩系数k;确定目标时间戳t与起始时间戳a之间的第三差值,将第三差值与伸缩系数k进行相乘处理;对相乘处理结果与起始时间戳a进行求和处理,得到对应的原始时间戳,具体计算原理可以参见以下公式:f(t)=a+k(t-a),a<t<n-m+b。
在一些实施例中,上述对目标时间戳进行基于时长伸缩类型的映射,得到对应的原始时间戳,可以通过以下技术方案实现:当时长伸缩类型为时间重复类型时,确定目标时间戳与起始时间戳之间的第四差值,对第四差值与时长伸缩区间的长度进行求余数处理;将求余数处理结果与起始时间戳进行求和处理,得到对应的原始时间戳。
作为示例,当目标时间戳t在a至n-m+b之间,则需要根据不同的时长伸缩类型进行映射处理,若时长伸缩类型为时间重复类型时,确定目标时间戳t与起始时间戳a之间的第四差值,对第四差值与时长伸缩区间的长度(b-a)进行求余数处理;将求余数处理结果与起始时间戳a进行求和处理,得到对应的原始时间戳,具体计算原理可以参见以下公式:f(t)=a+(t-a)%(b-a),a<t<n-m+b。
在一些实施例中,上述对目标时间戳进行基于时长伸缩类型的映射,得到对应的原始时间戳,可以通过以下技术方案实现:当时长伸缩类型为时间倒序重复类型时,确定目标时间戳与起始时间戳之间的第五差值,对第五差值与时长伸缩区间的长度进行求余数处理;针对对应求余数处理结果的比值结果进行取整处理,得到取整结果;当取整结果为偶数时,将求余数处理结果与起始时间戳进行求和处理,得到对应的原始时间戳;当取整结果为奇数时,确定时长伸缩区间的长度与求余数处理结果之间的第六差值,对第六差值与起始时间戳进行求和处理,得到对应的原始时间戳。
作为示例,当目标时间戳t在a至n-m+b之间,则需要根据不同的时长伸缩类型进行映射处理,若时长伸缩类型为时间倒序重复类型时,确定目标时间戳t与起始时间戳a之间的第五差值,对第五差值与时长伸缩区间的长度(b-a)进行求余数处理;例如,对8与3进行求余数处理,得到的求余数处理结果为2,对应的比值结果为8/3,取整处理之后得到的取整结果为2,针对对应求余数处理结果的比值结果进行取整处理,得到取整结果;当取整结果为偶数时,将求余数处理结果与起始时间戳a进行求和处理,得到对应的原始时间戳;当取整结果为奇数时,确定时长伸缩区间的长度(b-a)与求余数处理结果之间的第六差值,对第六差值与起始时间戳a进行求和处理,得到对应的原始时间戳,具体计算原理可以参见以下公式:f(t)=a+(t-a)%(b-a),a<t<n-m+b。
在步骤104中,终端根据与目标时间轴对应的特效帧进行渲染,以形成符合目标播放时长的视频特效播放过程。
作为示例,终端根据目标时间轴上每个时间戳的特效帧,在对应时间戳上进行渲染处理,从而得到符合目标播放时长的视频特效播放过程。
作为示例,在进行短视频编辑的场景下,终端响应接收到用户拍摄的原生视频或者从服务器返回的原生视频,获取原生视频的原生视频时长,终端对素材库中的对应某一特效的视频特效文件进行解码以执行相应的时长伸缩处理,将原生视频时长作为目标播放时长,使得该特效适配于原生视频,将该特效与原生视频进行拼接处理后可以进行实时渲染,作为最终效果的预览,进行预览后对拼接处理结果进行编码处理,形成一个新视频文件分享给其他用户。
作为示例,在进行短视频编辑的场景下,视频特效文件中的特效还可以作为若干个原生视频之间的衔接动画,终端对素材库中的对应某一特效的视频特效文件进行解码,且接收针对目标播放时长的设置操作以执行相应的时长伸缩处理,使得经过时长伸缩处理之后的特效处在若干个原生视频之间,将该特效与原生视频进行时间轴拼接处理后可以进行实时渲染,作为最终效果的预览,进行预览后对拼接处理结果进行编码处理,形成一个新视频文件分享给其他用户。
作为示例,在不涉及到文件分享的场景中,例如,游戏战报场景,终端响应接收到从服务器返回的原生视频以及特效视频文件,获取原生视频的原生视频时长,并对视频特效文件进行解码以执行相应的时长伸缩处理,将原生视频时长作为目标播放时长,使得该特效适配于原生视频的播放时长,将该特效与原生视频进行渲染并同时显示。
参见图3E,图3E是本发明实施例提供的视频特效的处理方法的一个可选的流程示意图,上述实施例在实施过程中仅通过终端执行具体处理流程,除此之外,还可以结合终端和服务器来实现上述处理流程,在步骤201中,终端向服务器发出渲染请求,在步骤202中,服务器获取视频特效文件,并从视频特效文件中提取时长伸缩逻辑,在步骤203中,服务器将提取的时长伸缩逻辑返回至终端,在步骤204中,终端接收输入的目标播放时长,在步骤205中,终端将目标播放时长发送至服务器,在步骤206中,服务器根据时长伸缩逻辑,确定视频特效文件中与目标时间轴对应的特效帧;在步骤207中,服务器根据与目标时间轴对应的特效帧进行渲染,以形成符合目标播放时长的视频特效播放过程;在步骤208中,服务器将视频特效返回至终端,在步骤209中,终端呈现视频特效,上述过程涉及到终端与服务器之间的交互过程,将需要大量计算资源的渲染处理分配给服务器来完成,终端仅负责接收用户的配置需求,以及呈现渲染得到的视频特效,在其他实施方式中,还可以将上述服务器所完成的逻辑通过调用渲染SDK来完成,或者通过渲染SDK远程调用云服务器资源完成。
本发明实施例提供一种视频特效的处理方法,可以支持固定动画文件的时间伸缩,并且外部应用平台只需要设置动画文件的目标播放时间,动画文件就可以按照用户配置的伸缩逻辑进行时间伸缩。视频特效文件的播放时长伸缩处理是由视频特效文件中的时长伸缩逻辑控制,对视频特效文件解码后,根据时长伸缩逻辑处理并渲染即可实现目标播放时长的视频特效播放过程;能够直接应用于各种应用和各种平台,且不受平台的操作系统的限制,实现流程极其简洁。
下面,将说明本发明实施例提供的视频特效的处理方法在一个实际的应用场景中的示例性应用。
本发明实施例提供的视频特效的处理方法在游戏周战报视频中有着广泛的应用,参见图4,图4是本发明实施例提供的视频特效的处理方法在游戏周战报视频的场景中的应用效果示意图,终端需要进行呈现的是中间区域的横向视频(原生视频)及上下区域的贴纸动画(对应视频特效文件的特效对象),通过PAG贴纸动画来实现上下区域的贴纸动画,这是一个竖屏动画,呈现在视频的上下边缘区域,并伴随有周期性的动画效果,在其他的应用场景中,还存在贴纸动画的片头以及片尾固定,中间部分的内容根据需求进行时间拉伸的情况,需求可以是目标播放时长,目标播放时长可以为横向视频的时长(原生视频的时长),图4中的应用效果示意图可以通过如下步骤实现,客户端触发了请求服务器下发每周战报视频的下发逻辑,使得服务器向客户端下发每周战报视频,客户端响应接收到从服务器200返回的每周战报视频(原生视频)以及对应的视频特效文件,获取每周战报视频的时长作为目标播放时长,并基于目标播放时长对视频特效文件进行解码以执行相应的时长伸缩处理,使得经过时长伸缩处理的特效对象适配于每周战报视频的时长,最后将该特效对象进行渲染并与每周战报视频进行同时显示,显示出的效果即为带有特效对象的每周战报视频。
参见图5,图5是本发明实施例提供的视频特效的处理系统的流程图,首先在AE中通过插件设置贴纸动画的伸缩区间及伸缩类型,参见图6B,图6B是本发明实施例提供的视频特效的处理方法的标注示意图,在贴纸动画的总合成中添加标注,AE中的插件可以支持对图层添加标注,(1)通过点击空白区域的操作,使得没有图层被选择,(2)响应于点击图层控件的操作,呈现图层菜单,(3)响应于添加标记的操作实现标记添加过程,从而结合具体的使用场景,可以添加相关标识,例如时长伸缩区间和时长伸缩类型,便于后续通过渲染SDK按照时长伸缩区间和时长伸缩类型进行渲染处理,参见图6C,图6C是本发明实施例提供的视频特效的处理方法的标注示意图,具体可以设置时长伸缩区间以及四种时长伸缩类型,具体设置过程如下:(1)响应于双击标注的操作,呈现设置页面;(2)在设置页面中接收时长伸缩类型(即所填写的内容),(3)在设置页面中接收修改的起始时间,(4)在设置页面接收到确认保存操作,时长伸缩类型包括以下几种:1、无伸缩类型:表示无需进行时长伸缩;2、线性伸缩类型:当设置整个PAG贴纸动画的目标播放时长长于原始PAG贴纸动画的原始播放时长时,在时长伸缩区间进行线性拉伸,当设置整个PAG贴纸动画的目标播放时长短于原始PAG贴纸动画的原始播放时长时,在时长伸缩区间进行线性缩减;3、重复类型:时间伸缩类型为重复类型,当设置整个PAG贴纸动画的目标播放时长长于原始PAG贴纸动画的原始播放时长时,在时长伸缩区间进行周期性拉伸;4、重复倒转类型:当设置整个PAG贴纸动画的目标播放时长长于原始PAG贴纸动画的原始播放时长时,在时长伸缩区间进行倒序周期性拉伸,即先进行正序播放,再进行倒序播放,然后再进行正序播放,接着再进行倒序播放,依此类推。
对特效对象进行编码处理得到了PAG贴纸动画文件,当时长伸缩区间及类型设置成功后,可以导出PAG贴纸动画文件,通过修改PAG贴纸动画文件的数据结构,在文件根路径的层级增加时长伸缩类型和时长伸缩区间,便于进行编码处理,具体到平台端使用时,渲染SDK的解码模块需要进行相应数据的解码读取,渲染SDK可以是客户端SDK或者是服务器SDK,客户端SDK在客户端完成渲染,服务器端SDK在服务器完成渲染。
为了在PAG贴纸动画上增加支持时长伸缩的功能,并且因为基于AE设计的动画的渲染逻辑比较复杂,例如带有轨迹计算、时间缓动等相关效果,如果通过修改PAG贴纸动画的具体图层的动画特性来实现动画时间拉伸功能,其实现复杂度会相当高,因此不宜修改PAG贴纸动画的图层的具体动画特性,于是渲染侧中可以在原始渲染时间计算逻辑上进行封装,通过改变原始动画文件的渲染进度来实现时长伸缩的功能,计算时长伸缩区间的具体渲染进度。
参见图7,图7是本发明实施例提供的视频特效的处理方法的时间轴示意图,原始时间轴和目标时间轴的最小时间单位均为帧,若帧率为24帧每秒,则表示一秒时间内呈现24帧,最小时间单位为1/24秒,PAG贴纸动画文件的原始播放时长为m,其中包含一个时长伸缩区间(a,b),如果时长伸缩类型为无伸缩类型,则渲染逻辑和之前的逻辑保持一致,不会进行时长伸缩处理,如果时长伸缩类型为其他几种类型,且经过伸缩后的目标播放时长为n,则具体渲染进度的计算过程如下:首先计算时间伸缩系数k,k=(b-a)/(n–m+b-a);t为伸缩后的渲染时间点,即目标时间轴上的目标时间戳,f(t)为PAG贴纸动画的原始时间轴上进行实际渲染的原始时间戳,当时间伸缩类型为线性伸缩类型时,按照如下公式(1)计算PAG贴纸动画的原始时间轴上进行实际渲染的原始时间戳:
当时间伸缩类型为重复类型时,按照如下公式(2)计算PAG贴纸动画的原始时间轴上进行实际渲染的原始时间戳:
当时间伸缩类型为重复倒转类型时,当a<t<n-m+b时,分两种情况计算PAG贴纸动画的原始时间轴上进行实际渲染的原始时间戳:当(t-a)/(b-a)计算结果取整为偶数时,f(t)=a+(t-a)%(b-a),当(t-a)/(b-a)计算结果取整为奇数时,f(t)=b-(t-a)%(b-a),当t为其它范围的取值时,与上面的计算相同,当PAG贴纸动画中有多个时长伸缩区间时,计算方法类似,需要针对多个时长伸缩区间进行计算,当通过以上公式计算出f(t)后,渲染SDK中的渲染模块便可以根据对应的原始时间戳渲染出最终需要的特效对应的动画画面,最后将该特效对象的动画画面与每周战报视频进行同时显示,显示出的效果即为带有特效对象的每周战报视频。
本发明实施例提供一种视频特效的处理方法,能够很好地解决了用户界面动画(例如,视频编辑)、服务器端特效视频渲染场景下对于特效动画的时长需求不固定与设计师设计的贴纸动画文件时长固定之间的矛盾,在设计贴纸动画效果时,当设计师设定好时长伸缩区间及时长伸缩类型后,任意平台端使用过程中只需要设置贴纸动画的目标播放时长,便可实现动画的时间拉伸效果。
下面继续说明本发明实施例提供的视频特效的处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的视频特效的处理装置455中的软件模块可以包括:文件获取模块4551,用于获取视频特效文件,并从视频特效文件中提取时长伸缩逻辑;时长获取模块4552,用于获取需要所述视频特效文件所实现的目标播放时长,其中,目标播放时长区别于视频特效文件的原始播放时长;特效帧确定模块4553,用于根据时长伸缩逻辑,确定视频特效文件中与目标时间轴对应的特效帧;其中,目标时间轴的长度与目标播放时长一致;渲染模块4554,用于根据与目标时间轴对应的特效帧进行渲染,以形成符合目标播放时长的视频特效播放过程。
在一些实施例中,文件获取模块4551,还用于:执行以下处理之一以得到对应特效对象的编码导出文件:对特效对象的多个图层结构进行编码处理,得到对应特效对象的编码导出文件;对特效对象的多个特效帧进行编码处理,得到对应特效对象的编码导出文件;对特效对象的多个特效帧进行视频格式压缩处理,并对得到的视频格式压缩处理结果进行编码处理,得到对应特效对象的编码导出文件;将时长伸缩类型以及时长伸缩区间封装在编码导出文件中,得到对应特效对象的视频特效文件。
在一些实施例中,所述时长伸缩逻辑包括时长伸缩区间以及对应的时长伸缩类型;文件获取模块4551,还用于:对视频特效文件进行解码处理,得到对应视频特效文件的至少一个时长伸缩区间以及对应的时长伸缩类型;其中,时长伸缩类型包括以下类型中的任意一种:时间线性伸缩类型;时间重复类型;时间倒序重复类型。
在一些实施例中,时长获取模块4552,还用于:当时长伸缩区间的数目为多个时,将视频特效文件拆分为与数目一致的多个视频特效子文件,并分别获取针对每个视频特效子文件的目标播放时长间;当时长伸缩区间的数目为一个时,获取针对视频特效文件的整体的目标播放时长。
在一些实施例中,时长获取模块4552,还用于:在获取需要所述视频特效文件所实现的目标播放时长之后,当时长伸缩区间的数目为多个时,针对每个视频特效子文件执行以下处理:从视频特效子文件中获取对应特效对象的原始时间轴;保持原始时间轴的帧率不变,对原始时间轴进行时长伸缩处理,得到对应目标播放时长的目标时间轴;当时长伸缩区间的数目为一个时,针对视频特效文件执行以下处理:从视频特效文件中获取对应特效对象的原始时间轴;保持原始时间轴的帧率不变,对原始时间轴进行时长伸缩处理,得到对应目标播放时长的目标时间轴。
在一些实施例中,当时长伸缩区间的数目为多个时,特效帧确定模块4553,还用于:针对每个时长伸缩区间执行以下处理:从视频特效子文件中获取包括特效对象的多个特效帧、以及每个特效帧在原始时间轴上对应的时间戳,以作为每个特效帧的原始特效帧时间戳;基于时长伸缩区间、以及每个特效帧对应的原始特效帧时间戳,在多个特效帧中确定与目标时间轴上每个时间戳对应的特效帧。
在一些实施例中,当时长伸缩区间的数目为一个时,特效帧确定模块4553,还用于:从视频特效文件中获取包括特效对象的多个特效帧、以及每个特效帧在原始时间轴上对应的时间戳,以作为每个特效帧的原始特效帧时间戳;基于时长伸缩区间、以及每个特效帧对应的原始特效帧时间戳,在多个特效帧中确定与目标时间轴上每个时间戳对应的特效帧。
在一些实施例中,特效帧确定模块4553,还用于:依次将目标时间轴上每个时间戳作为目标时间戳,以执行以下处理:基于时长伸缩区间,确定目标时间戳在原始时间轴上对应的时间戳;当目标时间戳在原始时间轴上对应的时间戳与任一原始特效帧时间戳重叠时,将重叠的原始特效帧时间戳对应的特效帧确定为目标时间戳对应的特效帧;当目标时间戳在原始时间轴上对应的时间戳未与任一原始特效帧时间戳重叠时,确定与目标时间戳在原始时间轴上对应的时间戳距离最小的原始时间戳,并将确定原始特效帧时间戳对应的特效帧确定为目标时间戳对应的特效帧。
在一些实施例中,特效帧确定模块4553,还用于:针对每个时长伸缩区间执行以下处理:当目标时间戳不大于时长伸缩区间的起始时间戳时,将目标时间戳确定为在原始时间轴上对应的原始时间戳;当目标时间戳大于时长伸缩区间的起始时间戳,且小于时长伸缩区间的终止时间戳时,对目标时间戳进行基于时长伸缩类型的映射,得到对应的原始时间戳;当目标时间戳大于或者等于终止时间戳,且小于目标播放时长时,确定原始播放时长与目标播放时长之间的第一差值,将第一差值与目标时间戳进行求和处理,并将求和处理结果确定目标时间戳在原始时间轴上对应的时间戳。
在一些实施例中,特效帧确定模块4553,还用于:当时长伸缩类型为时间线性缩减类型、或者时间线性拉伸类型时,将目标播放时长与原始播放时长的第二差值确定为伸缩长度,并将伸缩长度与时长伸缩区间的长度进行求和处理;对时长伸缩区间的长度与求和处理结果进行求比值处理,得到伸缩系数;确定目标时间戳与起始时间戳之间的第三差值,将第三差值与伸缩系数进行相乘处理;对相乘处理结果与起始时间戳进行求和处理,得到对应的原始时间戳。
在一些实施例中,特效帧确定模块4553,还用于:当时长伸缩类型为时间重复类型时,确定目标时间戳与起始时间戳之间的第四差值,对第四差值与时长伸缩区间的长度进行求余数处理;将求余数处理结果与起始时间戳进行求和处理,得到对应的原始时间戳。
在一些实施例中,特效帧确定模块4553,还用于:当时长伸缩类型为时间倒序重复类型时,确定目标时间戳与起始时间戳之间的第五差值,对第五差值与时长伸缩区间的长度进行求余数处理;针对对应求余数处理结果的比值结果进行取整处理,得到取整结果;当取整结果为偶数时,将求余数处理结果与起始时间戳进行求和处理,得到对应的原始时间戳;当取整结果为奇数时,确定时长伸缩区间的长度与求余数处理结果之间的第六差值,对第六差值与起始时间戳进行求和处理,得到对应的原始时间戳。
本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的电子红包的发送方法,例如,如图3A-3D示出的视频特效的处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上,通过本发明实施例,通过视频特效文件中封装时长伸缩逻辑,使得一个视频特效文件自由伸缩为不同应用场景所需求的播放时长,具有普遍的适用性,再次基础上进行渲染形成视频特效播放过程,节约了制作大量不同播放时长的视频特效文件所带来的计算资源和时间资源的巨大消耗。
以上,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (15)
1.一种视频特效的处理方法,其特征在于,所述方法包括:
获取视频特效文件,并从所述视频特效文件中提取时长伸缩逻辑,其中,所述时长伸缩逻辑包括时长伸缩区间以及对应的时长伸缩类型;
获取将所述视频特效文件应用于设计场景时需要实现的目标播放时长,其中,所述目标播放时长区别于所述视频特效文件的原始播放时长;
根据所述时长伸缩逻辑,确定所述视频特效文件中与目标时间轴对应的特效帧;
其中,所述目标时间轴的长度与所述目标播放时长一致;
根据与所述目标时间轴对应的特效帧进行渲染,以形成符合所述目标播放时长的视频特效播放过程。
2.根据权利要求1所述的方法,其特征在于,所述获取视频特效文件,包括:
执行以下处理之一以得到对应特效对象的编码导出文件:
对所述特效对象的多个图层结构进行编码处理,得到对应所述特效对象的编码导出文件;
对所述特效对象的多个特效帧进行编码处理,得到对应所述特效对象的编码导出文件;
对所述特效对象的多个特效帧进行视频格式压缩处理,并对得到的视频格式压缩处理结果进行编码处理,得到对应所述特效对象的编码导出文件;
将时长伸缩类型以及时长伸缩区间封装在所述编码导出文件中,得到对应所述特效对象的视频特效文件。
3.根据权利要求1所述的方法,其特征在于,
所述从所述视频特效文件中提取时长伸缩逻辑,包括:
对所述视频特效文件进行解码处理,得到对应所述视频特效文件的至少一个时长伸缩区间以及对应的时长伸缩类型;
其中,所述时长伸缩类型包括以下类型中的任意一种:时间线性伸缩类型;时间重复类型;时间倒序重复类型。
4.根据权利要求3所述的方法,其特征在于,所述获取将所述视频特效文件应用于设计场景时需要实现的目标播放时长,包括:
当所述时长伸缩区间的数目为多个时,将所述视频特效文件拆分为与所述数目一致的多个视频特效子文件,并分别获取针对每个所述视频特效子文件的目标播放时长;
当所述时长伸缩区间的数目为一个时,获取针对所述视频特效文件的整体的目标播放时长。
5.根据权利要求4所述的方法,其特征在于,在获取将所述视频特效文件应用于设计场景时需要实现的目标播放时长之后,所述方法还包括:
当所述时长伸缩区间的数目为多个时,针对每个所述视频特效子文件执行以下处理:
从所述视频特效子文件中获取对应特效对象的原始时间轴;
保持所述原始时间轴的帧率不变,对所述原始时间轴进行时长伸缩处理,得到对应所述目标播放时长的目标时间轴;
当所述时长伸缩区间的数目为一个时,针对所述视频特效文件执行以下处理:
从所述视频特效文件中获取对应特效对象的原始时间轴;
保持所述原始时间轴的帧率不变,对所述原始时间轴进行时长伸缩处理,得到对应所述目标播放时长的目标时间轴。
6.根据权利要求5所述的方法,其特征在于,
当所述时长伸缩区间的数目为多个时,所述根据所述时长伸缩逻辑,确定所述视频特效文件中与目标时间轴对应的特效帧,包括:
针对每个时长伸缩区间执行以下处理:
从所述视频特效子文件中获取包括所述特效对象的多个特效帧、以及每个所述特效帧在所述原始时间轴上对应的时间戳,以作为每个所述特效帧的原始特效帧时间戳;
基于时长伸缩区间、以及每个所述特效帧对应的原始特效帧时间戳,在所述多个特效帧中确定与所述目标时间轴上每个时间戳对应的特效帧。
7.根据权利要求5所述的方法,其特征在于,
当所述时长伸缩区间的数目为一个时,所述根据所述时长伸缩逻辑,确定所述视频特效文件中与目标时间轴对应的特效帧,包括:
从所述视频特效文件中获取包括所述特效对象的多个特效帧、以及每个所述特效帧在所述原始时间轴上对应的时间戳,以作为每个所述特效帧的原始特效帧时间戳;
基于时长伸缩区间、以及每个所述特效帧对应的原始特效帧时间戳,在所述多个特效帧中确定与所述目标时间轴上每个时间戳对应的特效帧。
8.根据权利要求6或7所述的方法,其特征在于,所述基于时长伸缩区间、以及每个所述特效帧对应的原始特效帧时间戳,在所述多个特效帧中确定与所述目标时间轴上每个时间戳对应的特效帧,包括:
依次将所述目标时间轴上每个时间戳作为目标时间戳,以执行以下处理:
基于时长伸缩区间,确定所述目标时间戳在所述原始时间轴上对应的时间戳;
当所述目标时间戳在所述原始时间轴上对应的时间戳与任一所述原始特效帧时间戳重叠时,将重叠的所述原始特效帧时间戳对应的特效帧确定为所述目标时间戳对应的特效帧;
当所述目标时间戳在所述原始时间轴上对应的时间戳未与任一所述原始特效帧时间戳重叠时,确定与所述目标时间戳在所述原始时间轴上对应的时间戳距离最小的所述原始特效帧时间戳,并将确定所述原始特效帧时间戳对应的特效帧确定为所述目标时间戳对应的特效帧。
9.根据权利要求8所述的方法,其特征在于,所述基于时长伸缩区间,确定所述目标时间戳在所述原始时间轴上对应的时间戳,包括:
针对每个所述时长伸缩区间执行以下处理:
当所述目标时间戳不大于所述时长伸缩区间的起始时间戳时,将所述目标时间戳确定为在所述原始时间轴上对应的时间戳;
当所述目标时间戳大于所述时长伸缩区间的起始时间戳,且小于所述时长伸缩区间的终止时间戳时,对所述目标时间戳进行基于所述时长伸缩类型的映射,得到所述目标时间戳在所述原始时间轴上对应的时间戳;
当所述目标时间戳大于或者等于所述终止时间戳,且小于所述目标播放时长时,确定所述原始播放时长与所述目标播放时长之间的第一差值,将所述第一差值与所述目标时间戳进行求和处理,并将求和处理结果确定所述目标时间戳在所述原始时间轴上对应的时间戳。
10.根据权利要求9所述的方法,其特征在于,所述对所述目标时间戳进行基于所述时长伸缩类型的映射,得到所述目标时间戳在所述原始时间轴上对应的时间戳,包括:
当所述时长伸缩类型为时间线性缩减类型、或者时间线性拉伸类型时,将所述目标播放时长与所述原始播放时长的第二差值确定为伸缩长度,并将所述伸缩长度与所述时长伸缩区间的长度进行求和处理;
对所述时长伸缩区间的长度与求和处理结果进行求比值处理,得到伸缩系数;
确定所述目标时间戳与所述起始时间戳之间的第三差值,将所述第三差值与所述伸缩系数进行相乘处理;
对相乘处理结果与所述起始时间戳进行求和处理,得到所述目标时间戳在所述原始时间轴上对应的时间戳。
11.根据权利要求9所述的方法,其特征在于,所述对所述目标时间戳进行基于所述时长伸缩类型的映射,得到所述目标时间戳在所述原始时间轴上对应的时间戳,包括:
当所述时长伸缩类型为所述时间重复类型时,确定所述目标时间戳与所述起始时间戳之间的第四差值,对所述第四差值与所述时长伸缩区间的长度进行求余数处理;
将求余数处理结果与所述起始时间戳进行求和处理,得到所述目标时间戳在所述原始时间轴上对应的时间戳。
12.根据权利要求9所述的方法,其特征在于,所述对所述目标时间戳进行基于所述时长伸缩类型的映射,得到所述目标时间戳在所述原始时间轴上对应的时间戳,包括:
当所述时长伸缩类型为所述时间倒序重复类型时,确定所述目标时间戳与所述起始时间戳之间的第五差值,对所述第五差值与所述时长伸缩区间的长度进行求余数处理;
针对对应求余数处理结果的比值结果进行取整处理,得到取整结果;
当所述取整结果为偶数时,将求余数处理结果与所述起始时间戳进行求和处理,得到所述目标时间戳在所述原始时间轴上对应的时间戳;
当所述取整结果为奇数时,确定所述时长伸缩区间的长度与所述求余数处理结果之间的第六差值,对所述第六差值与所述起始时间戳进行求和处理,得到所述目标时间戳在所述原始时间轴上对应的时间戳。
13.一种视频特效的处理装置,其特征在于,所述装置包括:
文件获取模块,用于获取视频特效文件,并从所述视频特效文件中提取时长伸缩逻辑,其中,所述时长伸缩逻辑包括时长伸缩区间以及对应的时长伸缩类型;
时长获取模块,用于获取将所述视频特效文件应用于设计场景时需要实现的目标播放时长,其中,所述目标播放时长区别于所述视频特效文件的原始播放时长;
特效帧确定模块,用于根据所述时长伸缩逻辑,确定所述视频特效文件中与目标时间轴对应的特效帧;
其中,所述目标时间轴的长度与所述目标播放时长一致;
渲染模块,用于根据与所述目标时间轴对应的特效帧进行渲染,以形成符合所述目标播放时长的视频特效播放过程。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的视频特效的处理方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的视频特效的处理方法。
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK40028958A HK40028958A (zh) | 2021-02-11 |
| HK40028958B true HK40028958B (zh) | 2023-11-24 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12041372B2 (en) | Video special effect processing method and apparatus, and electronic device | |
| CN112184856B (zh) | 支持多图层特效及动画混合的多媒体处理装置 | |
| CN111899322B (zh) | 视频处理方法、动画渲染sdk和设备及计算机存储介质 | |
| CN110505511B (zh) | 一种在网页中播放视频的方法、装置、系统及计算设备 | |
| CN109325145A (zh) | 视频缩略图的获取方法、终端及计算机可读存储介质 | |
| CN115250335B (zh) | 视频处理方法、装置、设备及存储介质 | |
| CN109672902A (zh) | 一种视频抽帧方法、装置、电子设备和存储介质 | |
| CN115134658A (zh) | 视频处理方法、装置、设备及存储介质 | |
| WO2020220773A1 (zh) | 图片预览信息的显示方法、装置、电子设备及计算机可读存储介质 | |
| CN115510347A (zh) | 演示文稿的转换方法、装置、电子设备及存储介质 | |
| CN113938750A (zh) | 视频处理方法、装置、电子设备和存储介质 | |
| WO2025035355A1 (zh) | 一种实时渲染系统及方法 | |
| CN113744377A (zh) | 一种动画处理系统、方法、装置、设备及介质 | |
| CN111242688B (zh) | 动画资源的制作方法、装置、移动终端和存储介质 | |
| CN115955583B (zh) | 视频合成方法和装置 | |
| CN109766150A (zh) | 交互式动画的实现方法、装置和终端设备 | |
| HK40028958B (zh) | 视频特效的处理方法、装置以及电子设备 | |
| CN117065357B (zh) | 媒体数据处理方法、装置、计算机设备和存储介质 | |
| CN111866508B (zh) | 视频处理方法、装置、介质及电子设备 | |
| CN115904592A (zh) | 虚拟桌面的显示方法和装置 | |
| HK40028958A (zh) | 视频特效的处理方法、装置以及电子设备 | |
| CN115695903A (zh) | 一种视频处理的方法、相关装置及设备 | |
| CN115086282A (zh) | 一种视频播放方法、设备及存储介质 | |
| CN113849157B (zh) | 动画播放管理的方法、装置、设备及存储介质 | |
| US20250118337A1 (en) | Video processing method and apparatus |