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面向对象_详谈类的继承与方法的重载
Jun 07 Python
Python实现自动发送邮件功能
Mar 02 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
python 多线程串行和并行的实例
Feb 22 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
Python图片的横坐标汉字实例
Dec 04 Python
python pyenv多版本管理工具的使用
Dec 23 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
如何查看python关键字
Jan 17 Python
图神经网络GNN算法
May 11 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/04/09 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python3实现购物车功能
2018/04/18 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
python实现ip代理池功能示例
2019/07/05 Python
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
四年大学自我鉴定
2014/02/17 职场文书
绩效工资实施方案
2014/03/15 职场文书
技校毕业生自荐书
2014/05/23 职场文书
户外宣传策划方案
2014/05/25 职场文书
英语系毕业生求职信
2014/07/13 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
出生医学证明书
2014/09/15 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
捐款仪式主持词
2015/07/04 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
php双向队列实例讲解
2021/11/17 PHP
详解Vue的列表渲染
2021/11/20 Vue.js
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle