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使用webbrowser浏览指定url的方法
Apr 04 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
python文件特定行插入和替换实例详解
Jul 12 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
python使用Flask操作mysql实现登录功能
May 14 Python
python实现图片筛选程序
Oct 24 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python3使用diagrams绘制架构图的步骤
Apr 08 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的引用原因分析
2012/09/06 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
fetch 使用及如何接收JS传值
2017/11/11 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
JS实现分页导航效果
2020/02/19 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
简单的Python2.7编程初学经验总结
2015/04/01 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
python基于opencv检测程序运行效率
2019/12/28 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
python 制作简单的音乐播放器
2020/11/25 Python
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
保荐人的岗位职责
2013/11/19 职场文书
生产部岗位职责范文
2014/02/07 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
课内比教学心得体会
2014/09/09 职场文书
2015年加油站工作总结
2015/05/13 职场文书
高三化学教学反思
2016/02/22 职场文书
golang语言指针操作
2022/04/14 Golang
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS