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 相关文章推荐
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
python实现FTP服务器服务的方法
Apr 11 Python
Python对列表中的各项进行关联详解
Aug 15 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 Python
python中的字符串内部换行方法
Jul 19 Python
python使用udp实现聊天器功能
Dec 10 Python
linux环境下Django的安装配置详解
Jul 22 Python
使用python操作lmdb对数据读取的实例
Dec 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 多文件上传的实现实例
2016/10/23 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
python常见排序算法基础教程
2017/04/13 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
护士实习鉴定范文
2013/12/22 职场文书
小学语文国培感言
2014/03/04 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
销售员岗位职责
2014/06/09 职场文书
生物学专业求职信
2014/07/23 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
八年级英语教学反思
2016/02/15 职场文书
vue 实现上传组件
2021/05/31 Vue.js
python 批量压缩图片的脚本
2021/06/02 Python
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers