大家好,我是陈程~
做视频剪辑的时候,还在重复性工作吗?
明天,我来教大家如何利用Python帮你搞定这些重复性的剪辑工作~
01 装置
对视频进行批量剪辑,须要三个库,别离是Moviepy库和Pathlib库,还有Tkinter库。
首先咱们对这两个库进行装置,命令如下:
`pip install moviepy
pip install pathlib`
02 剪辑
下面咱们曾经装置好所须要的库了,当初开始来对视频进行剪辑操作。
视频剪辑
Moviepy库有一个VideoFileClip函数,将视频传入这个函数后,会返回一个VideoFileClip实例对象,该对象能够被subclip()进行剪辑,代码如下:
from moviepy.editor import *clip = VideoFileClip('1.mp4').subclip(2,4)# 将剪出的视频进行存储clip.write_videofile('2.mp4')
视频合并
第一步跟视频剪辑一样,须要将合并的视频传入VideoFileClip函数,使其成为一个VideoFileClip实例对象。而后调用Concatenate_videoclips函数,将所有VideoFileClip实例对象的视频进行合并,最初进行保留。代码如下:
from moviepy.editor import VideoFileClip,concatenate_videoclipsclip_1 = VideoFileClip('1.mp4')clip_2 = VideoFileClip('2.mp4')file = concatenate_videoclips([clip_1,clip_2])file.write_videofile('3.mp4')
视频转化为gif
将视频转化成gif非常简单,当视频通过VideoFileClip函数解决成为VideoFileClip实例对象后,即可间接保留为gif格局。代码如下:
from moviepy.editor import *file = VideoFileClip(k)file.write_gif(f'{name}.gif')
批量
下面只是对单个视频,或者个别文件夹的视频进行操作,然而咱们想要的是批量进行剪辑、合并和转化。这里,Pathlib库给咱们提供了两个Path和PurePath函数,能够很不便的找到电脑中mp4文件,代码如下:
files = []p = Path(src_path)for x in p.iterdir():if PurePath(x).match('*.mp4'):files.append(x)
之后和下面的代码进行合并,即可实现批量获取的性能 。
GUI界面
程序的性能曾经全副实现了,咱们当初须要对该程序进行界面设计,这里咱们应用的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()
小结
- 本文具体介绍了,如何应用Moviepy库和Pathlib库,还有Tkinter库,做一个批量解决视频的软件。
- 有趣味的小伙伴们能够本人复现一下代码进行学习。
- 喜爱的小伙伴就点个赞,点个关注,感激你的反对!