【FFmpeg】画像(PNG)ファイルから動画(MP4)ファイルを作る

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【FFmpeg】画像(PNG)ファイルから動画(MP4)ファイルを作る

2022-1-26 | ,

FFmpegを使って画像(PNG)ファイルから動画(MP4)ファイルを作りたい!

概要

FFmpegとBacthを使って画像(PNG)ファイルから動画(MP4)ファイルを作る例を示す。

仕様書

batファイルに変換したい連番画像が保管されたディレクトリをドラッグ・アンド・ドロップするとmp4ファイルに逐一変換される。
連番画像のファイル名は、ゼロ埋め3桁+拡張子に対応する。(000.png)
出力されるmp4ファイルは、連番画像が保管されてるディレクトリの中にディレクトリ名+拡張子の名前で出力される。

環境

  • Windows 10 Home Version 21H1(OS ビルド 19043.1415)
  • FFmpeg 4.2

手順書

下記は、引数で渡されたディレクトリにある連番画像をmp4に変換するサンプルです。

@echo off

:loop

if "%~1" == "" goto end

set output=%~n1
set attr=%~a1

if exist %~1 (
    if %attr:~0,1%==d (
        ffmpeg -framerate 15 -i "%~f1\%%03d.png" -vcodec libx264 -pix_fmt yuv420p -r 60 -crf 0 "%output%\%output%.mp4"
    )
)

shift
goto loop

:end

pause

上記のBatchファイルを実行する前にffmpeg.exeがあるディレクトリにパスを通しておく。もしくは、Batchファイル内のffmpegコマンドをフルパスで入力しておく。

作ったbatファイルに変換したい連番画像が保管されてるディレクトリをまとめてドラッグ・アンド・ドロップすると処理が逐一開始される。

解説

ffmpegコマンドのオプションについて簡単に解説する。

-framerate 15は入力する連番画像のフレームレートを設定する。(サンプルの場合は、フレームレートが60の動画を出力するのに対して、画像1枚を4フレーム分として扱う設定になってる)
-r 60は出力するMP4ファイルのフレームレートを設定する。
-crf 0は動画の品質を設定する。基本的に数値が大きくなる度に品質が高く、ファイルサイズも増加する。ただし、0は無劣化でファイルサイズも最も大きくなる。

まとめ(感想文)

ちょっとした動画を作るのに便利かもね!