「お気に入りのイラストや写真に音楽をつけて、簡単な動画を作ってみたい」
そんなときに便利なのが MoviePy という Python ライブラリです。
MoviePy を使うと、静止画と音声ファイルから数行のコードでMP4動画を作成できます。
しかも最新バージョン(v2系)では、以前よりもコードが直感的でシンプルになりました。
この記事では、MoviePy v2.x に対応した最新・最小構成のサンプルコードを使って、
「画像+音声 → 動画」の作り方をわかりやすく解説します。
- 1枚の画像(例:ジャケットやアートワーク) png形式
- 1本の音声(例:BGM、ナレーション、ピアノ曲など) mp3形式
今回はこのブログの画像にも使用している女の子の画像と
適当に作成した音声データで動画を作成してみます。
- 1本の動画(YouTube標準サイズ(1280×720)で出力) mp4形式
ローカル環境で実行した場合、数十秒~数分には動画ファイルが完成します。
まず Python(3.9以上)をインストールします。
👉 https://www.python.org/downloads/
bash
pip install moviepy imageio-ffmpegMoviePy は内部で FFmpeg というツールを使います。imageio-ffmpeg を同時に入れておくと自動的に実行パスを検出してくれます。
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()

作成した動画はせっかくなので、Youtubeにアップしてみました。
晴れてYoutuberデビューです。
書き出し時の出力設定も色々調整可能なので、ぜひ、お試しあれ。
