1.本技术涉及图像处理技术领域,特别是涉及一种视频剪辑方法及装置。
背景技术:2.随着计算机技术的不断普及以及短视频、自媒体、社交网络等互联网产业的蓬勃发展,对于视频剪辑的需求越来越强烈。视频剪辑是使用软件对视频素材进行非线性编辑,例如对视频素材进行切割、合并、转场、特效等,甚至也不乏一些人工智能处理,例如语音识别、语音合成、图像抠图等,以生成具有不同表现力的新视频。
3.随着视频展示需求的不断提高,越来越多的企业、工作室或者个人都需要剪辑大量的视频进行品牌推广、产品展示、发布社交网络内容等,因此如何方便、高效地进行视频剪辑成为各大服务提供商(例如视频云服务提供商)致力达到的目标。
技术实现要素: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.1)本技术根据用户输入的时间线配置信息生成时间线调度信息,并依据时间线调度信息在各时间单元对待剪辑的视频帧进行对应剪辑类型的剪辑处理后,编码得到目标视频。这种以时间为主线逐时间单元进行各种剪辑处理的调度方式,相比较用户触发对视频素材进行剪辑处理生成中间素材后再触发进行下一步剪辑处理的方式,更加高效。
42.2)本技术向用户提供时间线配置界面供用户输入时间线配置信息,整个剪辑过程中用户仅需要输入时间线配置信息即可,无需逐步触发各类型的剪辑处理,也无需在每一步剪辑处理过程中管理导入的素材和产生的中间素材,大大降低了用户操作的复杂度。
43.3)相比较以视频素材为主线的传统视频剪辑方式,本技术无需针对每一步视频剪辑处理环节都进行编解码,而是对视频素材进行解码后,以时间单元为主线对各视频素材进行所有视频剪辑后,再进行编码,大大降低了编解码的次数,缩短了视频剪辑的耗时,也降低了因为编解码次数较多对视频素材带来的质量损耗。
44.4)当涉及到需要利用时序信息进行智能预测的剪辑类型时,可以首先调度相应的剪辑模块进行处理,然后利用得到的视频帧序列更新时间线调度信息中对应待剪辑的视频素材信息,从而将智能能力融合于时间线调度,在丰富了视频剪辑能力的同时,也保证了易用性。
45.5)本技术采用流式的编码、剪辑处理和编码方式,相比较先将所有视频素材解码完成,对所有视频帧都进行剪辑处理完毕后再进行编码的方式,能够大大提高剪辑效率。
46.当然,实施本技术的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
47.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是本技术实施例提供的示例性系统架构;
49.图2为本技术实施例提供的视频剪辑方法的主要流程图;
50.图3为本技术实施例提供的一种时间线配置界面的示意图;
51.图4为本技术实施例提供的以时间单元为主线进行剪辑处理的示意图;
52.图5为本技术实施例提供的视频剪辑装置的结构图;
53.图6为本技术实施例提供的电子设备的架构图。
具体实施方式
54.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本技术保护的范围。
55.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
56.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
57.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
58.现有的视频剪辑方式需要用户逐步触发所需要的视频剪辑,将视频剪辑中涉及到的素材按照用户的操作逐步进行各个环节的剪辑处理。举个例子,用户需要将视频1进行人物抠图,然后合成到视频2的背景图像上。那么用户就需要导入视频1后,首先触发视频剪辑工具对视频1进行解码后进行人物抠图处理,然后再对处理结果进行编码得到人物抠图后的视频1。然后在人物抠图后的视频1基础上,触发视频剪辑工具对人物抠图后的视频1和视频2进行解码后,逐帧进行合成,然后编码得到最终剪辑输出的视频。可以看出,现有的视频剪辑方式主要具备以下两个缺点:
59.1)其中的每一步剪辑都需要用户对待处理的视频素材、产生的中间素材等进行管理并逐步对剪辑处理进行触发,即触发对视频素材进行一种剪辑处理之后,再选择中间素材触发另一种剪辑处理。当需要的素材较多或剪辑处理环节较多时,给用户操作带来很大的麻烦。
60.2)每一步用户触发的剪辑处理环节都涉及到编解码的过程。整个流程涉及的剪辑处理环节越多,编解码的次数会越多,会造成视频剪辑过程的耗时很长。并且每次编解码对视频素材带来一定的质量损耗,会造成视频素材的失真。
61.针对于此,本技术提供了一种全新的思路来更加方便和高效地实现视频剪辑。为了方便对本技术的理解,首先对本技术所适用的系统架构进行简单描述。图1示出了可以应用本技术实施例的示例性系统架构,如图1中所示,该系统主要包括客户端和服务端。
62.其中客户端用以向用户提供ui界面,供用户通过ui界面进行视频素材和信息的输入。并将视频素材和用户输入的信息提供给服务端。
63.服务端设置有视频剪辑装置,用以依据用户输入的信息,采用本技术实施例提供的方式对视频素材进行视频剪辑,将剪辑后得到的目标视频进行存储,并可以返回给客户端,由客户端展示给用户。
64.上述客户端通常设置于计算机终端中,该计算机终端可以是诸如手机、平板电脑、笔记本电脑、pda(个人数字助理)等,甚至可以是车载终端、可穿戴式设备、智能电视、虚拟现实设备、增强现实设备等等。
65.上述服务端可以设置于服务器。该服务器可以是单一服务器,也可以是多个服务器构成的服务器群组,还可以是云服务器。云服务器又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(vps,virtual private server)服务中存在的管理难度大,服务扩展性弱的缺陷。
66.上述服务端也可以设置于具有较强计算能力的计算机终端,可以与上述客户端设置于同一计算机终端,也可以分别设置于不同的计算机终端。
67.若上述服务端设置于服务器,或者上述客户端与服务端设置于不同的计算机终端,则客户端与服务端之间可以通过网络进行通信。该网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
68.应该理解,图1中的客户端和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端和服务端。
69.图2为本技术实施例提供的视频剪辑方法的主要流程图,该方法可以由图1所示系统中服务端的视频剪辑装置执行,该装置可以设置为应用,也可以设置为应用中的插件或软件开发工具包(software development kit,sdk)等功能单元。如图2中所示,该方法可以包括以下步骤:
70.步骤202:向用户提供时间线配置界面。
71.步骤204:获取用户通过时间线配置界面输入的时间线配置信息,时间线配置信息包括:至少一个视频素材,以及对至少一个视频素材所进行剪辑处理的剪辑类型信息和在时间线上的时间信息,剪辑类型信息包括两个以上的剪辑类型。
72.上述步骤202~204是面向用户的配置过程,上述时间线配置信息用以进行视频剪辑。下面步骤206~208是依据时间线配置信息对视频进行具体剪辑处理的过程:
73.步骤206:根据时间线配置信息生成时间线调度信息,时间线调度信息包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息。
74.步骤208:对至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用该时间单元对应的剪辑类型信息逐帧对至少一个视频素材进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频。
75.由以上描述可以看出,本技术向用户提供时间线配置界面供用户输入时间线配置信息,整个过程中用户仅需要在时间线配置界面输入时间线配置信息即可,无需逐步触发各类型的剪辑处理,也无需在每一步剪辑处理过程中管理导入的素材和产生的中间素材,大大降低了用户操作的复杂度。
76.并且本技术根据用户输入的时间线配置信息生成时间线调度信息,并依据时间线调度信息在各时间单元对待剪辑的视频帧进行对应剪辑类型的剪辑处理后,编码得到目标视频,这种以时间为主线逐时间单元进行剪辑处理的调度方式,相比较用户触发对视频素材进行剪辑处理生成中间素材后再触发进行下一步剪辑处理的方式,更加高效。
77.下面对上述流程中的各步骤进行详细描述。首先结合实施例对上述步骤202即“向用户提供时间线配置界面”进行详细描述。
78.用户打开视频剪辑应用时,视频剪辑装置可以向用户提供时间线配置界面。或者,用户触发视频剪辑应用展现的时间线配置组件时,视频剪辑装置可以向用户提供时间线配置界面。等等。
79.作为其中一种可实现的方式,时间线配置界面上包含包括多个显示区块(或者称为界面元素)。例如包括时间线、一个以上的轨道以及用以配置剪辑类型信息的组件,还可以包括诸如文字、输入框、下拉框、其他功能的组件等等。
80.轨道用以获取视频素材,例如用户可以将剪辑使用的视频素材进行导入,导入的视频素材在轨道中进行显示。通常一个轨道容纳一个视频素材。本技术中涉及的视频素材指的是可以用以进行视频剪辑的任意的多媒体素材,可以包括但不限于视频、视频片段、图片、音频、文字、特效素材等等。
81.用户可以通过时间线配置界面上用以配置剪辑信息的组件为导入的视频素材设置剪辑类型。可以在时间线配置界面上为用户提供各种可供使用的剪辑类型,例如通过菜单和子菜单的方式提供多种剪辑类型,以供用户从中选择。也可以通过下拉框的方式提供多种剪辑类型,以供用户从中选择。也可以在时间线配置界面上提供输入框,以供用户在输入框中输入剪辑类型。
82.例如,用户选中某个轨道的视频素材后,通过点击配置剪辑类型信息的组件对该视频素材进行剪辑类型的输入。响应于配置剪辑类型信息的组件被触发的事件,视频剪辑装置获取并记录用户针对当前被选中轨道的视频素材输入的剪辑类型信息。
83.本技术实施例中涉及的剪辑类型可以包括但不限于:添加滤镜、抠图、加特效、添加字幕、添加语音、生成视频集锦、合成、去水印,等等。还可以设置更细粒度的剪辑将类型,例如,添加具体类型的滤镜,再例如,将两个视频进行合成,将视频与音频进行合成,将视频与图片进行合成,等等。其中一些剪辑类型只需要针对单一视频素材设置,例如添加滤镜、抠图等等。但有些剪辑类型需要针对两个以上的视频素材进行关联设置,例如将两个视频进行合成,将视频与音频进行合成等等。
84.其中,时间线可以与轨道进行平行设置,轨道被输入的视频素材以时间线作为剪辑处理的时间点信息的参考。用户可以通过设置视频素材的开始时间,或者调整视频素材在轨道中的位置等方式,调整视频素材进行剪辑处理的时间,并方便对多个视频素材进行剪辑处理的组合设置。
85.例如,可以响应于调整视频素材在轨道中位置的用户操作,确定对该视频素材所进行的剪辑处理在时间线上对应的时间信息。用户可以通过拖拽、移动等方式调整视频素材在轨道中的位置,例如用户选中轨道中的视频素材后,通过左右移动视频素材在轨道中的位置来调整对该视频素材进行剪辑处理的时间信息。由于视频素材的时长是固定的,因此这里调整视频素材进行剪辑处理的时间信息可以是开始时间,也可以是结束时间。
86.再例如,也可以响应于用户针对所选中轨道中的视频素材设置的开始时间,确定对该视频素材所进行的剪辑处理在时间线上对应的时间信息,并相应调整该视频素材在所选中轨道中的位置。这种方式实际上是采用用户设置视频素材的开始时间,依据该开始时间适应性调整视频素材在轨道中的位置。其中,用户可以通过在输入框中输入时间信息的方式,或者通过从提供的时间选项中选择时间选项的方式设置视频素材的开始时间。
87.上述界面中还可以包括启动剪辑的组件,当用户完成所有视频素材的导入、视频
类型的配置以及在时间线上的时间信息的配置之后,可以点击启动剪辑的组件。响应于启动剪辑的组件被触发的事件,执行步骤206或208。
88.图3为本技术实施例提供的一种时间线配置界面的示意图。举个例子说明用户如何通过时间线配置界面输入时间线配置信息。假设用户要将视频b中的各视频帧中抠出人物,对视频c生成字幕,再以视频c作为背景与从视频b中抠出人物的各帧进行合并。合并的视频的开头需要加入文本a,整段的视频需要和音频d进行合并。
89.用户可以将文本a导入轨道1,将视频b导入轨道2,将视频c导入轨道3,将音频d导入轨道4。
90.用户将文本a导入轨道1时,点击配置剪辑类型信息组件中的合成组件,然后子菜单展现合成组件对应的子菜单,用户可以从中选择指示添加文本a的选项。用户将视频b导入轨道2时,点击配置剪辑类型信息组件中的抠图组件,然后子菜单展现抠图组件对应的子菜单,用户可以从中选择抠出人物的选项。用户将视频c导入轨道3时,点击配置剪辑类型信息组件中的字幕组件,再点击合并组件,然后子菜单展现合并组件对应的子菜单,用户可以从中选择作为背景进行合成的选项。用户将音频d导入轨道4时,点击配置剪辑类型信息组件中的合成组件,然后子菜单展现合成组件对应的子菜单,用户可以从中选择合并入视频的选项。
91.然后用户可以通过在轨道中选中视频素材,依据时间线调整该视频素材在轨道中的位置。响应于调整视频素材在轨道中位置的用户操作,确定对该视频素材所进行的剪辑处理在时间线上对应的时间点信息。例如,文本a是从开始到第10分钟被合并入视频,因此可以将文本a的位置放在对应时间线00:00~00:10的位置。例如,视频b抠出人物需要从第10分钟到第40分钟与视频c的背景合并,因此可以将视频b的位置放在对应时间线00:10~00:40的位置。其他视频素材类似,在此不做罗列。
92.界面中的预览部分可以对用户所选中轨道中的视频素材进行预览,也可以对编辑处理后得到的目标视频进行预览。
93.在此需要说明的是,图3仅仅是一个示意性的图示,里面组件的样式、数量、布局等都不用以对本技术进行限制,任意样式、数量、布局均可以使用,只要在本技术的精神原则内,均属于本技术的保护范围。
94.在上述步骤204中,获取用户通过时间线配置界面输入的时间线配置信息后,存储该时间线配置信息。由于本技术的优势体现在需要进行两个以上剪辑类型的处理上,但若用户仅需要进行一个剪辑类型的处理,也同样可以适用。
95.下面结合实施例对上述步骤206即“根据时间线配置信息生成时间线调度信息”进行详细描述。
96.原本的时间线配置信息是以视频素材为主线进行设置的,在本技术实施例中利用时间线配置信息生成了以时间为主线的时间线调度信息。即以时间线为主线,将各视频素材以及剪辑类型对应在各时间单元上,具体地,时间线调度信息可以包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息。
97.上述的时间单元可以以视频剪辑的最小时间单位来确定,例如视频剪辑工具最少允许1秒钟的视频素材进行剪辑,那么该时间单元就是1秒钟。上述时间单元也可以以视频素材的帧率来确定,例如以视频素材的一帧或多帧间隔时长作为时间单元。
98.也就是说,能够依据时间线调度信息,在各时间单元确定该时间单元是否有需要进行剪辑处理的视频素材,如果有,还可以进一步确定出需要在该时间单元对该视频素材进行什么类型的剪辑处理。
99.下面结合实施例对上述步骤208即“对至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用该时间单元对应的剪辑类型信息逐帧对至少一个视频素材进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频”进行详细描述。
100.可以在响应于用户在时间线配置界面上触发启动剪辑的组件时,开始执行本步骤,或者开始执行步骤206。
101.例如用户可以在时间线配置界面上完成所有视频素材的导入、剪辑类型的配置以及在时间线上对应时间信息的配置后,点击启动剪辑的组件,统一生成时间线配置信息,并开始执行具体的剪辑处理。
102.再例如用户可以在时间线配置界面上进行配置的过程中都会生成时间线配置信息并随着用户的输入进行更新。当用户在时间线配置界面上完成所有视频素材的导入、剪辑类型的配置以及在时间线上对应时间信息的配置后,点击启动剪辑的组件,基于当前的时间线配置信息开始执行具体的剪辑处理。
103.本步骤中以时间单元作为依据,对一个时间单元对应的待剪辑的视频帧进行对应剪辑类型的处理后,再对下一时间单元对应的待剪辑的视频帧进行对应剪辑类型的处理。也就是说,将原本以视频素材为主线,对这个视频素材进行完剪辑处理后,再对中间素材或者结合其他视频素材进行下一剪辑处理的思路打破,变为以时间线作为主线,将对各视频素材进行的剪辑处理以时间单元为依据分成了一个个的“原子剪辑处理”,在一个时间单元将该时间单元对应的所有原子剪辑处理执行完,再执行下一个时间单元的原子剪辑处理。
104.但在一些情况下,有些剪辑类型是需要时序信息来进行智能预测的,仅仅以时间单元对应的视频内容无法进行准确地剪辑处理。例如,添加字幕需要进行字幕识别,需要利用一段时长的语音进行智能预测,其中会利用语句的上下文等信息。再例如,生成视频集锦,需要分析视频素材整体的内容和视频帧之间的关联。因此,作为一种优选的实施方式,可以依据至少一个视频素材的剪辑类型信息,确定需要进行预处理的视频素材;将需要进行预处理的视频素材提交给对应剪辑类型的剪辑模块,获取剪辑模块对接收到的视频素材进行剪辑处理后得到的视频帧序列;利用得到的视频帧序列更新时间线调度信息中对应待剪辑的视频素材信息。
105.其中上述需要进行预处理的视频素材可以包括需要利用时序信息进行智能预测的剪辑类型。例如字幕识别、生成视频集锦、文字转语音、音乐卡点,等等。除此之外,还可以采用其他策略来确定需要进行预处理的视频素材,例如确定出需要较强计算能力的剪辑类型,将这些剪辑类型的视频素材作为需要进行预处理的视频素材,等等。
106.上述的剪辑模块指的是执行具体剪辑类型处理的功能模块,该功能模块可以是视频剪辑装置自带的功能模块,也可以是其他装置或应用的功能模块。本技术实施例中,可以通过调用剪辑模块的api将待处理的视频素材传递给该剪辑模块,由剪辑模块对视频素材进行剪辑处理后返回给视频剪辑装置。
107.待所有需要预处理的视频素材均由对应的剪辑模块处理完毕并返回剪辑处理后
得到的视频帧序列后,由视频剪辑装置利用该视频帧序列更新时间线调度信息中对应待剪辑的视频素材信息。
108.举一个例子,仍以图3中所示的用户要将视频b中的各视频帧中抠出人物,对视频c生成字幕,再以视频c作为背景与从视频b中抠出人物的各帧进行合并。合并的视频的开头需要加入文本a,整段的视频需要和音频d进行合并。在生成时间线调度信息后,将视频c发送给生成字幕的剪辑模块,由生成字幕的剪辑模块对视频c进行字幕识别并在视频c的各视频帧上添加字幕,生成的新的视频c的视频帧序列,将该视频帧序列替换时间线调度信息中原来的视频c。
109.所有预处理都执行完毕后,视频剪辑装置对待剪辑的所有视频素材进行解码处理。在此需要说明的是,如果在之前的预处理过程中已经有剪辑模块对视频素材进行解码和相应的剪辑处理,则无需视频剪辑装置重复解码。但对于尚未解码的视频素材在此进行解码处理。
110.然后依据时间线上各时间单元的顺序,逐一对各时间单元执行:确定该时间单元对应的待剪辑的视频帧,利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理。
111.若在一个时间单元对应的待剪辑视频帧为一个且对应多个剪辑类型信息,则可以按照预设的优先级对该待剪辑视频帧逐一进行多个剪辑类型信息对应的剪辑处理。其中剪辑类型之间的优先级可以由用户设置,也可以采用默认的设置方式。
112.若一个时间单元对应的待剪辑视频帧为多个,则可以分别对多个待剪辑视频帧进行对应剪辑类型的剪辑处理,将剪辑处理后得到的多个视频帧进行合成。
113.接续上例,如图3中所示,对视频b、音频d进行解码后,针对00:00~00:10之间的各时间单元执行:对一个时间单元可以首先将文本a合成至该时间单元对应的视频c的视频帧(经过预处理的)中,再将该视频c的视频帧与该时间单元对应的音频d的片段合成,然后针对下一时间单元执行相同处理。如果一个时间单元与视频c的视频帧对应,如图4中所示,相当于逐帧执行了该帧的所有剪辑处理,然后再执行下一帧的所有剪辑处理。
114.针对00:10~00:40之间的各时间单元执行:对一个时间单元可以将该时间单元对应的视频b的视频帧进行人物扣取,将扣取的人物与该时间单元对应的视频c的视频帧(经过预处理的)合成,再将合成的视频帧与该时间单元对应的音频d的片段合成,然后针对下一时间单元执行相同处理。
115.这样经过对各时间单元的依次处理,实际上是逐帧的执行所有剪辑类型的剪辑处理,然后编码得到目标视频。将所有时间单元执行完毕,也就得到最终的目标视频。
116.另外需要说明的是,作为其中一种优选的实施方式,上述解码、剪辑和编码的过程可以采用流式的处理方式。例如,边解码边利用已经解码得到的视频帧进行逐帧的剪辑处理,然后再逐帧的对已经完成所有剪辑处理的视频帧进行编码。这种流式的方式相比较先将所有视频素材解码完成,对所有视频帧都进行剪辑处理完毕后再进行编码的方式,能够大大提高剪辑效率。
117.相比较以视频素材为主线的传统视频剪辑方式,本技术无需针对每一步视频剪辑处理环节都进行编解码,而是对视频素材进行解码后,以时间单元为主线对各视频素材进行所有视频剪辑后,再进行编码,大大降低了编解码的次数,缩短了视频剪辑的耗时,也降
低了因为编解码次数较多对视频素材带来的质量损耗。
118.对于生成的目标视频可以返回给客户端并向用户进行展示,也可以进行存储以便后续查询或展示。例如,可以返回给客户端并在图3所示界面上进行预览,若用户预览后确定目标视频满足自己的需求,则可以通过触发存储的组件请求存储该目标视频,或者触发下载的组件请求下载该目标视频至本地终端设备。
119.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
120.根据另一方面的实施例,提供了一种视频剪辑装置。图5示出根据一个实施例的视频剪辑装置的示意性框图。如图5所示,该装置500包括:界面提供单元501、配置获取单元502、调度处理单元503和剪辑处理单元504。其中各单元的主要功能如下:
121.界面提供单元501,被配置为向用户提供时间线配置界面。
122.作为其中一种可实现的方式,上述时间线配置界面包括:时间线、用以获取视频素材的一个以上的轨道以及用以配置剪辑类型信息的组件。
123.其中,轨道被输入的视频素材以时间线作为剪辑处理的时间信息的参考。
124.配置获取单元502,被配置为获取用户通过时间线配置界面输入的时间线配置信息,时间线配置信息包括:至少一个视频素材,以及对至少一个视频素材所进行剪辑处理的剪辑类型信息和在时间线上的时间信息,剪辑类型信息包括两个以上的剪辑类型。
125.作为其中一种可实现的方式,响应于调整视频素材在轨道中位置的用户操作,确定对该视频素材所进行的剪辑处理在时间线上对应的时间信息。
126.作为另一种可实现的方式,响应于用户针对所选中轨道中的视频素材设置的开始时间,确定对该视频素材所进行的剪辑处理在时间线上对应的时间信息,并相应调整该视频素材在所选中轨道中的位置。
127.调度处理单元503,被配置为根据时间线配置信息生成时间线调度信息,时间线调度信息包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息。
128.剪辑处理单元504,被配置为对至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频。
129.作为其中一种可实现的方式,调度处理单元503还可以被配置为:依据至少一个视频素材的剪辑类型信息,确定需要进行预处理的视频素材;将需要进行预处理的视频素材提交给对应剪辑类型的剪辑模块,获取剪辑模块对接收到的视频素材进行剪辑处理后得到的视频帧序列;利用视频帧序列更新时间线调度信息中对应待剪辑的视频素材信息。
130.其中,上述需要进行预处理的视频素材可以包括:需要利用时序信息进行智能预测的剪辑类型。
131.作为其中一种可实现的方式,剪辑处理单元504在利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理时,若该时间单元对应的待剪
辑视频帧为一个且对应多个剪辑类型信息,则按照预设的优先级对该待剪辑视频帧逐一进行多个剪辑类型信息对应的剪辑处理;或者,若该时间单元对应的待剪辑视频帧为多个,则分别对多个待剪辑视频帧进行对应剪辑类型的剪辑处理,将剪辑处理后得到的多个视频帧进行合成。
132.作为其中一种可实现的方式,剪辑处理单元504在执行上述解码处理、在各时间单元进行的上述剪辑处理和编码处理时可以采用流式的处理方式。
133.需要说明的是,本技术实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
134.另外,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
135.以及一种电子设备,包括:
136.一个或多个处理器;以及
137.与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
138.其中,图6示例性的展示出了电子设备的架构,具体可以包括处理器610,视频显示适配器611,磁盘驱动器612,输入/输出接口613,网络接口614,以及存储器620。上述处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,与存储器620之间可以通过通信总线630进行通信连接。
139.其中,处理器610可以采用通用的cpu、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
140.存储器620可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储用于控制电子设备600运行的操作系统621,用于控制电子设备600的低级别操作的基本输入输出系统(bios)622。另外,还可以存储网页浏览器623,数据存储管理系统624,以及视频剪辑装置625等等。上述视频剪辑装置625就可以是本技术实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
141.输入/输出接口613用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
142.网络接口614用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
143.总线630包括一通路,在设备的各个组件(例如处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,与存储器620)之间传输信息。
144.需要说明的是,尽管上述设备仅示出了处理器610、视频显示适配器611、磁盘驱动器612、输入/输出接口613、网络接口614,存储器620,总线630等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
145.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
146.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
147.以上对本技术所提供的技术方案进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本技术的限制。
技术特征:1.一种视频剪辑方法,其特征在于,该方法包括:根据用户输入的时间线配置信息生成时间线调度信息,所述时间线调度信息包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息,所述剪辑类型信息包括两个以上的剪辑类型;对所述至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频。2.根据权利要求1所述的方法,其特征在于,在对所述至少一个视频素材进行解码处理之前,还包括:依据所述时间线配置信息中包含的视频素材的剪辑类型信息,确定需要进行预处理的视频素材;将需要进行预处理的视频素材提交给对应剪辑类型的剪辑模块,获取所述剪辑模块对接收到的视频素材进行剪辑处理后得到的视频帧序列;利用所述视频帧序列更新所述时间线调度信息中对应待剪辑的视频素材信息。3.根据权利要求2所述的方法,其特征在于,所述需要进行预处理的视频素材包括:需要利用时序信息进行智能预测的剪辑类型。4.根据权利要求1所述的方法,其特征在于,所述利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理包括:若该时间单元对应的待剪辑视频帧为一个且对应多个剪辑类型信息,则按照预设的优先级对该待剪辑视频帧逐一进行所述多个剪辑类型信息对应的剪辑处理;或者,若该时间单元对应的待剪辑视频帧为多个,则分别对多个待剪辑视频帧进行对应剪辑类型的剪辑处理,将剪辑处理后得到的多个视频帧进行合成。5.根据权利要求1所述的方法,其特征在于,所述解码处理、在各时间单元进行的所述剪辑处理和所述编码处理可以采用流式的处理方式。6.一种视频剪辑方法,其特征在于,该方法包括:向用户提供时间线配置界面;获取所述用户通过所述时间线配置界面输入的时间线配置信息以用于进行视频剪辑,所述时间线配置信息包括:至少一个视频素材,以及对所述至少一个视频素材所进行剪辑处理的剪辑类型信息和在时间线上的时间信息,所述剪辑类型信息包括两个以上的剪辑类型。7.根据权利要求6所述的方法,其特征在于,所述时间线配置界面包括:时间线、用以获取视频素材的一个以上的轨道、用以配置剪辑类型信息的组件以及启动剪辑的组件;其中,所述轨道被输入的视频素材以所述时间线作为剪辑处理的时间信息的参考;响应于所述启动剪辑的组件被触发的事件,开始所述进行剪辑处理的步骤。8.根据权利要求6所述的方法,其特征在于,该方法还包括:响应于调整视频素材在所述轨道中位置的用户操作,确定对该视频素材所进行的剪辑处理在所述时间线上对应的时间信息;或者,响应于用户针对所选中轨道中的视频素材设置的开始时间,确定对该视频素材所进行的剪辑处理在所述时间线上对应的时间信息,并相应调整该视频素材在所选中轨道中的位
置;或者,响应于所述配置剪辑类型信息的组件被触发的事件,获取并记录用户针对当前被选中轨道的视频素材输入的剪辑类型信息。9.根据权利要求6所述的方法,其特征在于,所述进行视频剪辑包括:根据所述时间线配置信息生成时间线调度信息,所述时间线调度信息包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息;对所述至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频。10.一种视频剪辑装置,其特征在于,该装置包括:界面提供单元,被配置为向用户提供时间线配置界面;配置获取单元,被配置为获取所述用户通过所述时间线配置界面输入的时间线配置信息,所述时间线配置信息包括:至少一个视频素材,以及对所述至少一个视频素材所进行剪辑处理的剪辑类型信息和在时间线上的时间信息,所述剪辑类型信息包括两个以上的剪辑类型;调度处理单元,被配置为根据所述时间线配置信息生成时间线调度信息,所述时间线调度信息包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息;剪辑处理单元,被配置为对所述至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至9任一项所述的方法的步骤。12.一种电子设备,其特征在于,包括:一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行权利要求1至9任一项所述的方法的步骤。
技术总结本申请实施例公开了一种视频剪辑方法及装置。其中主要技术方案包括:向用户提供时间线配置界面;获取用户通过时间线配置界面输入的时间线配置信息;根据时间线配置信息生成时间线调度信息,时间线调度信息包括各时间单元对应的待剪辑的视频素材信息以及剪辑类型信息;对至少一个视频素材进行解码处理,依次在各时间单元确定该时间单元对应的待剪辑的视频帧,并利用待剪辑的视频帧在该时间单元对应的剪辑类型信息对该待剪辑的视频帧进行剪辑处理,并对剪辑处理后得到的视频帧进行编码处理,得到目标视频。本申请能够方便、高效地实现视频剪辑。视频剪辑。视频剪辑。
技术研发人员:周桂鑫
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.06.20
技术公布日:2022/11/1