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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
Python如何判断数独是否合法
Sep 08 Python
Python max内置函数详细介绍
Nov 17 Python
django 常用orm操作详解
Sep 13 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
对Django url的几种使用方式详解
Aug 06 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
NumPy中的维度Axis详解
Nov 26 Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 Python
Python如何给函数库增加日志功能
Aug 04 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 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中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
JS 对象介绍
2010/01/20 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
node.js中的url.parse方法使用说明
2014/12/10 Javascript
javascript折半查找详解
2015/01/26 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
python有证书的加密解密实现方法
2014/11/19 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python/golang 删除链表中的元素
2020/09/14 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
简短的公司员工自我评价分享
2013/11/13 职场文书
学生党员思想汇报
2013/12/28 职场文书
初一生物教学反思
2014/01/18 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
请假条怎么写
2014/04/10 职场文书
关于爱国的标语
2014/06/24 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
总经理司机岗位职责
2015/04/10 职场文书
贷款收入证明范本
2015/06/12 职场文书