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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
在Python操作时间和日期之asctime()方法的使用
May 22 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
Django后台管理系统的图文使用教学
Jan 20 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
Pandas实现批量拆分与合并Excel的示例代码
May 30 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实现批量查询清除一句话后门的代码
2008/01/20 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
joomla组件开发入门教程
2016/05/04 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
jQuery示例收集
2010/11/05 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
浅析python继承与多重继承
2018/09/13 Python
Django保护敏感信息的方法示例
2019/05/09 Python
Python 画出来六维图
2019/07/26 Python
如何用python写个模板引擎
2021/01/14 Python
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
自我鉴定 电子商务专业
2014/01/30 职场文书
成语的广告词
2014/03/19 职场文书
股权收购意向书
2014/04/01 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
创卫工作总结2015
2015/04/22 职场文书
python解析json数据
2022/04/29 Python