手把手教你制作批量剪辑、合并、转化视频的软件~

简介: 大家好,我是志斌~在广州做视频剪辑的同学这几天给我吐槽,说她每天都要剪辑大量的视频,虽然操作很简单,但是却都是重复性的工作,占用了她大量的时间。

大家好,我是志斌~


在广州做视频剪辑的同学这几天给我吐槽,说她每天都要剪辑大量的视频,虽然操作很简单,但是却都是重复性的工作,占用了她大量的时间。


于是她来找我,想问问我能不能用Python帮她搞定这些重复的剪辑工作,让她能够有更多的精力去搞点有难度的!


这肯定是能的!Python除了不能帮你生孩子外,好像真没它不能干的!所以我们来跟大家分享一下如何用Python进行视频剪辑。


01安装


对视频进行批量剪辑,需要三个库,分别是Moviepy库和Pathlib库,还有Tkinter库。


首先我们对这两个库进行安装,命令如下:

pip install moviepy
pip install pathlib


02剪辑


上面我们已经安装好所需要的库了,现在开始来对视频进行剪辑操作。


01 视频剪辑


Moviepy库有一个VideoFileClip函数,将视频传入这个函数后,会返回一个VideoFileClip实例对象,该对象可以被subclip()进行剪辑,代码如下:


from moviepy.editor import *
clip = VideoFileClip('1.mp4').subclip(2,4)
# 将剪出的视频进行存储
clip.write_videofile('2.mp4')



02 视频合并


第一步跟视频剪辑一样,需要将合并的视频传入VideoFileClip函数,使其成为一个VideoFileClip实例对象。然后调用Concatenate_videoclips函数,将所有VideoFileClip实例对象的视频进行合并,最后进行保存。代码如下:


from moviepy.editor import VideoFileClip,concatenate_videoclips
clip_1 = VideoFileClip('1.mp4')
clip_2 = VideoFileClip('2.mp4')
file = concatenate_videoclips([clip_1,clip_2])
file.write_videofile('3.mp4')


03 视频转化为gif


将视频转化成gif非常简单,当视频经过VideoFileClip函数处理成为VideoFileClip实例对象后,即可直接保存为gif格式。代码如下:


from moviepy.editor import *
file = VideoFileClip(k)
file.write_gif(f'{name}.gif')


03批量


上面只是对单个视频,或者个别文件夹的视频进行操作,但是我们想要的是批量进行剪辑、合并和转化。这里,Pathlib库给我们提供了两个Path和PurePath函数,可以很方便的找到电脑中mp4文件,代码如下:


files = []
p = Path(src_path)
for x in p.iterdir():
 if PurePath(x).match('*.mp4'):
     files.append(x)


之后和上面的代码进行合并,即可实现批量获取的功能 。


04GUI界面


程序的功能已经全部实现了,我们现在需要对该程序进行界面设计,这里我们使用的Tkinter库来进行界面设计,代码如下:


# 创建窗口
root = tk.Tk()
# 标题
root.title('视频剪辑')
# 窗口大小
root.geometry('450x200')
# 窗口的初始位置
root.geometry('+400+200')
# 标签的控件
label_1 = tk.Label(root, text='输入文件地址', font=(r'苏新诗柳楷简.ttf', 16), fg='black')
label_1.grid()
label_2 = tk.Label(root, text='输入剪辑时间', font=(r'苏新诗柳楷简.ttf', 16), fg='black')
label_2.grid()
# 输入框
enter_1 = tk.Entry(root, font=(r'苏新诗柳楷简.ttf', 16))
enter_2 = tk.Entry(root, font=(r'苏新诗柳楷简.ttf', 16))
# 设置输入框的位置
enter_1.grid(row=0, column=1)
enter_2.grid(row=1, column=1)
# 按钮
button = tk.Button(root, text='开始', font=(r'苏新诗柳楷简.ttf', 16), command=jianjivideo)
# 设置按钮的位置
button.grid(row=1, column=2)
# 显示窗口
root.mainloop()


05小结


1. 本文详细介绍了,如何使用Moviepy库和Pathlib库,还有Tkinter库,做一个批量处理视频的软件。

2. 有兴趣的同学可以自己复现一下代码进行学习。

3. 本文仅供学习参考,不做它用。

4. 获取代码方式看评论区~


相关文章
|
6月前
|
人工智能 语音技术 云计算
基于客户真实使用场景的云剪辑Timeline问题解答与代码实操
本文为阿里云智能媒体服务IMS「云端智能剪辑」实践指南第6期,从客户真实实践场景出发,分享一些Timeline小技巧(AI_TTS、主轨道、素材对齐),助力客户降低开发时间与成本。
135624 86
基于客户真实使用场景的云剪辑Timeline问题解答与代码实操
|
6月前
|
机器学习/深度学习 人工智能 数据安全/隐私保护
免费交互式大模型在线图像去除水印.擦除.替换和增强照片项目代码(免费在线图像修复工具)
免费交互式大模型在线图像去除水印.擦除.替换和增强照片项目代码(免费在线图像修复工具)
|
3月前
|
Rust 定位技术
一行命令快捷构建在线地图字体切片服务
一行命令快捷构建在线地图字体切片服务
|
3月前
|
前端开发 JavaScript
团队筛选功能制作
团队筛选功能制作
31 0
|
5月前
|
机器学习/深度学习 人工智能 Java
人工智能平台PAI产品使用合集之已经通过自定义镜像部署了一个模型,想要上传并导入其他模型,该如何操作
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
人工智能 自然语言处理 安全
如何三分钟快速制作自定义ppt
如何三分钟快速制作自定义ppt
147 0
|
6月前
|
搜索推荐 定位技术 数据安全/隐私保护
方便、免费的PDF在线处理网站汇总:PDF合并、文字编辑、页面提取与删除、格式转换…
方便、免费的PDF在线处理网站汇总:PDF合并、文字编辑、页面提取与删除、格式转换…
137 1
|
6月前
|
Python 容器
使用Python自动制作《历史上的今天》宣传图片
使用Python自动制作《历史上的今天》宣传图片
|
Linux Python
彩蛋丨利用R语言脚本实现批量合并Excel表格,再也不用手动点来点去了!
彩蛋丨利用R语言脚本实现批量合并Excel表格,再也不用手动点来点去了!
|
6月前
|
存储 JSON 5G
短视频批量制作-常用功能
越来越多的产品选择使用短视频作为内容承载,通过对媒体素材进行简单的剪辑,即可进行使用和投放,本文基于智能媒体服务IMS,介绍短视频剪辑中的常用功能,通过对不同功能的组合,方便客户组装自己的剪辑场景,进行短视频批量合成。
209 0
短视频批量制作-常用功能