Befehl ändern, um alle Dateien in einem Ordner zu verarbeiten

Befehl ändern, um alle Dateien in einem Ordner zu verarbeiten

Ich verwende derzeit den folgenden Befehl, um Bild-GIFs aus einem Video zu erstellen

ffmpeg -i '/home/video/test.mp4' -vf fps=1/180 '/home/video/test.mp4%03d.jpg' && ffmpeg -framerate 1 -i '/home/video/test.mp4%03d.jpg' -vf scale=160x110 -r 30 '/home/video/test.mp4.gif'

Ich möchte diesen Befehl so ändern, dass er für jede MP4-Datei in einem Ordner verwendet werden kann und nicht nur test.mp4wie oben gezeigt.

Antwort1

verwenden Sie in Ihrem Fall die For-Schleife eines Shell-Skripts

for i in *.mp4 ;
do
   ffmpeg -i "$i" -vf fps=1/180 "/home/video/$i%03d.jpg" && ffmpeg -framerate 1 -i "/home/video/$i%03d.jpg" -vf scale=160x110 -r 30 "/home/video/$i.gif";
done;

Führen Sie es entweder direkt aus oder speichern Sie es in einer Datei, beispielsweise xyz.txt, und führen Sie es aussource xyz.txt

verwandte Informationen