Python 官方文档:入门教程 => 点击学习
目录实践步骤完整代码参考实践步骤 寻找合适的python库(安装是否麻烦、使用是否简便、执行会不会太久) moviepy 音视频库。分析需要用的api:代码示例 定义输入输出 输入:
寻找合适的python库(安装是否麻烦、使用是否简便、执行会不会太久)
定义输入输出
设计执行流程并一步步实现(定义函数,与使用具体API相关)
结论:时间太久,片段多长就花了多久的时间;CPU全跑满了。
stackoverflowConcat videos too slow using Python MoviePY 里面有个答案说,调用包里封装的FFmpeg函数会快一些:
You have some functions that perfORM direct calls to ffmpeg: GitHub.com/Zulko/movie… And are therefore extremely efficient, for simple tasks such as yours.
重新设计和实现,直接使用moviepy.video.io.ffmpeg_tools里的函数:ffmpeg_extract_subclip(源音视频文件,起,止,输出名)。
结论:时间快了很多,几乎是几秒内就完成。
优化:一次处理多个时间段
优化:每段时间配上名字
优化:输入输出的合法性校验
需要pip install moviepy
简单的使用
from moviepy.editor import VideoFileClip, concatenate_videoclips
clipOri = VideoFileClip("E:/2020-03-29 19-31-39.mkv")
#截取两个subclip再拼接
#time_length = int(clipOri.duration) 这句可以获取片子的时
#超过时长会报错,时长默认用秒,也可以写得更细,(00:03:50.54)->3分50秒
cut1 = clipOri.subclip(0, 7053)
cut2 = clipOri.subclip(7059, 8941)
finalClip = concatenate_videoclips([cut1,cut2])
finalClip.write_videofile("E:/acut.mp4")
import os
import moviepy.video.io.ffmpeg_tools as fftool
from moviepy.tools import cvsecs
def add_suffix(file_name, suffix): # 文件名拼接后缀
index = file_name.rfind('.') # 最后一个点号
res = file_name[:index] + '_' + suffix + file_name[index:]
return res
# 输入
file_name = r"./XXX.mkv"
output_arr = [
('04:20','05:07', '自我介绍'),
('05:07','17:47', '项目经历'),
('17:37','24:40', 'https'),
('24:40','28:10', '实现读写锁'),
]
if not os.path.isfile(file_name): # 校验
print("不合法的输入", file_name)
for startStr, endStr, suffix in output_arr:
start = cvsecs(startStr)
end = cvsecs(endStr)
if start < 0 or start >= end: # 校验
print("不合法的时间",startStr, endStr)
continue
full_output_name = add_suffix(file_name, suffix)
print('处理文件:', file_name, '时间:', startStr, '-', endStr)
fftool.ffmpeg_extract_subclip(file_name,start,end,full_output_name) # 剪辑并输出
print('处理功成功,输出:',full_output_name)
以上就是python基于moviepy实现音视频剪辑的详细内容,更多关于python moviepy实现音视频剪辑的资料请关注编程网其它相关文章!
--结束END--
本文标题: python基于moviepy实现音视频剪辑
本文链接: https://www.lsjlt.com/news/10941.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0