Очень плохо знаком с Linux, поэтому заранее извиняюсь за это!

Я хочу использовать ffmpeg для извлечения файлов .png из каждого .mov со скоростью 3 кадра в секунду и создания нового файла для каждого набора извлеченных файлов .png. У меня есть около 100 файлов .mov, я хочу извлечь все файлы в пакетном режиме и должен убедиться, что извлеченные файлы .png помещаются в отдельные папки. Все мои файлы .mov находятся в одной папке, но имеют разные имена, поэтому мне нужен общий скрипт, который будет применять скрипт ко всем файлам в этой папке.

До сих пор мне удалось сделать это для одного файла, используя следующий скрипт, где rolo - это мое имя файла: ffmpeg -i rolo2.MOV -r 3 rolo2_% 04d.png

Я попытался заставить этот скрипт работать для всей папки файлов и создавать новые папки, используя

для файла в * .mov; do ffmpeg -i "$ {file% .mov}» -r 3 "$ {file% .mov} .png"; сделано

а также

для файла в * .mov; do prefix = "$ {file% .mov}"; ffmpeg -i "$ file» -r 3 "$ prefix/$ prefix.png"; сделано

Но эти сценарии не работают, я не получаю сообщение об ошибке, я просто получаю стрелку (>), и терминал перестает отвечать.

Этот вопрос был помечен аналогично другому, где в качестве решения указан следующий код:

для f в * .mkv; сделать ffmpeg -i "$ f" -c:v копировать -c: aac -b: 256k "output/$ {f% mkv} mp4"; сделано

Может ли кто-нибудь дать подробное описание того, что означает этот скрипт, чтобы я мог адаптировать его для своей проблемы?

Например, я хотел бы извлечь 3 кадра в секунду. Значит ли это, что в приведенном выше сценарии я поместил -r 3 вместо 256k?

Заранее спасибо!

0