掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请属于多媒体数据处理技术领域,尤其涉及一种处理方法和电子设备。

背景技术

用户在使用视频剪辑软件进行编辑时,会通过预览来反复检查视频效果是否达到预期,其中预览的流畅度是用户关注的一个重点,然而在面对复杂工程文件时,预览画面常常会出现卡顿、丢帧等现象,相应易导致发生视频预览不流畅,声音不同步等问题,影响用户的编辑体验。

发明内容

为此,本申请公开如下技术方案:

一种处理方法,包括:

获取待处理的第一对象、预先处理的第二对象对应的各个第二分段渲染文件以及分段信息;

根据所述分段信息至少对所述第一对象进行分段处理,至少得到所述第一对象对应的各个第一子对象;

确定每个第一子对象在所述第二对象中对应的第二子对象,将每个第一子对象与对应的第二子对象进行合并渲染处理,得到对应的合并渲染文件;

基于所述合并渲染文件,与预先处理的所述第二对象对应的相应第二分段渲染文件,生成包括所述第一对象和所述第二对象的显示内容。

可选的,所述分段信息为所述各个第二分段渲染文件对应的分段信息,所述根据所述分段信息至少对所述第一对象进行分段处理,包括:

根据各个第二分段渲染文件对应的分段信息,将所述第一对象划分为至少一个第一子对象。

可选的,在获取所述分段信息之前,还包括确定所述分段信息;确定所述分段信息包括:

获取所述第一对象在第一属性上的对象信息,以及所述第二对象在所述第一属性上的对象信息;

基于所述第一对象和所述第二对象分别在所述第一属性上的对象信息的重叠性,确定所述分段信息,所述分段信息对应有至少一个第二分段渲染文件。

可选的,所述根据所述分段信息至少对所述第一对象进行分段处理,包括:

根据所述分段信息,将所述第一对象划分为至少一个第一子对象,以及将所述第二对象划分为至少一个第二子对象;其中,所述分段信息对应有第一子对象,和/或第二子对象。

可选的,所述分段信息包括所对应各个分段的时间信息;所述根据所述分段信息至少对所述第一对象进行分段处理,包括:

根据所述各个分段的时间信息,至少将所述第一对象划分为至少一个第一子对象。

所述确定每个第一子对象在所述第二对象中对应的第二子对象,包括:

确定所述第二对象包含的各个第二子对象中所对应时间信息与所述第一子对象对应的时间信息一致的第二子对象,得到所述第一子对象对应的第二子对象。

可选的,所述基于所述合并渲染文件,与预先处理的所述第二对象对应的相应第二分段渲染文件,生成包括所述第一对象和所述第二对象的显示内容,包括:

若分段信息对应有第二子对象,基于第二子对象以及预先处理的所述第二对象对应的各个第二分段渲染文件,确定与对应的所述第二子对象匹配的目标第二分段渲染文件;基于合并渲染文件和所述目标第二分段渲染文件,生成包括所述第一对象和所述第二对象的显示内容。

可选的,所述方法,还包括:

响应于对所述第一对象的至少一个第一子对象和/或所述第二对象的至少一个子对象的操作指令,更新所述第一对象和所述第二对象的对象信息,对所述分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,和/或

依据更新后的第一对象和/或第二对象在第一属性上的对象信息,更新所述分段信息。

可选的,所述将每个第一子对象与对应的第二子对象进行合并渲染处理,得到对应的合并渲染文件,包括:

确定所述第一子对象的对象类型和所述第二子对象的对象类型;

若所述第一子对象的对象类型和所述第二子对象的对象类型相同,根据对应的合并渲染策略,将所述第一子对象与对应的第二子对象渲染处理成对应的合并渲染文件;

若所述第一子对象的对象类型和所述第二子对象的对象类型不同,对所述第一子对象进行渲染,得到对应的第一分段渲染文件;所述第一分段渲染文件与所述第一子对象对应的第二子对象的第二分段渲染文件构成所述合并渲染文件。

可选的,所述根据对应的合并渲染策略,将所述第一子对象与对应的第二子对象渲染处理成对应的合并渲染文件,包括:

获取所述第一子对象的第二属性;

根据所述第二属性,对所述第一子对象进行渲染,将对所述第一子对象的渲染结果作为所述合并渲染文件,或者对所述第一子对象和对应的第二子对象进行基于信息压合的渲染处理,得到所述合并渲染文件;或者基于所述第一子对象,对所述第二子对象进行对应的显示效果信息调整并渲染,得到所述合并渲染文件。

一种电子设备,包括:

存储器,用于至少存储一组计算机指令集;

处理器,用于通过执行所述存储器中存储的所述指令集,实现如上文任一项所述的处理方法。

根据以上方案可知,本申请公开一种处理方法和电子设备,其中处理方法包括:获取待处理的第一对象、预先处理的第二对象对应的各个第二分段渲染文件以及分段信息;根据所述分段信息至少对所述第一对象进行分段处理,至少得到所述第一对象对应的各个第一子对象;确定每个第一子对象在所述第二对象中对应的第二子对象,将每个第一子对象与对应的第二子对象进行合并渲染处理,得到对应的合并渲染文件;基于所述合并渲染文件,与预先处理的所述第二对象对应的相应第二分段渲染文件,生成包括第一对象和第二对象的显示内容。

附图说明

为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本申请提供的处理方法的一种流程示意图;

图2是本申请提供的所公开方法的一应用示例图;

