Python轻松搞定视频剪辑重复性工作问题

作者:迟业 时间:2022-12-18 16:06:54 

目录
  • 01 安装

  • 02 剪辑

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_videoclips
clip_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库给我们提供了两个PathPurePath函数,可以很方便的找到电脑中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库,做一个批量处理视频的软件。

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

来源:https://juejin.cn/post/7042846544814407717

标签:Python,视频,剪辑,重复性
0
投稿

猜你喜欢

  • Python基于OpenCV实现人脸检测并保存

    2023-10-07 00:43:37
  • Python使用smtplib 实现单发和群发邮件验证码

    2023-07-10 13:56:50
  • python学习实操案例(二)

    2022-09-04 01:36:41
  • python学生管理系统代码实现

    2023-10-31 07:55:04
  • Python如何实现小程序 无限求和平均

    2023-04-13 20:07:40
  • pycharm 激活码及使用方式的详细教程

    2023-05-16 15:11:15
  • python中设置超时跳过,超时退出的方式

    2023-12-25 01:38:20
  • python3获取两个日期之间所有日期,以及比较大小的实例

    2023-01-31 06:54:52
  • ajax实现Dig程序中的投票

    2008-01-22 17:27:00
  • python django框架中使用FastDFS分布式文件系统的安装方法

    2022-02-25 21:27:33
  • GoLang中panic与recover函数以及defer语句超详细讲解

    2024-03-22 09:41:37
  • jQuery实现表单验证功能

    2024-04-09 19:49:07
  • 使用opencv中匹配点对的坐标提取方式

    2022-12-02 00:32:54
  • 深入理解Pytorch中的torch. matmul()

    2023-06-03 05:29:18
  • Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结

    2024-05-09 14:56:40
  • 搭建websocket消息推送服务,必须要考虑的几个问题

    2023-11-28 12:23:45
  • Pytorch中的Broadcasting问题

    2022-10-03 06:26:58
  • 利用keras使用神经网络预测销量操作

    2022-02-25 05:48:31
  • Go Slice进行参数传递如何实现详解

    2024-02-16 13:07:46
  • ES6新语法Object.freeze和Object.seal基本使用

    2024-04-10 16:10:04
  • asp之家 网络编程 m.aspxhome.com