[ffmpeg] 動画から1分おきに静止画をキャプチャするには

動画の先頭から1分おきに静止画をキャプチャするニーズあり。静止画をキャプチャする方法は以前にも書いたけど、-r オプションでフレームレートを指定して一定間隔にキャプチャできる。しかしフレームレートには0.05より小さな値は指定できない(指定すると値が小さすぎるとメッセージが表示されて処理されず)。従って、大きめのフレームレートを指定して多めに静止画をキャプチャしてから、不用な静止画を間引くという二段階の作業が必要。

30フレーム/秒の動画から10秒おきに静止画をキャプチャする

ソース動画が30fpsの場合、以下のオプションで10秒ごとに静止画をキャプチャできる。

-ss オプションで冒頭5秒はスキップしているはずだけど、なぜか僕の環境だと冒頭の1分間で8枚の静止画がキャプチャされた。すなわち9枚目の静止画が冒頭から1分ちょうどのフレームね。そうして全ての静止画がキャプチャされたら冒頭の8枚の静止画を削除して、次の1枚を保存してそれに続く5枚を削除、またその次1枚を保存しそれに続く5枚を削除する。そうして残ったのが1分おきの動画キャプチャ画像群。