图3是本申请提供的所公开方法的另一应用示例图;

图4是本申请提供的所公开方法的又一应用示例图;

图5是本申请提供的所公开方法的再一应用示例图;

图6是本申请提供的处理方法的另一种流程示意图;

图7是本申请提供的电子设备的组成结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开一种处理方法和电子设备,通过分段预渲染的方式,解决音视频剪辑中预览画面的卡顿、丢帧现象,以避免发生画面预览不流畅,声音不同步等问题。所公开的处理方法可应用于众多通用或专用的计算装置环境或配置下的电子设备,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置等等。该电子设备具备显示屏或能够外接显示屏,以用于信息显示。

参见图1,示出了本申请实施例所公开的处理方法的流程图,该处理方法至少包括:

步骤101、获取待处理的第一对象、预先处理的第二对象对应的各个第二分段渲染文件以及分段信息。

待处理的第一对象,可以是音视频剪辑工具(如剪辑软件)中新增的待处理素材,具体可以是但不限于用户通过执行相应素材新增操作,向剪辑工具时间轴上的素材轨道新增的视频、音频、文本、图片、特效、转场、贴纸等素材对象。

素材新增操作可以包括但不限于素材拖动、素材导入、素材选择等等。

可选的,具体可在用户向剪辑工具的当前音视频编辑场景中新增素材时,获得新增的素材作为待处理的第一对象,并获得预先处理的第二对象对应的各个第二分段渲染文件以及分段信息,以对所获得的信息执行本申请方法的后续处理流程,从而实现在用户触发对所编辑素材的预览输出之前,对轨道上的素材进行预渲染。

值得说明,本申请实施例中的预渲染,是指在用户触发对所编辑素材的画面预览之前完成对各个素材的渲染。

第二对象包括在第一对象之前添加至剪辑工具素材轨道上的素材,如视频、音频、文本、图片、特效、转场、贴纸等,数量可以为一个或多个,不作限制,视实际情况而定。

所述分段信息,为用于对时间轴上的素材轨道进行分段的分段信息,可以是基于时间维度对素材轨道进行分段,或基于数据帧维度对素材轨道进行分段,在基于时间维度分段情况下,分段信息相应为时间分段信息,每一个分段可对应有相应的起始时间和结束时间;在基于数据帧维度分段情况下,分段信息相应为数据帧分段信息,每一个分段可对应有相应的起始帧数和结束帧数,或者也可称为起始帧序号、结束帧序号,具体可通过按帧率将数据帧向时间轴进行映射,得到所对应帧的帧数/帧序号,帧序号可简称为帧号。

第二对象对应的各个第二分段渲染文件,具体可以为历史时间段在将第二对象新增至素材轨道时,对第二对象按本申请方法执行对应的分段渲染所生成的分段渲染文件,能够用于所述第二对象的内容显示。

步骤102、根据所述分段信息至少对所述第一对象进行分段处理,至少得到所述第一对象对应的各个第一子对象。

所述分段信息包括多段信息,每段信息的长度等长或不等长。

可选的,在一实施方式中,分段信息为各个第二分段渲染文件对应的分段信息,各个第二分段渲染文件对应的分段信息同样可以是基于时间维度或基于数据帧维度的分段信息,该实施方式下,本步骤中,根据所述分段信息至少对所述第一对象进行分段处理,具体可实现为:根据各个第二分段渲染文件对应的分段信息,将第一对象划分为至少一个第一子对象。

参见图2的示例,假设第二对象包括图2中位于素材轨道track1上的clip1和位于素材轨道track2上的clip2,分段信息为时间分段信息,针对第二对象对应的三个时间段:seg1、seg2和seg3,第二对象的各个第二分段渲染文件包括seg1、seg2和seg3分别对应的第二分段渲染文件,则在向素材轨道track3上新增素材clip3时,可将clip3作为待处理的第一对象,并按第二对象的分段信息(seg1、seg2和seg3对应的分段信息),将clip3分为seg1对应的素材片段、seg2对应的素材片段和seg3对应的素材片段,作为clip3的三个第一子对象。该实施方式下不必对第二对象再进行划分,第二对象维持其现有的各个子对象,具体为第二对象在各个第二分段渲染文件所对应的各个分段信息表征的各个时间段上对应的素材片段。

在另一实施方式中,还可以在获取所述分段信息之前,首先确定所述分段信息;其中,确定所述分段信息的过程可实现为:获取所述第一对象在第一属性上的对象信息,以及第二对象在第一属性上的对象信息;基于第一对象和第二对象分别在第一属性上的对象信息的重叠性,确定所述分段信息,所述分段信息对应有至少一个第二分段渲染文件。

第一属性可以是时间属性或数据帧的帧数/帧号属性。

第一对象/第二对象在第一属性上的对象信息,相应可以是第一对象/第二对象在时间轴上对应的时间信息,如起始时间和结束时间,或第一对象/第二对象在时间轴上对应的帧数/帧号信息,如起始帧号和结束帧号。可选的,将时间轴的原点作为时间0点或帧数/帧号0点。

