Da ffmpeg keine Befehlszeilenargumente unterstützt, um den aktuellen Frame-Zeitstempel als Ausgabedateinamen auszugeben, suche ich verzweifelt nach einem Befehlszeilentool, das das Extrahieren von Bildern aus Videos/Videostreams und die Ausgabe des aktuellen Frame-Zeitstempels als Dateinamen unterstützt.
Gibt es für diese Anforderung ein Tool?
Antwort1
Sie können dies in einem mehrstufigen Prozess tun, indem Sie ffmpeg und ein Batch-Umbenennungstool wieErweiterter Umbenenner.
Angenommen, Sie möchten jedes 40. Bild extrahieren
#1Extrahieren Sie Frames und eine Liste mit Präsentationszeitstempeln.
ffmpeg -i in.mp4 -vsync 0 -vf select=not(mod(n\,40)) frames-%d.jpg
-vf select=not(mod(n\,40)) -f mkvtimestamp_v2 pts.txt
Neben den Bildern erhalten Sie auch eine Datei pts.txt, die wie folgt aussieht:
# timecode format v2
0
1600
3200
4800
6400
8000
9600
11200
12800
14400
16000
Dies sind die Zeitstempel für die extrahierten Frames, ausgedrückt in Millisekunden
#2Verwenden Sie dann eine Batch-Umbenennungs-App, die das Umbenennen mithilfe einer Liste unterstützt, um die Dateinamen der Frames zu ändern. Oder ein Shell-Skript.