Ich möchte jeden Frame einer Videodatei extrahieren und die Bilder ausgeben.
Ich habe versucht, die VLC-Befehle über das Terminal zu verwenden, aber es scheint, als würden Frames übersprungen, obwohl ich "Frames überspringen" deaktiviert habe. Ich denke mein MacBook Pro i7 ist zu langsam. Es scheint seltsam, dass ich eine Videodatei nicht abspielen kann, ohne Frames zu überspringen. Wie auch immer, gibt es Alternativen, die es mir ermöglichen würden, jeden Frame zu bekommen? Es scheint, dass vlc versucht, dies in Echtzeit zu tun, was ein Problem sein kann, wenn auf einer langsamen Maschine gearbeitet wird.
Hier ist der VLC-Befehl, den ich verwendet habe:
/Applications/VLC.app/Contents/MacOS/VLC /Users/name/Downloads/complete/video.mkv --video-filter=scene --scene-prefix=movie --scene-ratio=1 --scene-path=/folder --start-time=1035 --stop-time=1100 --no-skip-frames
Antworten:
Ich würde es mit FFmpeg machen, das Sie über Homebrew oder alternativ über ffmpegX erhalten können .
Installieren Sie im ersten Fall Homebrew und führen Sie es aus
brew install ffmpeg
. Dies erfordert Xcode und das Erstellen aus der Quelle, was für Ihre einfache Anforderung einen gewissen Aufwand bedeuten kann.Installieren Sie im zweiten Fall die
.app
und verwenden Sie dieffmpeg
mitgelieferte Version. Beachten Sie jedoch, dass diese Version aus dem Jahr 2006 stammt und daher möglicherweise nicht mit allen Eingabedateien funktioniert.Es hat für einen h.264 / MP4-Clip für mich funktioniert.
Verwenden Sie unabhängig davon FFmpeg, um jeden Frame einzeln auszugeben:
Sie können auch
png
anstelle vonjpg
für verlustfreie Ergebnisse verwenden und die Nummer ändern,%04d
wenn Sie mehr Ziffern benötigen, wenn die Datei länger ist.quelle