python剪切视频与合并视频的实现


Posted in Python onMarch 03, 2020

windows10/python3.6环境需安装imageio,ffmpeg(视频中有教下载)文字中不体现太麻烦,看起来也不方便!

剪切代码python代码:

import imageio
imageio.plugins.ffmpeg.download()
import win_unicode_console
win_unicode_console.enable()
import sys,os
from PyQt5.QtCore import *
from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit,QLabel,
        QApplication,QFileDialog)
from moviepy.video.io.VideoFileClip import VideoFileClip


class login(QWidget):
 def __init__(self):
  super(login,self).__init__()
  self.initUI()

 def initUI(self):
  #源文件选择按钮和选择编辑框
  self.source_btn = QPushButton('源文件', self)
  self.source_btn.move(30, 30)
  self.source_btn.resize(60,30)
  self.source_btn.clicked.connect(self.select_source)
  self.source_le = QLineEdit(self)
  self.source_le.move(120, 30)
  self.source_le.resize(250,30)

  # 存储文件选择按钮和选择编辑框
  self.target_btn = QPushButton('目标路径', self)
  self.target_btn.move(30, 90)
  self.target_btn.resize(60, 30)
  self.target_btn.clicked.connect(self.select_target)
  self.target_le = QLineEdit(self)
  self.target_le.move(120, 90)
  self.target_le.resize(250, 30)

  #截切开始时间输入框和提示
  self.startLabel = QLabel(self)
  self.startLabel.move(30, 150)
  self.startLabel.resize(60,30)
  self.startLabel.setText("开始秒")
  self.start_le = QLineEdit(self)
  self.start_le.move(120,150)
  self.start_le.resize(50,30)

  # 截切结束时间输入框和提示
  self.stopLabel = QLabel(self)
  self.stopLabel.move(230, 150)
  self.stopLabel.resize(60,30)
  self.stopLabel.setText("结束秒")
  self.stop_le = QLineEdit(self)
  self.stop_le.move(320,150)
  self.stop_le.resize(50,30)

  #保存按钮,调取数据增加函数等
  self.save_btn = QPushButton('开始',self)
  self.save_btn.move(30, 210)
  self.save_btn.resize(140, 30)
  self.save_btn.clicked.connect(self.addNum)

 

  #执行成功返回值显示位置设置
  self.result_le = QLabel(self)
  self.result_le.move(30, 270)
  self.result_le.resize(340, 30)


  #整体界面设置
  self.setGeometry(400, 400, 400, 400)
  self.setWindowTitle('视频剪切')#设置界面标题名
  self.show()

 # 打开的视频文件名称
 def select_source(self):
  target,fileType = QFileDialog.getOpenFileName(self, "选择源文件", "C:/")
  self.source_le.setText(str(target))
 #保存的视频文件名称,要写上后缀名
 def select_target(self):
  target,fileType = QFileDialog.getSaveFileName(self, "选择保存路径", "C:/")
  self.target_le.setText(str(target))


 def addNum(self):
  source = self.source_le.text().strip()#获取需要剪切的文件
  target = self.target_le.text().strip()#获取剪切后视频保存的文件
  start_time = self.start_le.text().strip()#获取开始剪切时间
  stop_time = self.stop_le.text().strip()#获取剪切的结束时间
  video = VideoFileClip(source)#视频文件加载
  video = video.subclip(int(start_time), int(stop_time))#执行剪切操作
  video.to_videofile(target, fps=20, remove_temp=True)#输出文件
  self.result_le.setText("ok!")#输出文件后界面返回OK
  self.result_le.setStyleSheet("color:red;font-size:40px")#设置OK颜色为红色,大小为四十像素
  self.result_le.setAlignment(Qt.AlignCenter)#OK在指定框内居中

if __name__=="__main__":
 app = QApplication(sys.argv)
 ex = login()
 sys.exit(app.exec_())

合并视频:python代码

# 主要是需要moviepy这个库
from moviepy.editor import *
import os

# 定义一个数组
L = []

# 访问 video 文件夹 (假设视频都放在这里面)
for root, dirs, files in os.walk("./video"):
 # 按文件名排序
 files.sort()
 # 遍历所有文件
 for file in files:
  # 如果后缀名为 .mp4
  if os.path.splitext(file)[1] == '.mp4':
   # 拼接成完整路径
   filePath = os.path.join(root, file)
   # 载入视频
   video = VideoFileClip(filePath)
   # 添加到数组
   L.append(video)

# 拼接视频
final_clip = concatenate_videoclips(L)

# 生成目标视频文件
final_clip.to_videofile("./target.mp4", fps=24, remove_temp=False)

在线观看视频更清楚学得更快更好!

到此这篇关于python剪切视频与合并视频的实现的文章就介绍到这了,更多相关python剪切合并视频内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python发送邮件接收邮件示例分享
Jan 21 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python 使用with上下文实现计时功能
Mar 09 Python
Python动态生成多维数组的方法示例
Aug 09 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
Python数据类型之Tuple元组实例详解
May 08 Python
Python叠加两幅栅格图像的实现方法
Jul 05 Python
Python绘制热力图示例
Sep 27 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 #Python
基于python 等频分箱qcut问题的解决
Mar 03 #Python
python实现快递价格查询系统
Mar 03 #Python
使用python 计算百分位数实现数据分箱代码
Mar 03 #Python
利用Python计算KS的实例详解
Mar 03 #Python
python如何提取英语pdf内容并翻译
Mar 03 #Python
Pycharm如何运行.py文件的方法步骤
Mar 03 #Python
You might like
php实现的用户查询类实例
2015/06/18 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
php实现简单爬虫的开发
2016/03/28 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
layui 弹出删除确认界面的实例
2019/09/06 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
讲解Python中if语句的嵌套用法
2015/05/14 Python
pytorch 共享参数的示例
2019/08/17 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
传播学毕业生求职信
2013/10/11 职场文书
入党思想汇报
2014/01/05 职场文书
员工年终自我评价
2014/09/14 职场文书
地陪导游欢迎词
2015/01/26 职场文书
北京天坛导游词
2015/02/12 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers