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入门篇之面向对象
Oct 20 Python
Python实现判断一行代码是否为注释的方法
May 23 Python
django进阶之cookie和session的使用示例
Aug 17 Python
python数据批量写入ScrolledText的优化方法
Oct 11 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python递归法解决棋盘分割问题
Jul 17 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
python制作朋友圈九宫格图片
Nov 03 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
使用python绘制横竖条形图
Apr 21 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Python 如何展开嵌套的序列
2020/08/01 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
公共事业管理本科生求职信
2013/10/07 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
管道维修工岗位职责
2013/12/27 职场文书
出国留学担保书
2014/05/20 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
网聊搭讪开场白
2015/05/28 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
python中的装饰器该如何使用
2021/06/18 Python
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers