
Exp01.avi というビデオから画像を抽出したいのですが、ビデオは 24fps で、長さは 25 分です。1 分間隔ごとにビデオから画像を抽出したいのですが、やり方を教えてください。
以下のコマンドを試しましたが、効果はありませんでした:
ffmpeg -i video.avi -r 1 -t 00:01:00 -f image image%02d.png
そして
ffmpeg -i video.avi -r 1/1440 -f image image%02d.png
答え1
フィルターを使用しますselect
。以下は、1440 フレームごとに 1 つの画像を取得します。これは、1 秒あたり 24 フレームで 1 分ごとに取得されます。したがって、入力ビデオのフレーム レートに応じてこれを変更してください。
ffmpeg -i input.file -filter:v 'select=not(mod(n\,1440))' image%02d.png
時間ベースの選択を使用するには(おそらく最初のフレームが含まれることに注意してください):
ffmpeg -i input.file -filter:v 'select=isnan(prev_selected_t)+gte(t-prev_selected_t\,60),setpts=N/(24*TB)' image%02d.png