moviepy是一个用于视频编辑的python模块,能够实现基本的操作,比如视频的裁剪,拼接,插入标题等等 甚至还自带了一些高级的特效,以后再说。当然,gif格式的读写也在其内。
简单说,moviepy可以作为服务端的视频处理,在服务端完成简单的处理,流水线工作。而且考虑到实际上所有的视频处理最后都追踪到 底层的数据处理,理论上知晓视频处理的原理,可以完成甚至开发新的功能。
pip install moviepy
即可完成安装
opencv也是我们最常用的视频读写库,但是opencv很明显,不太适合简单的视频剪辑,而更适合视频处理的用户,比如完成运动目标检测,运动目标跟踪等等。
import random
from moviepy import editor
def merge_music_video(video, audio):
return video.set_audio(audio) # 返回用audio代替背景声的video
clip = editor.VideoFileClip('./origin/1.mp4') # 读取视频
todo = clip.subclip(0, 5) # 截取视频的前5秒
time_length = clip.duration # 拿到视频的时长
count_length = int(time_length / 10) # 以10秒为间隔,拿到全视频10s为片段的数量
count_list = range(0, count_length) # 生成列表
random_list = random.sample(count_list, 9) # 从列表中随机选取9个,共计90s
bg_audio = editor.AudioFileClip('./bg-music/1.mp3') # 读取音乐
for item in random_list:
todo = editor.concatenate_videoclips([todo, clip.subclip(item * 10, item * 10 + 10)]) # concatenate拼接两个视频
# todo=merge_music_video(todo,bg_audio)
todo.write_videofile('./output/1.mp4', threads=16) # 以16个线程保存视频
这将是一个有趣的东西,计划完成到自动生成营销短视频的程度!
本文分享自 Python与MySQL 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!