[ffmpeg] 動画のフレームをキャプチャするには

ffmpegを使って動画キャプチャもできる。

ffmpegを使って動画のフレームをキャプチャする方法

例えば、動画の冒頭5秒をスキップし、その後は1秒刻みでフレームをキャプチャして cap_01.jpg、cap_02.jpg、cap_03.jpg … という連番ファイルに保存したい場合には、以下のようにオプションを指定してffmpegを実行する。

-s 640×480 は静止画像のサイズ指定で単位はピクセル。

-ss 5 は冒頭5秒をスキップする指定。

-r 1 はキャプチャするフレームレートで単位はフレーム/秒。もしキャプチャ間隔を長くしたければ、小数で指定することもできる。例えば、2秒ごとに1フレームキャプチャしたければ0.5と指定すればよい。ちなみに、ffmpegの仕様なのか、0.05未満の値は指定できないみたい。より短い間隔でキャプチャしたければ、ちょっと面倒だけど、大きめのフレームレートを指定して多目に画像ファイルを作成した後、不要なファイルを間引くようにすると良いだろう。

cap_%%02d.jpg は出力ファイル名の指定。連番指定にはprintfライクな書式指定が使える。