画像と音声から簡単に動画を作ってみた|MoviePy

「お気に入りのイラストや写真に音楽をつけて、簡単な動画を作ってみたい」
そんなときに便利なのが MoviePy という Python ライブラリです。

MoviePy を使うと、静止画と音声ファイルから数行のコードでMP4動画を作成できます。
しかも最新バージョン(v2系)では、以前よりもコードが直感的でシンプルになりました。

この記事では、MoviePy v2.x に対応した最新・最小構成のサンプルコードを使って、
「画像+音声 → 動画」の作り方をわかりやすく解説します。

事前に準備するもの(インプット)

  • 1枚の画像(例:ジャケットやアートワーク) png形式
  • 1本の音声(例:BGM、ナレーション、ピアノ曲など) mp3形式

今回はこのブログの画像にも使用している女の子の画像と
適当に作成した音声データで動画を作成してみます。

完成イメージ(アウトプット)

  • 1本の動画(YouTube標準サイズ(1280×720)で出力) mp4形式

ローカル環境で実行した場合、数十秒~数分には動画ファイルが完成します。

環境準備

STEP1:Pythonのインストール

まず Python(3.9以上)をインストールします。
👉 https://www.python.org/downloads/

STEP2:ライブラリのインストール

bash
pip install moviepy imageio-ffmpeg

MoviePy は内部で FFmpeg というツールを使います。
imageio-ffmpeg を同時に入れておくと自動的に実行パスを検出してくれます。

STEP3:コードを書く

Vidual Studio Codeなどのテキストエディタに
以下のコードを書きます。

また、用意した画像と音声も同じファイルに格納します。

python
from moviepy.audio.io.AudioFileClip import AudioFileClip
from moviepy.video.VideoClip import ImageClip, ColorClip
from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
import moviepy.config as mconf
from imageio_ffmpeg import get_ffmpeg_exe

# --- ffmpeg のパス設定(PATH未設定でもOK) ---
mconf.FFMPEG_BINARY = get_ffmpeg_exe()

# --- ファイルパス ---
image_path = "image.png"
audio_path = "Light Beyond the Sea.mp3"
output_path = "Light_Beyond_the_Sea_Simple.mp4"

# --- 音声と画像を読み込み ---
audio = AudioFileClip(audio_path)
image = ImageClip(image_path, duration=audio.duration)

# --- 背景を作って中央に画像を配置(1280x720) ---
background = ColorClip(size=(1280, 720), color=(0, 0, 0), duration=audio.duration)
image = image.resized(height=720)  # 縦720pxにリサイズ(アスペクト比維持)

video = CompositeVideoClip(
    [background, image.with_position(("center", "center"))],
    size=(1280, 720)
).with_audio(audio)

# --- 書き出し ---
video.write_videofile(
    output_path,
    fps=24,
    codec="libx264",
    audio_codec="aac"
)

# --- 後処理 ---
video.close()
audio.close()
実行結果
実行後にmp4ファイルが作成される

完成物(アウトプット)

作成した動画はせっかくなので、Youtubeにアップしてみました。
晴れてYoutuberデビューです。

書き出し時の出力設定も色々調整可能なので、ぜひ、お試しあれ。