本申请实施例将主要以第一属性为时间属性,基于第一对象和第二对象分别在时间轴上所对应时间信息的重叠性确定分段信息为例进行说明。针对时间属性,该实施方式下,结合参见图3,假设第二对象为图3中素材轨道track1上的clip1,第一对象为图3中向素材轨道track2上新增的clip2,两者在时间轴上存在时间重叠,重叠时间段为图中seg2表征的时间段,则可根据两者的时间重叠性,以重叠时间段seg2的起止时间为分割点,确定时间分段信息,具体得到三个时间段seg1、seg2和seg3,每个时间段对应有相应的起始时间和结束时间,相邻时间段中上一时间段的结束时间为下一时间段的起始时间,也即为这两个相邻时间段的时间分割点。

在该实施方式下,本步骤中,根据所述分段信息至少对所述第一对象进行分段处理,具体可实现为:根据所述分段信息,将第一对象划分为至少一个第一子对象,以及将第二对象划分为至少一个第二子对象;其中,所述分段信息对应有第一子对象,和/或第二子对象。

其中,在基于时间维度进行分段的情况下,分段信息包括所对应各个分段的时间信息,如各个分段的起始时间、结束时间,相应可根据所述各个分段的时间信息,将第一对象划分为至少一个第一子对象,将第二对象划分为至少一个第二子对象。

承接图3的示例,在根据第一对象和第二对象的时间重叠性,划分为三个时间段seg1、seg2和seg3,相应得到时间段seg1、seg2和seg3对应的时间信息后,具体可根据各时间段的时间信息及第一对象clip2在时间轴上对应的时间信息,将clip2划分为分别在时间段seg2和seg3对应的两个素材片段,作为第一对象的两个第一子对象,同理,根据各时间段seg1、seg2和seg3的时间信息及第二对象clip1在时间轴上对应的时间信息,将clip1划分为分别在时间段seg1和seg2对应的两个素材片段,作为第二对象的两个第二子对象,其中,时间段seg1仅对应有相应的第二子对象,具体为第二对象clip1在该时间段seg1对应的素材片段clip1-seg1,时间段seg2对应有相应的第一子对象和第二子对象,具体为第一对象clip2和第二对象clip1分别在该时间段seg2对应的素材片段clip1-seg2和clip2-seg2;时间段seg3仅对应有相应的第一子对象,具体为第一对象clip2在该时间段对应的素材片段clip2-seg3。

在其它实施方式中,所述分段信息也可以为预设的分段信息,即分段信息是预先设置好的固定分段信息,具体可以为基于时间属性在时间维度上的预设分段信息,或基于帧数属性在数据帧维度上的预设分段信息,不作限制。该实施方式下,预先处理完的第二对象对应的各个第二分段渲染文件,包括:根据预设的分段信息,将第二对象分为至少一个第二子对象,分别对每个第二子对象进行渲染处理,得到的各个第二分段渲染文件。

该实施方式下,本步骤中,根据所述分段信息至少对所述第一对象进行分段处理,具体可实现为:根据预设的分段信息,如根据预设的时间分段信息,将第一对象划分成至少一个第一子对象。

步骤103、确定每个第一子对象在所述第二对象中对应的第二子对象,将每个第一子对象与对应的第二子对象进行合并渲染处理,得到对应的合并渲染文件。

以分段信息为基于时间维度的时间分段信息为例,具体可确定第二对象包含的各个第二子对象中所对应时间信息与第一子对象对应的时间信息一致的第二子对象,作为第一子对象对应的第二子对象。第一子对象在第二对象中对应的第二子对象有可能为空。素材轨道上的每个数据帧可通过向时间轴的帧映射与时间轴上的时间相对应,且可通过按帧率向时间轴进行帧映射对应唯一帧号,因此,对于基于数据帧维度的分段信息而言,可通过与时间维度分段信息类似的方式,确定第二对象包含的各个第二子对象中所对应帧号信息(如起始帧号、结束帧号)与第一子对象对应的帧号信息一致的第二子对象,作为第一子对象对应的第二子对象。

其中,第二对象包含的各个第二子对象中所对应时间信息与第一子对象对应的时间信息一致的第二子对象,可以是指各个第二子对象中所对应时间信息与第一子对象对应的时间信息相同的第二子对象,即起始时间、结束时间分别与第一子对象的起始时间、结束时间相同的第二子对象。例如图3的示例中,假设第一对象clip2在时间段seg2、seg3对应的第一子对象分别表示为clip2-seg2、clip2-seg3,则根据上述确定方式,可确定出,clip2-seg2对应的第二子对象为clip1-seg2(即第二对象clip1在时间段seg2对应的素材片段)、clip2-seg3对应的第二子对象为空。

第二对象包含的各个第二子对象中所对应时间信息与第一子对象对应的时间信息一致的第二子对象,也可以是指各个第二子对象中所对应时间段包含(具体指″真包含″)第一子对象所对应时间段的第二子对象。例如图4的示例中,假设时间段seg1、seg2、seg3、seg4为预设的分段信息,其中,第二对象包括素材轨道track1上的clip1和track2上的clip2,在对clip1、clip2分别基于预设的分段信息进行分段后,两者对应的各素材片段具体可参见图4所示,在向素材轨道track3增加clip3后,将clip3作为待处理的第一对象,并基于预设分段信息,将clip3分成两部分作为clip3的两个第一子对象,即对应于seg3-2的素材片段clip3-seg3-2和对应于seg4的素材片段clip3-seg4,该示例中,对于第一对象中的第一子对象clip3-seg3-2,由于预设分段信息中的预设时间段seg3包含clip3-seg3-2所对应时间段seg3-2,因此可将第二对象在预设时间段seg3对应的第二子对象clip1-seg3,确定为第一子对象clip3-seg3-2对应的第二子对象。而对于第一对象中的第一子对象clip3-seg4,对应的第二子对象则为空。

