Изменить команду для обработки всех файлов в папке

Изменить команду для обработки всех файлов в папке

В настоящее время я использую следующую команду для создания изображений в формате GIF из видео.

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'

Я хотел бы изменить эту команду так, чтобы ее можно было использовать для каждого файла .mp4 в папке, а не только так, test.mp4как показано выше.

решение1

используйте цикл for скрипта оболочки в вашем случае

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;

либо запустите его напрямую, либо сохраните его в файле, скажем xyz.txt, и запуститеsource xyz.txt

Связанный контент