python剪切视频与合并视频
生活随笔
收集整理的這篇文章主要介紹了
python剪切视频与合并视频
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#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 VideoFileClipclass 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!")#輸出文件后界面返回OKself.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:# 如果后綴名為 .mp4if 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)在線觀看視頻更清楚學得更快更好!
windows下python3做視頻剪切-視頻合并功能
總結
以上是生活随笔為你收集整理的python剪切视频与合并视频的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雷蛇手机2 android8.1,雷蛇手
- 下一篇: vs code设置保存时自动将CRLF