在得到第一对象的各个第一子对象分别对应的第二子对象后,本申请实施例将每个第一子对象与其对应的第二子对象进行合并渲染处理,得到对应的合并渲染文件。所执行的渲染处理不以音视频素材的预览输出事件为触发条件,而是在预览输出之前,在每向剪辑工具的相应轨道上新增一素材对象,即将其作为第一对象,对其执行本申请实施例所提供方法的分段渲染处理,该分段渲染由于是在预览输出操作触发之前执行,因此也将其称为分段预渲染。容易理解,如果第一子对象对象的第二子对象为空,则仅对该第一子对象进行渲染即可。

其中,将第一子对象与对应的第二子对象进行合并渲染处理,得到对应的合并渲染文件,可通过以下处理过程实现:

11)确定所述第一子对象的对象类型和所述第二子对象的对象类型。

第一子对象或第二子对象的对象类型,可以是从是否需要画面展示、声音展示角度所划分的多媒体类型,至少包括需要画面展示的第一类型和需要声音展示的第二类型,示例性的,第一类型的对象包括但不限于视频、图像、文本、特效、贴纸、转场等需要画面展示的各类对象,第二类型的对象包括但不限于乐曲、特效音等需要声音展示的音频对象。

12)若第一子对象的对象类型和其所对应第二子对象的对象类型相同,根据对应的合并渲染策略,将第一子对象与其对应的第二子对象渲染处理成对应的合并渲染文件。

在第一子对象的对象类型和其所对应第二子对象的对象类型相同的情况下,可获取第一子对象的第二属性,根据第一子对象的第二属性,对第一子对象进行渲染,将对第一子对象的渲染结果作为所述合并渲染文件,或者对第一子对象和对应的第二子对象进行基于信息压合的渲染处理,得到所述合并渲染文件;或者基于所述第一子对象,对所述第二子对象进行对应的显示效果信息调整并渲染,得到所述合并渲染文件。

具体的,在第一子对象和其所对应第二子对象的对象类型相同情况下,例如两者均为第一类型情况下,本申请实施例以第一子对象的第二属性为依据,来确定对第一子对象和其所对应第二子对象的合并渲染策略。第一子对象的第二属性可以是但不限于从第一子对象所提供功能的功能维度所划分的属性,具体可以是但不限于画中画、转场、特效、贴纸等中的任一种属性,进一步,画中画可以划分为全覆盖(对底层画面全覆盖)或混合显示两种子属性(或者也可称为全覆盖与混合显示两种模式)。

其中,若第一子对象的第二属性为贴纸、画中画中的混合显示等需要将第二子对象与第一子对象同时展示(显示)的属性,则可将对第一子对象和其所对应的第二子对象的合并渲染策略确定为:对两者执行基于信息压合的渲染处理,从而基于该策略,可对第一子对象和其所对应的第二子对象进行基于信息压合的渲染处理,处理结果作为合并渲染文件。

示例性的,以第二子对象为一视频片段,第一子对象为用于与第二子对象的视频片段进行混合显示的″画中画″视频画面为例,具体可基于上述合并渲染策略,先把第一子对象和第二子对象分别在各自轨道对应的两段视频片段做解码,在此基础上,基于解码结果对两者做合并渲染,渲染时会将两个轨道上视频片段的画面合成一个,具体可以但不限于将两个解码文件执行色彩调节、空间转换、基于blender(搅拌器)的画面压合等处理,这个过程就叫作渲染,通过该处理过程,实现将第一子对象与其对应的第二子对象的视频画面压合为可用于输出显示的一个视频画面。

若第一子对象的第二属性为画中画中的全覆盖等仅需将第一子对象进行展示/显示的属性(通常,在历史已添加素材对象的基础上新增同类型素材对象时,要么将新增素材对象与其所对应时间段的历史已添加素材对象进行混合展示,要么将新增素材对象置于最上层仅展示新增素材对象),则可将对第一子对象和其所对应第二子对象的合并渲染策略确定为:仅对第一子对象进行渲染,从而基于该策略,可仅对第一子对象进行渲染,并将对第一子对象的渲染结果作为所述合并渲染文件。

示例性的,以第二子对象为一视频片段,第一子对象为用于对第二子对象的视频画面进行全覆盖的″画中画″视频画面为例,则可基于该策略仅渲染第一子对象,即仅渲染处于最上层的用于对第二子对象的视频画面进行全覆盖的″画中画″视频画面,并将渲染结果作为所述合并渲染文件。

而如果第二子对象的属性表征第二子对象仅需对第一子对象的显示效果进行调整,如转场(白场过渡、黑场过渡等)、特效(如动感心跳)等,则可基于第一子对象,对所述第二子对象进行对应的显示效果信息调整并渲染,得到所述合并渲染文件。

进一步,在第一子对象所对应第二子对象的时间信息与第一子对象的时间信息完全相同(如两者在时间轴上分别对应的起始时间、结束时间完全相同)情况下,如果合并渲染策略为基于信息压合的合并渲染,可直接将第一子对象、第二子对象各自的全部内容参与基于信息压合的渲染处理,如果合并渲染策略为仅对第一子对象进行渲染,则可直接对第一子对象的全部内容进行渲染,将所得的第一分段渲染文件作为合并渲染文件,而第二子对象所对应的第二分段渲染文件的内容则被舍弃,舍弃相应第二分段渲染文件是指在该第二分段渲染文件所对应时间段不再采用该第二分段渲染文件,而是仅采用其上层的相应第一子对象对应的第一分段渲染文件,但仍可以根据需求缓存该被舍弃的第二分段渲染文件,而不将其清除。

