連番静止画から動画生成 — スライドショーとタイムラプスの作り方

写真をまとめてスライドショー動画にしたり、長時間撮影した動画からタイムラプスを作ったりする際に FFmpeg は非常に便利です。FFmpeg 6.1 で確認済みのコマンドを用途別に解説します。


連番PNG → 動画(スライドショー)

img001.pngimg002.png のように連番になった画像ファイル群から動画を生成します。

ffmpeg -framerate 1 -i img%03d.png -c:v libx264 output.mp4

%03d のような連番パターンは CI の書き換えルールの対象外のためテキストブロックで示します。

スライドショーを滑らかにする:

フレームレートを上げると再生がスムーズになります。ただし枚数が足りないと動画が短くなるため、-r 25 で出力フレームレートも合わせて指定します。

ffmpeg -framerate 1 -i img%03d.png -c:v libx264 -r 25 output.mp4

この場合、入力1fps(1枚1秒)を出力25fps に変換するため、各フレームが25回繰り返されて滑らかに見えます。


単一画像 → 短動画(ループ)

1枚の画像を指定秒数の動画にする場合は -loop 1-t を組み合わせます。

ffmpeg -loop 1 -i image.png -t 5 -c:v libx264 output.mp4

pix_fmt yuv420p の重要性

libx264 でエンコードした動画は、デフォルトの pix_fmt がソース画像に依存します。PNG の場合 yuv444prgba になることがあり、QuickTime(macOS プレーヤー)や一部のモバイル端末で再生できないことがあります。

互換性を重視する場合は必ず -pix_fmt yuv420p を追加してください:

ffmpeg -loop 1 -i image.png -t 3 -c:v libx264 -pix_fmt yuv420p output.mp4

yuv420p は最も広く対応された色空間フォーマットです。品質のわずかな低下と引き換えに、ほぼすべての環境での再生互換性が確保されます。


タイムラプス(動画から間引き)

既存の動画からフレームを間引いて高速再生動画(タイムラプス)を作成します。-vf fps=1/N で「N秒に1フレーム」を取り出し、通常速度で再生することで N倍速のタイムラプスになります。

ffmpeg -i input.mp4 -vf fps=1/10 output.mp4

速度の目安:

-vf fps=間引き間隔速度
fps=1/55秒に1フレーム5倍速
fps=1/1010秒に1フレーム10倍速
fps=1/3030秒に1フレーム30倍速
fps=1/601分に1フレーム60倍速

互換性のためにこちらも -pix_fmt yuv420p を付けることを推奨します:

ffmpeg -i input.mp4 -vf fps=1/10 -c:v libx264 -pix_fmt yuv420p output.mp4

連番JPG → 動画(タイムラプス用素材から)

カメラのインターバル撮影で得られた連番 JPEG から動画を作る場合:

ffmpeg -framerate 24 -i photo%04d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4

%04dphoto0001.jpg, photo0002.jpg, … のような4桁ゼロ埋め連番に対応します。

開始番号を指定する場合 (photo0100.jpg から始まるなど):

ffmpeg -framerate 24 -start_number 100 -i photo%04d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4

フレームレートまとめ

目的推奨設定
1枚1秒のスライドショー-framerate 1
滑らかなスライドショー-framerate 1 -r 25
通常の動画-framerate 24 または 30
タイムラプス(10倍速)-vf fps=1/10

image2 デマルチプレクサについて

FFmpeg は画像シーケンス入力に image2 デマルチプレクサを内部で使用します。通常は自動検出されますが、明示的に指定することも可能です:

ffmpeg -f image2 -framerate 25 -i img%03d.png -c:v libx264 output.mp4

-f image2 の指定は通常不要ですが、自動検出が効かない場合の回避策として覚えておくと便利です。


関連記事:


動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 (GitHub Actions runner)
一次ソース: ffmpeg.org/ffmpeg.html / ffmpeg.org/ffmpeg-filters.html / trac.ffmpeg.org/wiki/Slideshow