科学的な目的で、ビデオの「10ごとに正確に1フレーム」のフレームを抽出しようとしています(つまり、1を抽出し、9のままにしてから繰り返します)。ビデオは105フレーム、3.5秒、29.97fps(h.264、.mov、Nikon D3100により作成)です。
私がいるここでそれをアップロード。
VLC
以下のコマンドは10フレームを生成するはずですが、6つの画像しか生成しません。さまざまなシーン比率を試してみましたが、どちらも正しい数のフレームを生成しませんでした。
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
誰かが私に何が問題なのか教えてくれませんか?
FFmpeg
FFmpegには、私の目的にぴったり合ったコマンドがないようです。以下のコマンドは、毎秒3フレームを抽出しますが、FPSは正確に30ではなく(2.97)、正確な結果を生成しません。
さらに、FFmpegでも、このコマンドを使用しても正しいフレーム数が得られません。3.5秒のビデオで最大10フレームを期待していますが、得られるのは12フレームです。
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
どうすれば自分のやりたいことを達成できますか?
-sameq
は、あなたがおそらく思っていることを実行せず、現在のバージョンから削除されました(実際のffmpeg、つまり、Ubuntuの偽のffmpegにあるかどうかはわかりません)。代わりにqscaleを使用してください。