例如,参见图5,假设在图3的基础上,进一步在素材轨道track3上增添素材clip3,此时新增的clip3成为待处理的第一对象,而clip1和clip2相对于clip3则为预先处理的第二对象,clip3在时间轴上与其它素材的时间重叠性如图5所示,从而可将clip3按时间重叠性分成分别对应于seg3和seg4的两个分段clip3-seg3和clip3-seg4,其中,clip3-seg3与clip2-seg3的时间信息完全相同,从而在将clip3-seg3与clip2-seg3进行合并渲染时,可按对应的合并渲染策略,将clip2-seg3的全部素材内容执行基于信息压合的合并渲染或将其对应的分段渲染文件的内容舍弃。

在第一子对象所对应第二子对象的时间段包含第一子对象所对应时间段的情况下,则可进一步按第一子对象与其所对应第二子对象的时间重叠性,将第二子对象对应的第二分段渲染文件分割成两部分:第一部分渲染内容和第二部分渲染内容,其中的第一部分渲染内容所对应时间段与第一子对象的时间段相同,第二部分渲染内容所对应时间段则与第一子对象的时间段无重叠,在此基础上,继续执行合并渲染处理。其中,仅将第一部分渲染内容在第二子对象中对应的素材片段参与和第一子对象的合并渲染,合并渲染策略可以是上述基于信息压合或显示效果调整等合并渲染策略中的相应一种,视实际需求而定,该第一部分渲染内容将被舍弃。而第二部分渲染内容则保留,作为其所对应时间段的素材所对应的渲染内容进行使用。

例如,参见图4的示例,其中,时间分段seg1、seg2、seg3、seg4为预设的分段信息,第二对象包括素材轨道track1上的clip1和track2上的clip2,分别基于预设的分段信息进行分段,在向素材轨道track3增加clip3后,将clip3作为待处理的第一对象,并基于预设分段信息,将clip3分成两部分:对应于seg3-2的素材片段clip3-seg3-2和对应于seg4的素材片段clip3-seg4,作为clip3的两个第一子对象,其中,第一子对象clip3-seg3-2对应的第二子对象为clip1-seg3,clip1-seg3所对应时间段seg3包含该第一子对象clip3-seg3-2所对应时间段seg3-2,则在将第一子对象clip3-seg3-2和其对应的第二子对象clip1-seg3进行合并渲染时,具体可按两者的时间重叠性,将clip1-seg3对应的第二分段渲染文件分成两部分,对应于seg3-1的部分和对应于seg3-2的部分,并具体将cilp1-seg3-2的素材内容与cilp3-seg3-2的素材内容进行基于信息压合等合并渲染策略的合并渲染,cilp1-seg3-2对应的渲染内容被舍弃,而cilp1-seg3-1所对应的渲染内容则保留,仍作为时间段seg3-1所对应的渲染内容进行使用。

13)若第一子对象的对象类型和第一子对象所对应第二子对象的对象类型不同,对第一子对象进行渲染,得到对应的第一分段渲染文件;所述第一分段渲染文件与第一子对象对应的第二子对象的第二分段渲染文件构成所述合并渲染文件。

在第一子对象的对象类型和其所对应第二子对象的对象类型不同的情况下,例如两者中一个为音频,另一个为视频,此时需要将两者同时展示,相应需在合并渲染文件中同时包含两者分别对应的渲染结果数据,基于此,可对第一子对象进行渲染,得到对应的第一分段渲染文件,并可复用第一子对象所对应第二子对象的第二分段渲染文件,基于第一子对象的第一分段渲染文件,与第一子对象所对应第二子对象的第二分段渲染文件,来共同构成所述合并渲染文件。也是是说,合并渲染文件包括上述的第一分段渲染文件和第二分段渲染文件这两个分段渲染文件。

该实施方式下,可在多媒体素材编辑过程中,缓存各环节的分段渲染文件,以支持对所需分段渲染文件的复用,通过复用所需的分段渲染文件,来尽可能提升处理速率,加快处理进程。

当然,实际应用中,也可以不对所需的分段渲染文件进行复用,通过对相应素材/素材片段进行实时渲染,来得到所需的分段渲染文件,该实施方式可节省缓存占用,但与上一实施方式相比,处理速率有所下降。

容易理解,如果第一子对象对应的第二子对象为空,则仅对第一子对象进行渲染,并将所得的第一分段渲染文件作为合并渲染文件即可,例如图3中,第一对象clip2在时间分段seg3对应的第一子对象clip2-seg3,未对应的任何的第二子对象,即对应的第二子对象为空,相应可仅对clip2-seg3进行渲染,并将渲染结果作为时间段seg3对应的合并渲染文件。

第二子对象对应的第二分段渲染文件,可能是步骤101中所获得的各个第二分段渲染文件中的某个第二分段渲染文件,也可能是各个第二分段渲染文件中某个第二分段渲染文件的一部分,视实际情况而定,其中,在为各个第二分段渲染文件中某个第二分段渲染文件的一部分情况下,具体可通过基于该第二子对象在第一属性上对应的对象信息,如在时间轴上对应的起始时间、结束时间等时间信息,对所对应的第二分段渲染文件进行内容提取,从中提取出与该时间信息匹配的部分渲染内容即可。

