ffmpeg -i myvid.mp4 -r 25 -t 100 image-%d.jpeg
Ist der Befehl, den ich zum Extrahieren von Frames verwende und der genau so funktioniert, wie ich es erwartet habe. Ich möchte mir aber auch die Zeitstempel der Frames ansehen. Mit welcher Präzision auch immer. 100 Millisekunden sind gut genug für mich. Kann ffmpeg das?
Bereitstellung zusätzlicher Details,
Wenn ich den obigen Befehl ausführe, erhalte ich ungefähr 100 JPEGs. Ich denke, es gibt eine 1 zu 1 (oder viele zu 1) Entsprechung zwischen diesen JPEGs und den Bildern des Videos. Ich möchte den Zeitstempel des Frames kennen, der als JPEG-Bild 'i' ausgegeben wurde.
Zusätzlich habe ich ffprobe ausprobiert, aber ich finde, dass es sogar die Videodauer ungenau meldet :(
capture
Zeit.ffmpeg
Konsolenausgabe Ihres Befehls an.Antworten:
Sie können den Bildschreibvorgang "simulieren", indem Sie mit dem
fps
Filter filtern und dannffprobe
die Zeitstempel der generierten Frames anzeigen. Dies bedeutet, dass das 50. Bild (wie Ihr 50. Bild) bei 25 fps eine PTS von 2,00 Sekunden hat.Du machst es so:
Wird ausgegeben:
Dies sind die Zeitstempel für jedes Ausgabebild. Sie können die Liste der Frames und die Zeitstempel tatsächlich kombinieren:
Erstellt eine Datei mit:
Beachten Sie, dass dies zu überflüssigen Zeilen führen kann, wenn zu viele Frames oder zu viele Zeilen mit Informationen ausgegeben werden. Es scheint dort ein wenig ungenau.
quelle
-vsync drop
, aber das geschieht nach dem Filtern von IIRC.