Sou totalmente novato em FFmpeg e em coisas de programação, então a pergunta pode ser muito estúpida... Tenho um vídeo e quero cortá-lo em pequenos pedaços e renderizar cada um, então estou tentando usar um loop FOR :
FOR /l %x IN (0,40,1000) DO ffmpeg -i sample.avi -filter:v "crop=20:20:x:x" outx.avi; done
O que obtive foi: [NULL @ 0000000002624220] Não foi possível encontrar um formato de saída adequado para 'outx.avi;' outx.avi;: Argumento inválido
Alguém pode ajudar com isso?
Responder1
Aparentemente, você está usando arquivos em lote do Windows. Aqui, FOR
os loops não têm um final ; done
, como os loops Bash têm.
No Windows:
FOR ... IN ... DO ...
Em Bash:
for ... in ...; do ...; done
Portanto, certifique-se de usar a sintaxe adequada para o seu shell.
Observe que a simples especificação out.avi
fará com que o ffmpeg escolha MPEG-4 e MP3 como codecs de vídeo e áudio, respectivamente, e sua qualidade pode ser muito ruim. Idealmente, especifique os codificadores de vídeo e áudio, por exemplo:
ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4
Leia oGuia de codificação H.264para mais informações.