やりたいこと
映像データ(MP4)から写真データを出力する。
尚、FFmpegはインストール済みでコマンドは打てる状態とする。
環境情報
- macOS 10.15
- ffmpeg version N-106666 the FFmpeg developers
やり方
動画データ(test.mp4)にピクセルにてサイズ(1920x1280等)を指定した上で以下のように出力先を与えると
$ ./ffmpeg -i test.mp4 -s 1920x1080 -r 1 -q:v 1 -vcodec png Test/%06d.png
以下のような標準出力の後に動画を1秒毎に切り出した画像が出力される。
frame= 333 fps=1.8 q=-0.0 Lsize=N/A time=00:05:32.00 bitrate=N/A dup=0 drop=9600 speed= 1.8x 40 speed=N/A video:614727kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown ...
尚、ファイル数はframeに記載されている数値でファイル名は6桁の0詰め数字となる。
$ ls -l Test ... -rw-r--r-- ... 000331.png -rw-r--r-- ... 000332.png -rw-r--r-- ... 000333.png
以下、補足です。
補足
動画のフォーマット変更で利用されるffmpegですが、動画データを画像データに変換することも可能です。
ただし画像は動画をスクリーンショットしたものと対して変わらないので、利用方法としては画像生成の省力化と言う観点になりそうです。
尚、今回は-r
にて毎秒1枚と言う指定をしましたが、引数の数を大きくすることで毎秒2枚や毎秒6枚といった指定も可能です。
以上。