やりたいこと
動画ファイルから連番のpngをつくりたい。
コマンドプロンプトからFFmpegコマンドを実行して、動画から画像ファイルに変換する。
環境
- Windows11 64bit
ffmpegとは
FFmpeg(エフエフエムペグ)は動画や音声を変換できるコマンドラインツール。クロスプラットフォームなので、Unix系やMacでも使用できる。
出典:FFmpeg - Wikipedia
ffmpegの準備
ダウンロード
HPからFFmpegをダウンロードする。
-
公式サイト https://ffmpeg.org/ へ行き、「Download」をクリックする
-
windowsのファイルを選びダウンロードする
今回は「ffmpeg-master-latest-win64-gpl.zip」を選択。
環境変数にPATHを追加
解凍したexeファイルのフルパスを指定すればコマンドを使用できる。
例:> C:\Program Files\ffmpeg\bin\ffmpeg.exe ffmpeg ...
が、いちいちフルパスを入力するのは面倒なので、PATHに追加することで「ffmpeg」とだけ入力すればコマンドを実行できるように環境変数にPATHを追加する。
-
「〇〇のユーザー環境変数」もしくは「システム環境変数」から「Path」を選択し、「編集」をクリックする
システム環境変数とユーザ環境変数の違いは以下。好きな方を選ぶ。
- システム環境変数:PC上のユーザ全員に適応する
- ユーザ環境変数:今ログイン中のユーザのみに適応する
ffmpegコマンドの実行
ffmpegコマンドの構文
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
ffmpegを使って動画から連番画像をつくる例
コマンドプロンプト上でffmpegコマンドを実行すれば、動画ファイルから連番画像をエクスポートできる。
以下は「D:\sample\ファイル名.mp4」から1秒あたり30枚の画像を「D:\sample\image001.png」からの連番でエクスポートする例。
rem フォルダ名
SET folder_path=D:\sample
rem ファイル名
SET file_name=test.mp4
rem 動画ファイルから連番画像をエクスポート
ffmpeg -i "%folder_path%\%file_name%" -r 30 "%folder_path%\image%03d.png"
以下オプションの説明。
-
-i <filename>
- 入力ファイルのパス
-
-r <rate>
- フレームレート(1秒あたりの枚数)を指定値に変換する。指定しない場合は入力ファイルの値を継承
これで動画から連番画像がエクスポートされる。
出典:ffmpeg Documentation
出典:最新ffmpegのオプションまとめ - MobileHackerz Knowledgebase Wiki