ffmpeg - 画像の正確な時間距離を定義する

ffmpeg - 画像の正確な時間距離を定義する

長さ 3 分、画像数 29 枚/秒のムービーがあります。これを 1 枚/秒で画像に分割したいです。

私はこのコマンドを使用します:

ffmpeg.exe -i FILE0014.MOV -r 2 -f image2 -vcodec mjpeg -qscale 2 "%%05d.jpg"

しかし、300 枚以上の画像が生成されます。

ログファイルには次のように表示されます:

フレーム= 3 fps=0.0 q=0.0 サイズ=N/A 時間=00:00:01.00 ビットレート=N/A dup=0 ドロップ=13
フレーム= 4 fps=3.9 q=0.0 サイズ=N/A 時間=00:00:01.50 ビットレート=N/A dup=0 ドロップ=33
フレーム= 5 fps=3.2 q=0.0 サイズ=N/A 時間=00:00:02.00 ビットレート=N/A dup=0 ドロップ=51
フレーム= 7 fps=3.4 q=0.0 サイズ=N/A 時間=00:00:03.00 ビットレート=N/A dup=0 ドロップ=67
フレーム= 8 fps=3.1 q=0.0 サイズ=N/A 時間=00:00:03.50 ビットレート=N/A dup=0 ドロップ=84
フレーム= 9 fps=2.9 q=0.0 サイズ=N/A 時間=00:00:04.00 ビットレート=N/A dup=0 ドロップ=102
フレーム= 10 fps=2.8 q=0.0 サイズ=N/A 時間=00:00:04.50 ビットレート=N/A dup=0 ドロップ=120
フレーム= 12 fps=2.9 q=0.0 サイズ=N/A 時間=00:00:05.50 ビットレート=N/A dup=0 ドロップ=137

時間は正確に1秒ではありません。

正しいコマンドを作成するのを手伝ってくれる人はいませんか?

答え1

試す:

ffmpeg -i file0014.mov -vf fps=1 -q:v 2 %03d.jpg

これを詳しく見てみましょう:

-vf fps=11秒間隔でフレームを選択します

-q:v 2( の略称qscale) は、jpeg 画像の品質スケールです。1 が最高品質、31 が最低品質です。

関連情報