前言
之前制作视频一般都是pr或者是在线制作视频,然后昨天偶然看到了一个python的库—moviepy
,现在我们可以写代码来制作视频了。
安装
这个库安装起来很简单,还是老样子pip install moviepy
不过使用windows的话还需要安装ImageMagick,不然视频制作会报错。
安装ImageMagick的博客
安装好之后就可以慢慢探索这个库的使用了,基本上所有的视频剪辑操作都有相关的函数,我也发现了不少比较好的博客可以用来学习
moviepy的基本使用
国内的相关博客可能不多,有条件的可以去看看国外的相关博客
一个小例子
因为前两天六一刚好出门玩拍了一点视频照片,所以正好拿来作为素材。
准备好素材,然后写点字幕,用网页的文字转语音导出mp3文件,一切素材准备就绪就可以开始写代码了。
结构
代码
from moviepy import editor
import re
# 添加视频,做淡入淡出处理
video_clips=[]
for name in ["./MP4/10803738726833380508703892223.mp4","./MP4/video_20200601_150530.mp4"]:
video_clip=editor.VideoFileClip(name).crossfadein(0.5).crossfadeout(0.5)
video_clips.append(video_clip)
# 拼接
bg_video=editor.concatenate(video_clips)
# 语音
voice=editor.AudioFileClip("./MP3/1.mp3")
duration=voice.duration
# 字幕
with open("./txt/字幕.txt",encoding='utf-8') as f:
text=f.readlines()[0]
lines=[line for line in re.split(',|。',text) if line !='']
line_dur=duration/len(lines)
subtitle_clips=[]
for i,line in enumerate(lines):
subtitle_clip=editor.TextClip(line,color='white',font="simhei.ttf",fontsize=60,bg_color='black',align='center')
subtitle_clip=editor.CompositeVideoClip([subtitle_clip]).set_duration(line_dur).set_start(i*line_dur).set_end((i+1)*line_dur)
subtitle_clips.append(subtitle_clip)
subtitles=editor.concatenate(subtitle_clips)
# 合成
final_audio=editor.CompositeAudioClip([voice.volumex(2)]).set_duration(duration)
final_video=editor.CompositeVideoClip([
bg_video,
subtitles.set_position(('center',0.8),relative=True)
]).set_duration(duration)
final_video=final_video.set_audio(final_audio)
# 导出
final_video.write_videofile('./test.mp4',fps=24)
然后同一目录下就会生成导出的视频。
最后
近期调整过来了,时不时会发点简单有趣的分享。