Você pode usar o seguinte comando
for f in ./*.flv; do
ffmpeg -i "$f" -vf scale=320:-1 "${f%.*}.gif"
done
Isso itera todos os arquivos que terminam com .flv
no diretório atual, processando-os e alterando a extensão para .gif
.
Observe que os nomes dos arquivos não devem conter espaços para isso funcionar.
Alternativamente, em um sistema GNU, você pode usar
find . -maxdepth 1 -name "*.flv" -print0 |
sed 's/\.flv\x00/\x00/g' |
xargs -r0 -I FILENAME ffmpeg -i FILENAME.flv -vf scale=320:-1 FILENAME.gif
Isso localizará todos os arquivos terminando com .flv
(incluindo os ocultos) no diretório atual e imprimirá essa lista na saída padrão como uma string
-delimited. Essa string é então filtrada através de sed
xargs
para remover as extensões e depois passada para ffmpeg -i FILENAME.flv -vf scale=320:-1 FILENAME.gif
que executa o comando FILENAME
, substituindo -maxdepth 1
pelo nome real do arquivo da lista.
Se você quiser converter todos os arquivos no diretório atual e em todos os subdiretórios (e seus subdiretórios e assim por diante), basta remover a parte %code% do comando.