前言:

本篇文章将会教你如何用python语言去开发、制作一个可以剪切视频、音频的可视化工具,内容跟以往一样,简单直接,都是硬核内容,具体流程和备注都写在代码注释里了,实在看不懂没关系,代码复制粘贴直接用。

环境:

python3.5+

第三方库:

pip install moviepy (这个模块是用来对视频进行剪切的)

效果展示:

功能代码:

from moviepy.editor import *
from tkinter import *
from tkinter.filedialog import askdirectory
import tkinter
import time
import threading
import uuidclass FindURL(object):def __init__(self):# 创建主窗口self.root = Tk()# 设置标题self.root.title("剪辑小工具")self.path_all = StringVar()self.path_one = StringVar()# 设置界面大小self.root['width'] = 500self.root['height'] = 400# 创建左侧提示文本,采用place坐标方式布局Label(self.root, text='文件路径', width=15).place(x=1, y=10)Label(self.root, text='开始时间(秒)', width=15).place(x=1, y=50)Label(self.root, text='结束时间(秒', width=15).place(x=1, y=70)# 输入框设置默认值begin_time = tkinter.StringVar(value=1)end_time = tkinter.StringVar(value=10)self.select_one = tkinter.Entry(textvariable=self.path_one, width=40)Button(self.root, text="文件选择", command=self.selectFile).place(x=410, y=5)self.url_input3 = tkinter.Entry(textvariable=begin_time, width=20)self.url_input4 = tkinter.Entry(textvariable=end_time, width=20)# 创建一个显示框self.display_info = tkinter.Listbox(self.root, width=60)# 创建一个开始按钮self.result_button = tkinter.Button(command=self.spider_thred, text="开始测试")self.select_one.focus()# 打开单个文件def selectFile(self, event=None):# tkinter提供的askopenfilename函数可以实现打开文件对话框的效果,其返回值为所选文件的绝对路径,并且可指定文件类型self.path_ = tkinter.filedialog.askopenfilename(title="选择媒体文件",filetypes=(("mp4 files", "*.mp4"), ("mp3 files", "*.mp3")))self.path_one.set(self.path_)# 设置输入框和按钮的坐标位置def gui_arrange(self):self.select_one.place(x=100, y=10)self.url_input3.place(x=100, y=50)self.url_input4.place(x=100, y=70)self.display_info.place(x=30, y=160)self.result_button.place(x=200, y=120)# 功能函数部分def spider(self):# 获取输入值self.midea_path = self.select_one.get()self.begin_time = self.url_input3.get()self.end_time = self.url_input4.get()try:self.display_info.insert(tkinter.END,"即将剪辑%s视频%s秒到%s秒部分" % (self.midea_path, self.begin_time, self.end_time))# 剪辑video = CompositeVideoClip([VideoFileClip(self.midea_path).subclip(self.begin_time, self.end_time)])self.display_info.insert(tkinter.END, "剪辑中...")# 写入剪辑完成的音乐self.display_info.insert(tkinter.END, "保存中...")# 生成随机文件名str_ = str(uuid.uuid4())# 获取文件后缀hz = self.midea_path.split('.')[-1]video.write_videofile(str_ + "." + hz)self.display_info.insert(tkinter.END, "已全部完成")except BaseException as e:self.display_info.insert(tkinter.END, "剪辑失败:%s" % str(e))# 多线程解决gui阻塞问题def spider_thred(self):T = threading.Thread(target=self.spider)T.start()def all_main():window = FindURL()window.gui_arrange()tkinter.mainloop()if __name__ == "__main__":all_main()