以下举例说明。

参见图3的示例,假设在历史某个时间点向素材轨道trackl上新增clip1,此时clip1成为当前待处理的第一对象,由于cilp1为当前编辑场景下的唯一素材,因此在基于时间重叠性的分段策略下,clip1对应的时间段(seg1+seg2)为一完整时间段,未被分割,此时将clip1进行整体渲染,得到clipl-(seg1+seg2)对应的整体渲染文件,之后,若继续在素材轨道track2上新增clip2,则此时clip2成为待处理的第一对象,cilp1则成为第二对象,可基于clip1与clip2的时间重叠性,得到分段信息seg1与seg2,并可将clip1分段成两个第二子对象clip1-seg1和clip1-seg2,将clip2分段成两个第一子对象clip2-seg2和clip2-seg3,对于clip2-seg2来说,其所对应的第二子对象为clip1-seg2,第二子对象clip1-seg2的第二分段渲染文件则可从clip1-(seg1+seg2)对应的整体渲染文件中提取,具体按clip1-seg2在时间轴上对应的时间信息,从该整体渲染文件中提取时间段seg2对应的部分渲染内容即可。

步骤104、基于所述合并渲染文件,与预先处理的所述第二对象对应的相应第二分段渲染文件,生成包括第一对象和第二对象的显示内容。

在上述各步骤的基础上,可基于所述合并渲染文件,与预先处理的所述第二对象对应的相应第二分段渲染文件,形成第一对象和第二对象对应的逻辑意义上的整体渲染文件,以基于该整体渲染文件生成包括第一对象和第二对象的显示内容。

其中,若分段信息对应有第二子对象,未对应第一子对象,则可基于分段信息对应的该第二子对象以及预先处理的所述第二对象对应的各个第二分段渲染文件,确定与该第二子对象匹配的目标第二分段渲染文件,合并渲染文件和确定出的目标第二分段渲染文件,形成第一对象和第二对象对应的逻辑意义上的整体渲染文件,相应可基于合并渲染文件和确定出的目标第二分段渲染文件,生成包括第一对象和第二对象的显示内容,以能够在编辑过程中按需对素材内容进行输出显示,支持用户对所编辑素材内容的预览。

确定与该第二子对象匹配的目标第二分段渲染文件,具体可以是从步骤101所获得的第二对象的各个第二分段渲染文件中,确定与该第二子对象的时间信息相匹配的第二分段渲染文件,或者,从相应第二分段渲染文件中确定该第二子对象的时间信息相匹配的渲染内容,具体可根据实际情况而定。

同理,若分段信息对应有第一子对象,未对应第二子对象,则生成第一子对象对应的第一分段渲染文件(也即,在某个分段第一子对象对应的第二子对象为空,则仅对第一子对象进行渲染,并将所得的第一分段渲染文件作为该分段对应的合并渲染文件),基于第一分段渲染文件和合并渲染文件,生成包括第一对象和第二对象的显示内容。

容易理解,若各个分段信息中存在分段信息对应有第二子对象未对应第一子对象,同时存在分段信息对应有第一子对象未对应第二子对象,则可结合上述两种实现方式,基于相应的目标第二分段渲染文件、第一分段渲染文件和合并渲染文件,生成包括第一对象和第二对象的显示内容,以能够在编辑过程中按需对素材内容进行输出显示,支持用户对所编辑素材内容的预览。

以图3为例,第一对象clip2和第二对象clip1对应的逻辑意义上的整体渲染文件,可包括第二对象clip1在时间段seg1上的素材片段clip1-seg1对应的目标第二分段渲染文件、第二对象clip1和第一对象clip2分别在时间段seg2上的素材片段clip1-seg2、clip2-seg2对应的合并渲染文件,以及第一对象clip2在时间段seg3上的素材片段clip2-seg3对应的第一分段渲染文件,相应可基于所述目标第二分段渲染文件、合并渲染文件、第一分段渲染文件生成包括clip和cilp2的显示内容。

其中,第二对象clip1在时间段seg1上的素材片段clip1-seg1对应的目标第二分段渲染文件,为从第二对象clip1在(seg1+seg2)的整体时间段所对应的完整渲染文件中提取的对应于seg1的渲染内容(在添加clip2之前,对第二对象clip1进行预先处理时,seg1+seg2作为整体时间段未被分割,相应将clip1整体渲染,得到对应于seg1+seg2的完整渲染文件,该完整渲染文件同时可视为clip1所对应的第二分段渲染文件,此时第二分段渲染文件的数量为一个)。

已知技术中,用户在使用编辑工具进行素材编辑过程中,若需对所编辑内容进行预览,则以用户执行的预览操作(如用户点击编辑界面上的播放按钮)为素材渲染的触发条件,对各轨道上的素材内容进行实时渲染与播放,由于实时处理的工作量大,从而预览画面常常会出现卡顿、丢帧等现象,相应易导致发生视频预览不流畅,声音不同步等问题,影响用户的编辑体验。

