用python代码制作视频

前言

之前制作视频一般都是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)

然后同一目录下就会生成导出的视频。

最后

近期调整过来了,时不时会发点简单有趣的分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章