Gibt es ein Befehlstool, um Frames aus Videos/Streams zu extrahieren und den Zeitstempel jedes Frames auszugeben?

Gibt es ein Befehlstool, um Frames aus Videos/Streams zu extrahieren und den Zeitstempel jedes Frames auszugeben?

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.

verwandte Informationen