使用python开发一个剪切视频、音频的小工具(完整案例)相关推荐

  1. 文案生成 python_用 Python 开发一个【视频营销号】生成器

    原标题:用 Python 开发一个[视频营销号]生成器 之前小帅b在网上看到一个营销号文案生成器,把我给乐的: 其实这个用 Python 实现非常简单,根据用户输入的内容,简单替换一下关键字就可以了, ...

  2. python实现简单小游戏_用python开发一个有趣的猜数字小游戏(实现简单的GUI界面学习)...

    文章目录 用python开发一个有趣的猜数字小游戏 用于字符串的格式化,通过 {} 和 : 来代替以前的 % 1. python的GUI编程 1.1 pythonGUI常用库对比 Python 提供了 ...

  3. python温度转换_一步一步教会你,详解用Python实现一个简易的温度换算GUI小工具...

    今天,我们来使用Python完成一个小工具的制作.很简单,就是对于摄氏温度和华氏温度的相互换算.但是,我们的目的是复习一下之前学过的Python中tkinter的小内容. 复习下前面的知识 先来看下今 ...

  4. python广告营销平台_如何用 Python 开发一个【视频营销号】生成器?

    ​之前小帅b在网上看到一个营销号文案生成器,把我给乐的: 其实这个用 Python 实现非常简单,根据用户输入的内容,简单替换一下关键字就可以了,我随手写了一下生成方法: 调用一波: 是不是老小编了? ...

  5. 实战|轻松用 Python 开发一个简单有趣的聊天小程序

    前言 Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol). UDP 为应用程序提供了一种无需建立连接就可以发送封装的 I ...

  6. 80行代码自己动手用python写一个表格拆分与合并小工具

    大家好,我是才哥. 可能是最近加班熬夜太多,这个周末身体不舒服,头痛.冷汗什么的.终于在连着睡了接近2天后,现在慢慢恢复了. 最近有新朋友看到之前<>,想问下有没有免费的小工具,可以进行表 ...

  7. 用Python爬虫做一个短视频+评论下载小工具

    成品展示:  复制以上代码用于视频下载 按照以上步骤获取评论路径复制 选择要保存到哪个文件夹中 输入复制的视频地址和评论地址 保存完成   获取音视频部分主要代码(只是主要功能代码): def get ...

  8. python制作软件excel_利用Python制作一个 截图+Excel操作浏览器小工具

    代码如下: GetData.py import xlrd class ReadExcel(): def __init__(self,file): self.open_excel = xlrd.open ...

  9. python种颜色循环_Python 实现一个颜色色值转换的小工具

    需求说明 公司的 UI 设计小哥,已经转用 Zeplin 很久了.Zeplin 的设计稿展示页面的颜色色值使用十进制的 RGB 表示的,在 Android 中的颜色表示大多情况下都需要十六进制的 RG ...

最新文章

  1. 获得jar包存放路径的方法
  2. set OpenCV_ROOT
  3. 联想笔记本ideapad700 15isk添加内存
  4. java数据类型_JAVA的数据类型
  5. Entityframework:启用延时加载的主意事项(只为强化记忆)
  6. 推荐系统炼丹笔记:阿里推荐算法特征交叉新方式CAN
  7. Quartus II 订购版 和 网络版 软件功能 区别
  8. 基于开源流程引擎Activiti5的工作流开发平台BPMX3
  9. 信息学奥赛一本通 2043:【例5.11】杨辉三角形
  10. Java 9 接口私有方法
  11. Windows学习总结(4)——Host文件的作用和如何修改Host文件
  12. SAP License:SAP系统上线时的相关检查清单
  13. 这个技能,让可视化大屏开挂一样的秀!
  14. System.arrayCopy()和普通数组复制之间的效率差别
  15. 【图像检索】基于matlab GUI综合颜色和形状特征图像检索【含Matlab源码 1370期】
  16. Android StickHeaderRecyclerView - 让recyclerview头部固定
  17. Windows7系统环境变量path的配置方法
  18. Python - 使用Pylint检查分析代码
  19. 一篇文章入门Python
  20. WHQL认证如何给驱动程序做数字签名

热门文章

  1. Linux ❉ Chronyd时间同步服务器详解
  2. 如何取得从1970年1月1日0时0分0秒到现在的毫秒数?
  3. 聊聊短信接口攻击的防范方案
  4. 阿里云发布全新开源操作系统『龙蜥』,支持 X86 64 和 ARM 64 架构及鲲鹏、飞腾等芯片...
  5. java 邮件客户端 smtp_带用户验证的SMTP邮件客户端java实现
  6. 浩辰3D软件中应用程序菜单如何使用?
  7. windows的Alt键一直处于按下状态,解决,亲测有用
  8. 逆水寒服务器维护到什么时候,逆水寒11月1日更新到什么时候_维护到几点
  9. android 触控优化,太滑手了,安卓这款触控优化神器要逆天!
  10. APP Designer 制作简易英汉词典的回调函数书写