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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
初步理解Python进程的信号通讯
Apr 09 Python
基于Python Shell获取hostname和fqdn释疑
Jan 25 Python
Scrapy的简单使用教程
Oct 24 Python
Python列表推导式与生成器用法分析
Aug 02 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
解决python3安装pandas出错的问题
May 20 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
一个简单实现多条件查询的例子
2006/10/09 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
监理员的岗位职责
2013/11/13 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
我的祖国演讲稿
2014/05/04 职场文书
校庆口号
2014/06/20 职场文书
迎国庆横幅标语
2014/10/08 职场文书
年终工作总结范文2014
2014/11/27 职场文书
雾霾停课通知
2015/04/24 职场文书
新闻通讯稿范文
2015/07/22 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python