针对上述问题,本申请实施例以获得待处理的第一对象为素材渲染的触发条件,每获得待处理的第一对象(例如每向编辑工具的素材轨道增添新的素材),就对待处理的第一对象执行基于本申请方法所提供的分段渲染处理,而不以用户的预览操作为素材渲染的触发条件,从而使得在用户执行预览操作需对素材进行预览输出之前就完成对所编辑素材的渲染,实现对素材内容的预渲染效果,以此降低在对所编辑素材进行预览输出时的实时处理工作量,后续当用户执行预览操作需对素材内容进行预览输出时,可直接基于预渲染生成的渲染文件进行音视频的输出显示,无需在进行音视频输出时执行实时渲染,从而降低了实时处理的工作量,可有效避免预览画面出现卡顿、丢帧等现象,相应克服了视频预览不流畅,声音不同步等问题。

可选的,以获得待处理的第一对象为素材渲染的触发条件,每获得待处理的第一对象,就对第一对象执行本申请方法所提供的分段渲染处理,具体可以是指,在获得待处理的第一对象的第一时间(如用户向编辑工具的相应素材轨道添加新素材的第一时间),实时对第一对象执行本申请方法所提供的分段渲染处理。

但不限于此,实际应用中,也可以预先设置一延迟时间,如2s或3s等,以获得待处理的第一对象为素材渲染的触发条件,每获得待处理的第一对象,就对第一对象执行本申请方法所提供的分段渲染处理,也可以是指,在获得第一对象时等待该延迟时间,完成等待后再对第一对象执行本申请方法所提供的分段渲染处理。进一步,可选的,针对该等待一延迟时间的实施方式,还可以在等待期间内检测用户是否执行进一步的编辑操作,例如对新增第一对象进行变速(如0.5倍速、2倍速、3倍速等)、向第一对象添加转场、特效、贴纸等等,若未检测到任何进一步的编辑操作,则在等待时长达到设定的延迟时间时,对第一对象执行本申请方法所提供的分段渲染处理,否则,若在等待期间检测到进一步的编辑操作,则在用户完成该进一步的编辑操作时,对当前所得的第一对象(如变速后的第一对象)、在等待期间检测到的编辑操作所产生的其他新增对象(如新增的贴纸等)等,统一执行本申请方法所提供的分段渲染处理。

对当前所得的第一对象(如变速后的第一对象)、在等待期间检测到的编辑操作所产生的其他新增对象(如新增的贴纸等)等,统一执行本申请方法所提供的分段渲染处理,具体可将当前所得的第一对象以及等待期间产生的其它新增对象统一视为当前待处理的对象,共同参与本申请方法所提供的处理流程,其中所涉及的分段信息,同样可以采用第二对象的各个第二分段渲染文件对应的分段信息,或者采用预设的分段信息,或者采用基于当前待处理的各个对象与第二对象在第一属性上对象信息(如时间属性上的时间信息)的重叠性所确定出的分段信息;所涉及的合并渲染等处理,则同样可视待参与合并渲染的各对象的类型(如音视频)、第一对象的第二属性(如特效、转场、混合模式画中画、全覆盖模式画中画等),来决定合并渲染策略,进行合并渲染。

乐曲、特效音等音频与需要进行画面显示的相应类型对象(如视频、图像、文本、贴纸等)相比,渲染速率较快,基于此,实际应用中,可仅对需要进行画面显示的相应类型对象执行本申请方法所提供的分段预渲染处理,而对于音频,则可在用户执行对所编辑素材的预览操作,相应需对所编辑素材进行预览时,进行实时渲染,即随着播放进度边渲染边输出,该处理方式降低了预渲染处理量,且不会对预览画面的流畅性、声音同步性产生影响。

综上所述,本申请实施例的方法,通过以获得待处理的第一对象为素材渲染的触发条件,每获得待处理的第一对象,就对第一对象执行本申请方法所提供的分段渲染处理,可实现编辑过程中对素材内容的预渲染,后续在用户需对所编辑素材进行预览输出时,无需对待输出内容执行实时渲染,从而降低了画面预览时的实时处理工作量,可有效避免预览画面出现卡顿、丢帧等现象,相应克服了视频预览不流畅,声音不同步等问题。

在一可选实施例中,参见图6所示的方法流程图,本申请公开的处理方法还可以包括以下处理:

步骤105、响应于对第一对象的至少一个第一子对象和/或第二对象的至少一个子对象的操作指令,更新第一对象和第二对象的对象信息中的至少一种,对分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,和/或,依据更新后的第一对象和/或第二对象在第一属性上的对象信息,更新所述分段信息。

所述操作指令,可以是但不限于用于删除相应子对象的删除指令、用于对相应子对象进行信息调整的调整指令中的任意一种。调整指令包括但不限于用于对相应子对象进行变速(如0.5倍速、2倍速等)的变速指令,用于裁剪掉相应子对象中部分片段的裁剪指令,或用于调整画面比例、亮度、色彩等的画面调整指令。

在分段信息为非预设的分段信息的情况下,如具体为基于第一对象和第二对象分别在第一属性上对象信息的重叠性所确定的分段信息情况下,对子对象的删除指令可能会触发分段信息发生更新,如删除图3中第一对象clip2在时间段seg3对应的第一子对象clip2-seg3,会导致时间分段信息从原有的seg1、seg2和seg3变化为seg1和seg2,删除指令也可能不会触发分段信息发生更新,如删除图3中clip2在时间段seg2对应的第一子对象clip2-seg2,时间分段信息仍维持为seg1、seg2和seg3。同样的,信息调整指令可能会触发分段信息发生更新,如上述的变速指令等,也可能不会触发分段信息发生更新,但是内容有更新,例如上述的画面比例、亮度、色彩调整指令等,视实际情况而定。

容易理解,在分段信息为预设的分段信息情况下,对子对象的操作指令不会触发分段信息发生更新。

其中,若用户执行了对第一对象的至少一个第一子对象和/或第二对象的至少一个子对象的操作指令,则响应于该操作指令,具体可更新第一对象和第二对象的对象信息中的至少一种,并对分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,例如在删除图3中第一对象clip2的第一子对象clip2-seg2后,更新第一对象clip2在时间轴上对应的时间信息,根据第一对象clip2更新后的时间信息,对分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,如该示例中,删掉clip2-seg2,时间分段信息仍包括seg1、seg2和seg3,重新渲染时,seg1对应的子对象未发生变化,可复用seg1所对应的第二子对象clip1-seg1的第二分段渲染文件,同样的,seg3对应的子对象未发生变化,可复用seg3所对应的第一子对象clip2-seg3的第一分段渲染文件,seg2对应的子对象发生变化,从原有的clip1-seg2和clip2-seg2变化为clip1-seg2,此时,可对clip1-seg2进行实时的重新渲染得到分段seg2对应的分段渲染文件,或者也可以复用clip1-seg2在相应历史时间完成渲染时所得的渲染内容,优选的可采用后者,以降低工作量,提升速率。

实际应用中,在使用编辑工具进行素材编辑过程中,可缓存各个编辑环节各个分段(如时间段)所对应子对象的历史分段渲染文件,以在需要对相应的历史分段渲染文件进行复用时,能够支持对所需历史分段渲染文件的复用。

如果操作指令会触发分段信息发生更新,则具体可依据更新后的第一对象和/或第二对象在第一属性上的对象信息,更新所述分段信息,例如,依据更新后的第一对象和/或第二对象在时间维度上的时间信息,更新所述分段信息,进而在此基础上,以更新后的分段信息为准,对分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,仍以图3为例,假设删掉第一对象clip2在seg3对应的第一子对象clip2-seg3,第一对象clip2对应的时间信息会从时间段(seg2+seg3)变化为时间段seg2,第二对象clip1对应的时间信息无变化,则可基于第二对象clip1的时间信息以及更新后的第一对象clip2的时间信息,将分段信息从seg1、seg2和seg3变化为seg1和seg2,相应可以该分段信息为准,对分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,该删除clip2-seg3的示例中,由于时间段seg1和seg2对应的第一子对象和/或第二子对象无变化,从而可通过直接对seg1和seg2分别对应的渲染文件进行复用,完成该重新渲染处理。

其它类型的操作如变速、画面调整等与上述的删除操作同理,同样可根据实际需求,选择性的对分段信息、第一对象/第二对象的对象信息进行更新,并在完成更新后,对分段信息所对应的第一子对象和/或第二子对象执行重新渲染操作,以生成包括更新后第一对象和第二对象的显示内容。

本申请实施例支持用户在利用编辑工具进行素材编辑的过程中,按需对所编辑素材执行删除、变速、画面比例/亮度/颜色调整等各种操作,并可随用户操作对分段信息、各素材对象对应的对象信息以及各分段的渲染文件进行适应性动态调整,使得在用户对所编辑素材触发预览操作之前,随用户对素材的操作,完成对所编辑的各素材的动态分段渲染,达到相比于已知技术在预览时进行实时渲染的预渲染效果,从而支持对所编辑素材的快速高效的预览输出,可有效保证预览画面的流畅性,避免出现卡顿、丢帧、声音不同步等现象。

在一可选实施例中,对于待处理的第一对象,还可以确定当前的处理模式,若当前的处理模式为第一模式,则触发本申请方法中的步骤101及其后续处理流程,以对第一对象执行基于本申请方法的分段预渲染处理;若当前的处理模式为第二模式,则无需对第一对象执行基于本申请方法的分段预渲染处理,具体可在触发对所编辑的各素材对象(第一对象、第二对象)的预览请求时,对各素材对象进行实时渲染与基于实时渲染的预览输出。

第一模式即为本申请方法所提供的分段预渲染处理模式,第二模式为已知技术提供的基于实时渲染的处理模式,也就是说,本实施例兼容已知技术中的实时渲染方式,并可通过在编辑工具中提供第一、第二两种模式,来支持用户对处理模式的按需选择,从而进一步提升用户的音视频编辑体验。

本申请实施例还公开一种电子设备,电子设备的组成结构如图7所示,至少包括:

存储器10,用于存放计算机指令集;

计算机指令集可以通过计算机程序的形式实现。

处理器20,用于通过执行计算机指令集,实现如上文任一方法实施例公开的处理方法。

处理器20可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件等。

电子设备具备显示装置和/或具备显示接口、能外接显示装置。

可选的,电子设备还包括摄像头组件,和/或连接有外置摄像头组件。

除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。

通信接口用于电子设备与其他设备之间的通信。通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说做出创造性贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语是用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语″包括″、″包含″或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句″包括一个......″限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 一种处理方法及电子设备
  • 一种基于区块链的理赔事件的处理方法、系统及电子设备
  • 一种日志处理方法、系统及电子设备和存储介质
  • 一种处理方法及电子设备
  • 一种模型轻量化处理方法、装置及电子设备
  • 一种信息处理方法、母电子设备、子电子设备及电子设备
  • 一种信息处理方法、母电子设备、子电子设备及电子设备
技术分类

06120116484307