Ich versuche, "genau 1 Bild von 10" Bildern eines Videos (dh 1 extrahieren, 9 lassen, dann wiederholen) für wissenschaftliche Zwecke zu extrahieren. Das Video ist 105 Bilder, 3,5 Sekunden, 29,97 fps (h.264, .mov, produziert von Nikon D3100).
Ich habe es hier hochgeladen .
VLC
Der folgende Befehl sollte 10 Bilder erzeugen, aber nur 6 Bilder. Ich habe verschiedene Szenenverhältnisse ausprobiert und keines von beiden erzeugt die richtige Anzahl von Bildern (nicht einmal annähernd korrekt).
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
Würde mir bitte jemand sagen, wo das Problem liegt?
FFmpeg
FFmpeg scheint keinen Befehl genau für meinen Zweck zu haben. Der folgende Befehl extrahiert 3 Frames aus jeder Sekunde, aber da der FPS nicht genau 30 (eher 2,97) beträgt, führt dies für mich nicht zu korrekten Ergebnissen.
Außerdem gibt selbst FFmpeg mit diesem Befehl nicht die richtige Anzahl von Frames aus. Für 3,5 Sekunden Video erwarte ich höchstens 10 Bilder, aber ich bekomme 12 Bilder!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
Wie kann ich erreichen, was ich will?
-sameq
macht nicht das, was Sie wahrscheinlich denken, und wurde aus der aktuellen Version entfernt (das echte ffmpeg, das heißt, ich bin nicht sicher, ob es im gefälschten Ubuntu-ffmpeg ist). Verwenden Sie stattdessen qscale.