Konvertieren Sie mithilfe von FFmpeg mehrere MOV-Dateien in PNG-Dateien

391
SeaFan1

Sehr neu in Linux, entschuldige mich im Voraus dafür!

Ich möchte ffmpeg verwenden, um .png-Dateien mit einer Geschwindigkeit von 3 Bildern pro Sekunde aus jedem .mov zu extrahieren und eine neue Datei für jeden Satz extrahierter .png-Dateien zu erstellen. Ich habe etwa 100 MOV-Dateien. Ich möchte alle Dateien stapelweise extrahieren und muss sicherstellen, dass die extrahierten PNG-Dateien in einzelne Ordner gehen. Alle meine .mov-Dateien befinden sich in einem Ordner, haben jedoch unterschiedliche Namen, daher brauche ich ein Deckenskript, das das Skript auf alle Dateien in diesem Ordner anwendet.

Bisher ist es mir gelungen, dies für eine Datei mit dem folgenden Skript zu tun, wobei rolo mein Dateiname ist: ffmpeg -i rolo2.MOV -r 3 rolo2_% 04d.png

Ich habe versucht, dieses Skript für einen ganzen Ordner von Dateien zum Laufen zu bringen und neue Ordner mit zu erstellen

für eine Datei in * .mov; do ffmpeg -i "$ " -r 3 "$ .png"; fertig

und

für eine Datei in * .mov; do prefix = "$ "; ffmpeg -i "$ file" -r 3 "$ prefix / $ prefix.png"; fertig

Diese Skripts funktionieren jedoch nicht. Ich bekomme keine Fehlermeldung. Ich bekomme nur einen Pfeil (>) und das Terminal reagiert nicht mehr.

Diese Frage wurde ähnlich wie eine andere markiert, bei der der folgende Code als Lösung angegeben wurde:

für f in * .mkv; ffmpeg -i "$ f" -c: v kopiere -c: a aac -b: a 256 k "ausgabe / $ mp4"; fertig

Könnte jemand bitte erklären, was dieses Skript bedeutet, damit ich es an mein eigenes Problem anpassen kann?

Zum Beispiel möchte ich 3 Frames pro Sekunde extrahieren. Bedeutet das, dass ich -r 3 anstelle von 256k im obigen Skript einsetze?

Danke im Voraus!

0
Willkommen bei Super User! Was gibt Ihnen insbesondere in der Batchdatei Schwierigkeiten? bertieb vor 5 Jahren 0
Hallo! Vielen Dank! Ich habe Probleme beim Erstellen eines Skripts, mit dem ich 1. Batch und nicht einzeln ausführen kann und 2. einen einzelnen Ordner mit den extrahierten PNG-Dateien aus jeder MOV-Datei erstellen. Also habe ich zum Beispiel dieses Skript für die Datei ausprobiert: in * .mov; do ffmpeg -i "$ " -r 3 "$ .png"; done Was ich online gefunden und versucht habe zu bearbeiten, aber da ich nicht ganz weiß, was jedes Bit Code ist kann ich es nicht zum Laufen bringen? SeaFan1 vor 5 Jahren 0
Sie haben uns nicht wirklich gesagt, was das spezifische Problem ist - erhalten Sie eine Fehlermeldung? Bitte seien Sie so genau wie möglich und bearbeiten Sie Ihre Frage direkt. slhck vor 5 Jahren 0
Siehe die verknüpfte Frage und die entsprechende Antwort, insbesondere den Teil, in dem die Dateien in einem anderen Verzeichnis abgelegt werden. Ihr vorhandenes Beispiel ist syntaktisch falsch. `für eine Datei in * .mov; do prefix = "$ "; ffmpeg -i "$ file" -r 3 "$ prefix / $ prefix.png"; done` - das würde es tun. slhck vor 5 Jahren 0
Danke, ich habe es ausprobiert und die verlinkte Frage gelesen, aber ich kann es immer noch nicht zum Laufen bringen. Gibt es einen Ort, der erklärt, wie man dieses Skript für mehrere Dateien durchläuft? Und auch, wie neue Ordner für die Dateien erstellt werden? Wie ich schon sagte, habe ich versucht, jeden Teil des Codes zu googeln, aber ich sehe nicht, wie ein neuer Ordner erstellt wird. SeaFan1 vor 5 Jahren 0

0 Antworten auf die Frage