Nehmen Sie mit dem Befehlszeilenprogramm in Windows ein Einzelbild aus einem Video

6

Ich möchte ein Bild eines Videos zu einem bestimmten Zeitpunkt (z. B. 25%, 50% und 75%) aufnehmen und irgendwo speichern.

Ich muss dies über die Befehlszeile tun, damit ich es automatisieren kann. Dies muss auch in Windows erfolgen.

Weiß jemand, wie man das macht?

brott
quelle
In welchem ​​Dateiformat sind die Videos codiert?
Iglvzx
Oh, Entschuldigung. Sie sind hauptsächlich in XviD (in AVI) und h264 (in MKV), sie sind Videos aus verschiedenen TV-Serien. Vielen Dank!
Brott
Mögliches Duplikat von
Machen
2
@ techie007 KEIN Duplikat ... Hier geht es im Wesentlichen darum, ein Einzelbild aus einer Videodatei zu erstellen und als Bild zu speichern. Es geht nicht darum, einen Screenshot des gesamten Bildschirms zu erstellen.
BloodPhilia

Antworten:

4

Möglicherweise möchten Sie ffmpeg für Windows mit dem folgenden Befehl verwenden:

ffmpeg -i <INPUT FILE> -ss 10 -f image2 -r 25 <OUTPUT FILE>
  • -i <INPUT FILE>Gibt die Eingabedatei an. ZB movie.mp4.
  • -ss <TIME>Gibt die Zeitposition in Sekunden an. "hh: mm: ss [.xxx]" wird ebenfalls unterstützt.
  • -f image2 Format erzwingen / festlegen.
  • -r 25 Festlegen der Bildrate (in Hz. Kann entweder ein Bruch oder eine Zahl sein, Standard = 25).
  • <OUTPUT FILE>Ausgabedatei festlegen. ZB image1.jpg.

Wenn Ihr Quellvideo eine feste Bildrate hat, können Sie ein bestimmtes Bild mit der folgenden Formel aufnehmen:

<FRAME NUMBER> / <FRAME RATE> = <NUMBER OF SECONDS>

Wenn Sie also Bild 250 mit einer Bildrate von 25 Hz aufnehmen möchten, setzen Sie den Wert -ssauf 10.

BloodPhilia
quelle
1
Sie können wahrscheinlich wmi verwenden, um die Eigenschaft time length aus der Videodatei zu ziehen, die Ausgabe zu unterteilen und diese dann als Eingabe für -ss zu verwenden.
Mechaflash
1
Vielen Dank! Obwohl es nicht ganz funktioniert hat (ich habe es bekommen und es hat nie aufgehört: pastebin.com/raw.php?i=2nA04Uua ), hat es mich hier gezeigt: stackoverflow.com/questions/3827611/… und das hat funktioniert. Vielen Dank! @ Mechaflash Was ist wmi? Es klingt sehr nützlich! Vielen Dank!
Brott
1
@brott wmi gehört nicht zur Windows-Umgebung, die sich mit Windows-Objekten und ihren Eigenschaften befasst. In Ihrem Fall ist das Objekt die Videodatei und die Eigenschaft die Zeitdauer des Videos. Informationen zu WMI: msdn.microsoft.com/en-us/library/windows/desktop/… . Informationen zur Verwendung von WMI in Windows-Batch-File-
Skripten
Probieren Sie den folgenden Befehl in Ihrer Videodatei aus: wmic datafile where name='C:\\Path\\To\\Video.xvid' > WMIoutput.txtBeachten Sie die doppelten und einfachen Anführungszeichen. Überprüfen Sie die WMIoutput.txt-Datei, die erstellt wurde, und prüfen Sie, ob eine bestimmte Zeit oder Dauer des Videos angezeigt wird. Ich habe dies mit einer MP3-Datei getestet und es gab kein solches Feld für mich zurück.
Mechaflash
Diese Information gab es mir leider nicht. Wie auch immer, die Folgen sind immer gleich lang, in meinem Fall ist das also kein Problem. Aber wenn jemand weiß, wie es geht, wäre es in der Tat nützlich. Vielen Dank!
Brott