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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top