ffmpegコマンドで動画ファイルを画像ファイルに変換する

ffmpegコマンドで動画ファイルを画像ファイルに変換する

ffmpegコマンドを使用してwmvファイルを画像ファイルに分割します。

また、複数の画像ファイルからwmvファイルを作成する方法も記します。

例としてwmvファイルを利用しますが、aviやmp4でも可能です。

ffmpegのインストール

Ubuntu20.04でffpegをインストールします。

$ sudo apt install ffmpeg
# 対応オプション一覧
$ ffmpeg -h all
# 対応コーデック一覧
$ ffmpeg -codecs

動画ファイルから画像ファイルを作成

下記を実行すると、outputディレクトリにimage_0000.png, image_0001.png…といった連番のpng画像が生成されます。

$ ffmpeg -i input.wmv -vcodec png -r 1 output/image_%04d.png

各オプションは、下記の通りです。

  • -i
    画像に分割したい動画ファイルを指定します。
  • -vcodec
    出力画像のコーデックを指定します。対応するコーデックは$ ffmpeg -codecsで確認が可能です。出力画像としてjpgがほしいならmjpeg、gifがほしいならgifを指定します。
  • -r
    1秒あたりのフレーム数を指定します。入力動画が30fpsのときに-r 30を指定するとすべての画像が利用されます。一方で入力画像が60fpsで-r 30の場合は1コマ置きの画像が生成されます。

画像ファイルから動画ファイルを作成

ouput/下にあるimage_%04d.pngから、out.mp4ファイルを作成します。

$ ffmpeg -y -framerate 5 -i output/image_%04d.png -codec libx264 -pix_fmt yuv420p out.mp4

  • -framerate
    入力する画像のフレームレートを指定します。上記のコマンドでは1秒間に5枚の画像を利用してout.mp4を作成します。
  • -pix_fmt
    エンコーダに渡すピクセルフォーマット。yuv420pを指定しておけば大体OK。