Batch convert * arquivos .avi usando ffmpeg

12

Estou tentando converter 20 arquivos .avi em um lote usando o ffmpeg.

Eu tenho o seguinte

@echo off.

for file in *.avi
do
   ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done

no meu arquivo .bat, mas não funciona. Como posso fazê-lo funcionar no sistema operacional Windows. Ah, e sim todos os arquivos estão na mesma pasta.

A mensagem de erro que recebo:

File was unexpected at this time

    
por Darius 05.09.2012 / 21:16

1 resposta

22

Seu arquivo de lote não está no formato correto para um script de morcego do Windows. Em vez disso, seu script parece ter sido destinado ao Linux. Você precisará alterar o script para usar um loop for suportado pelo Shell do Windows.

Abaixo está um exemplo de como realizar essa tarefa usando um windows for loop. Basta colocar a linha abaixo no seu arquivo de lote e mover o script para o mesmo diretório que os arquivos avi, então executá-lo.

for %%A IN (*.avi) DO ffmpeg -i "%%A" "%%A.mpg"
    
por 05.09.2012 / 21:53