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中Flask框架简单入门实例
Mar 21 Python
Python字符串切片操作知识详解
Mar 28 Python
Python中几种导入模块的方式总结
Apr 27 Python
python+matplotlib演示电偶极子实例代码
Jan 12 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
使用Python 统计高频字数的方法
Jan 31 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
使用numpy nonzero 找出非0元素
May 14 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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+jQuery实现自动补全功能源码
2013/05/15 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
使用angular写一个hello world
2015/01/23 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
javascript事件模型介绍
2016/05/31 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python的缺点和劣势分析
2019/11/19 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
80后职场人的职业生涯规划
2014/03/08 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
企业文化演讲稿
2014/05/20 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
旷工辞退通知书
2015/04/17 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
python for循环赋值问题
2021/06/03 Python
Elasticsearch 基本查询和组合查询
2022/04/19 Python
zabbix配置nginx监控的实现
2022/05/25 Servers