Welcher Rahmen erhält FFMPEG bei der Reduzierung der Bildrate
Frage
Ich habe ein Video, das ich alle 2 Sekunden in Bilder von Frames konvertieren möchte.
ZB, wenn das Video 7 Sekunden lang bei 15 fps ist, möchte ich Frames 1, 31, 61, 91 erhalten.
Der Befehl:
ffmpeg -i foo.mp4 -r 0.5 -f image2 -vcodec mjpeg foo%d.jpg
scheint zu tun, was ich will, aber welchen Rahmen bekommt es? 1, 31, 61, 91 oder 30, 60, 90 oder 13, 43, 73, 103?
Lösung
Das erste Bild stammt aus dem allerersten Rahmen.
Beachten Sie, dass Sie sehr gut ein oder zwei weitere Bilder erhalten, die Sie erwarten. Ich glaube, dies liegt an Runden und/oder dass FFMPEG endgültige Bilder erstellt. EG: Ist dein Video wirklich 7s lang? Oder ist es 7,63s lang?
Andere Tipps
Am Ende habe ich die folgenden weitgehend aus dem FFMPEG -Tutorial ausgeliehen:
ffmpeg -v 3 -vsync 0 -sameq -i movie.mpr -f image2 "images-%03d.jpeg"
Dies gibt mir jeden Rahmen des Films als JPEG nummerierte 1 bis zum Ende des Films. Ich filterte diese Dateien dann mit einer Skriptsprache und wusste, dass die Bildrate 30 fps betrug, um alle 60. Frame zu greifen.