Estou tentando converter mais de 20 arquivos .avi em um lote usando 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 ele 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:
O arquivo estava inesperado no momento
windows
conversion
ffmpeg
batch-file
Darius
fonte
fonte
cmd
) e depois executar o arquivo em lotes usando seu caminho completo a partir daí. O que você realmente quer fazer com os vídeos? Que tipo de vídeos são esses? Você só precisa movê-los para um contêiner MPG? Ou você precisa redimensioná-los? Ou você precisa especificamente domsmpeg4v2
codec?ffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4
onde o valor do CRF define a qualidade (menos é melhor, mais é pior, valores sensatos de 19 a 24). Consulte também: Converta vídeos antigos em tamanhos menores e Quais parâmetros devo observar para reduzir o tamanho de um arquivo .MOV?Respostas:
Seu arquivo em lotes não está no formato correto para um script básico 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 loop for windows. Basta colocar a linha abaixo no seu arquivo em lotes e mover o script para o mesmo diretório que os arquivos avi e, em seguida, executá-lo.
fonte
[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument