python剪切视频与合并视频的实现
windows10/python3.6环境需安装imageio,ffmpeg(视频中有教下载)文字中不体现太麻烦,看起来也不方便!
剪切代码python代码:
importimageio
imageio.plugins.ffmpeg.download()
importwin_unicode_console
win_unicode_console.enable()
importsys,os
fromPyQt5.QtCoreimport*
fromPyQt5.QtWidgetsimport(QWidget,QPushButton,QLineEdit,QLabel,
QApplication,QFileDialog)
frommoviepy.video.io.VideoFileClipimportVideoFileClip
classlogin(QWidget):
def__init__(self):
super(login,self).__init__()
self.initUI()
definitUI(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()
#打开的视频文件名称
defselect_source(self):
target,fileType=QFileDialog.getOpenFileName(self,"选择源文件","C:/")
self.source_le.setText(str(target))
#保存的视频文件名称,要写上后缀名
defselect_target(self):
target,fileType=QFileDialog.getSaveFileName(self,"选择保存路径","C:/")
self.target_le.setText(str(target))
defaddNum(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这个库
frommoviepy.editorimport*
importos
#定义一个数组
L=[]
#访问video文件夹(假设视频都放在这里面)
forroot,dirs,filesinos.walk("./video"):
#按文件名排序
files.sort()
#遍历所有文件
forfileinfiles:
#如果后缀名为.mp4
ifos.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剪切合并视频内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。