本发明涉及计算机图形学和多媒体,尤其涉及一种基于特定数据结构的视频合成方法。
背景技术:
1、现有技术中,对与已知素材,包括声音,视频,动画等无法通过结构描述进行批量生成完整视频,只能通过现有软件手工处理,效率低下。
技术实现思路
1、本发明的目的在于提供一种基于特定数据结构的视频合成方法,从而解决现有技术中存在的前述问题。
2、为了实现上述目的,本发明采用的技术方案如下:
3、一种基于特定数据结构的视频合成方法,包括如下步骤,
4、s1、素材下载:遍历用户输入的数据描述结构中的所有场景中的所有素材,启动并发任务,将所有素材下载到本地,并对所有素材进行有效性检验;
5、s2、素材视频合成:将通过有效性检验的视频素材进行两两并发合并转码后拼接在一起,生成素材视频;
6、s3、图片动效生成:将通过有效性检验的有入场动效的图片素材、无动效的图片素材和有出场动效的图片素材分别进行合并生成入场动效视频、无动效视频和出场动效视频,并将三者合并成一个图片动效视频;
7、s4、字幕处理:解析通过有效性检验的字幕素材,根据解析字幕素材的时间段将所有截取的字幕png图片生成透明的字幕mov文件;
8、s5、音效合并:将通过有效性检验的字幕配音素材、背景音乐素材和音效素材混音成一个声音;
9、s6、文件动画解析:将通过有效性检验的动画素材,将动画json文件导出为透明的png序列帧图片,并将png序列帧图片合成为透明的动画mov文件;
10、s7、完整视频合成:
11、将素材视频、图片动效视频、字幕mov文件、声音和动画mov文件合成指定格式的完整视频。
12、优选的,数据描述结构描述了各素材的场景、角色、动作和音频信息,数据描述结构为每个素材的每个场景、角色和动作分配标识符和属性;
13、数据描述结构能够准确表示素材的特征、运动信息和时序关系。
14、优选的,步骤s1具体为,遍历用户输入的数据描述结构中的所有场景中的所有素材,根据素材的开始和结束时间,确定场景的开始时间和结束时间,启动并发任务,将所有素材下载到本地,检查和校验视频素材的有效性。
15、优选的,检查和检验视频素材的有效性具体包括,
16、检查和校验素材的地址是否正确、素材是否能被访问下载、素材格式是否正确、素材的时长是否合理。
17、优选的,步骤s2中,将素材拼接在一起,生成素材视频,具体为,
18、s21、创建一个黑色背景的输入背景层;
19、s22、创建一个空音频的输入;
20、s23、将所有的视频素材作为输入源;
21、s24、用filter_complex滤镜将所有输入源按照时间轴覆盖到背景层上;
22、s25、将音频输入通过ffmpeg concat按时间轴与覆盖好视频素材的背景层进行拼接,生成素材视频。
23、优选的,步骤s3具体包括如下内容,
24、s31、将有入场动效的图片素材通过入场效果类型逐帧生成入场动效视频;
25、s32、将无动效的图片素材通过ffmpeg命令生成指定时间的无动效视频;
26、s33、将有出场动效的图片素材通过出场动效类型逐帧生成出场动效视频;
27、s34、将入场动效视频、无动效视频和出场动效视频通过ffmpeg concat合成一个图片动效视频。
28、优选的,步骤s4具体为,对字幕素材进行srt字幕解析,根据字幕提交样式生成html,通过pixi将字体画到canvas上,python执行javascript对canvas进行截图成字幕png图片,根据解析的字幕时间段通过ffmpeg将所有字幕png图片生成透明的字幕mov文件。
29、优选的,步骤s5具体为,将字幕配音素材、多个背景音乐素材、音效素材,根据每个声音的时间轴,通过ffmpeg混音成一个声音。
30、优选的,步骤s6具体为,通过python lottie库解析动画素材,将json格式的动画素材通过多线程逐帧导出透明的png序列帧图片,将png序列帧图片通过ffmpeg合成透明的动画mov文件。
31、优选的,步骤s7具体为,将素材视频、图片动效视频、字幕mov文件、音效和动画mov文件,通过ffmpeg合成指定格式的完整视频。
32、本发明的有益效果是:本发明方法通过用户输入的数据描述结构,可以离线,批量替换素材,复制生成视频,大大提高工作效率。2、本发明通过自动的命令执行可以快速合成完成的视频内容。
1.一种基于特定数据结构的视频合成方法,其特征在于:包括如下步骤,
2.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:数据描述结构描述了各素材的场景、角色、动作和音频信息,数据描述结构为每个素材的每个场景、角色和动作分配标识符和属性;
3.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s1具体为,遍历用户输入的数据描述结构中的所有场景中的所有素材,根据素材的开始和结束时间,确定场景的开始时间和结束时间,启动并发任务,将所有素材下载到本地,检查和校验视频素材的有效性。
4.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:检查和检验视频素材的有效性具体包括,
5.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s2中,将素材拼接在一起,生成素材视频,具体为,
6.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s3具体包括如下内容,
7.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s4具体为,对字幕素材进行srt字幕解析,根据字幕提交样式生成html,通过pixi将字体画到canvas上,python执行javascript对canvas进行截图成字幕png图片,根据解析的字幕时间段通过ffmpeg将所有字幕png图片生成透明的字幕mov文件。
8.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s5具体为,将字幕配音素材、多个背景音乐素材、音效素材,根据每个声音的时间轴,通过ffmpeg混音成一个声音。
9.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s6具体为,通过python lottie库解析动画素材,将json格式的动画素材通过多线程逐帧导出透明的png序列帧图片,将png序列帧图片通过ffmpeg合成透明的动画mov文件。
10.根据权利要求1所述的基于特定数据结构的视频合成方法,其特征在于:步骤s7具体为,将素材视频、图片动效视频、字幕mov文件、音效和动画mov文件,通过ffmpeg合成指定格式的完整视频。