moviepy将图片序列制作成视频并加载字幕 - python 实现
DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。
需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)”
-----------------------------------------------------------------------------------------
具体代码实现如下:
import os
from moviepy.editor import ImageSequenceClip,VideoFileClip,TextClip,CompositeVideoClip
path_ = "imgs/"
# 设置每秒帧数
fps = 30
# 每张图片的持续时间列表
durations = []
# 图片文件列表
image_files = []
for f_ in os.listdir(path_):
print(f_)
image_files.append(path_ + f_)
durations.append(2) # 一个视频停留 2 秒
# 创建视频剪辑对象,设置每张图片的持续时间
clip = ImageSequenceClip(image_files, durations=durations)
# 输出视频文件
clip.write_videofile("output_video.mp4", codec="libx264",fps=fps)
# 打上字幕
video = VideoFileClip("output_video.mp4") # 替换为你的视频文件路径
# 获取视频时长(单位:秒)
duration = video.duration
# 获取视频宽度
video_width = video.w
text = "DataBall - X "
print("{}".format(text))
txt_clip = TextClip(text, fontsize=120, color='blue', font="Arial-Bold",size=(video_width, None),method="caption")
txt_clip = txt_clip.set_position('bottom').set_duration(duration)
txt_clip = txt_clip.set_start(0)
final_video = CompositeVideoClip([video, *[txt_clip]])
# 输出字幕合成视频文件
final_video.write_videofile("output_video2.mp4", codec="libx264", audio_codec="aac")
示例如下:
助力快速掌握数据集的信息和使用方式。
数据可以如此美好!