You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的MoviePy批量选取文件夹中的所有图片?

用MoviePy批量读取文件夹图片生成MP4视频

以下是优化后的代码,实现批量读取指定文件夹内的所有图片并生成视频,替代手动逐个添加的繁琐操作:

from moviepy.editor import ImageClip, concatenate_videoclips
import os

# 配置参数
IMAGE_FOLDER = "imagesfolder"
PER_IMAGE_DURATION = 4  # 每张图片的显示时长(秒)
OUTPUT_FILE = "memes.mp4"

video_clips = []

# 筛选文件夹内的图片文件(支持常见格式)
allowed_extensions = ('.jpg', '.jpeg', '.png', '.bmp')
image_files = [
    filename for filename in os.listdir(IMAGE_FOLDER)
    if filename.lower().endswith(allowed_extensions)
]

# 对图片文件名排序,保证视频画面顺序正确
image_files.sort()

# 批量创建图片剪辑
for img_name in image_files:
    img_path = os.path.join(IMAGE_FOLDER, img_name)
    clip = ImageClip(img_path).set_duration(PER_IMAGE_DURATION)
    video_clips.append(clip)

# 拼接并导出视频
if video_clips:
    final_video = concatenate_videoclips(video_clips, method='compose')
    final_video.write_videofile(
        OUTPUT_FILE,
        fps=24,
        remove_temp=True,
        codec="libx264",
        audio_codec="aac"
    )
else:
    print("指定文件夹中未找到符合要求的图片文件")

关键优化点说明

  • 批量筛选图片:通过后缀名过滤出文件夹内的图片,支持多种常见格式,无需手动指定每个文件名。
  • 文件名排序:对图片文件名进行排序,确保视频中的画面按预期顺序播放(比如避免image10.jpg排在image2.jpg前面)。
  • 跨平台路径处理:使用os.path.join拼接文件路径,避免Windows和Linux系统的路径分隔符差异问题。
  • 容错机制:判断是否存在有效图片,避免无图片时执行拼接操作导致报错。

内容的提问来源于stack exchange,提问作者Emossauce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:05:52