O problema
Suas entradas variam em taxas de quadros (consulte as saídas de console ffmpeg
) e acredito que o muxer MP4 não suporta taxas de quadros variáveis.
Algumas soluções
Você pode:
-
use um formato de contêiner diferente, como Matroska (.mkv), para os arquivos processados e a saída final ou
-
adicione o filtro
fps
aos seus gráficos de filtro para fornecer a cada arquivo processado uma taxa de quadros comum:-filter_complex "crop=720:720:280:0, scale=640:640, transpose=1, fps=30"
Outro lixo
-
-threads 3
e-strict -2
não fazem nada quando copiam em fluxo (-c copy
). -
libx264, o codificador H.264, calcula automaticamente o número ideal de threads por padrão, então forçar um valor específico pode ser sub-ótimo.
-
Se você escolher enviar para MP4, considere adicionar
-movflags +faststart
ao seu comando de saída final. É útil ao visualizar via download progressivo; caso contrário, o arquivo inteiro deve ser baixado completamente antes que a reprodução possa começar. -
Em um comentário, você mencionou a filtragem de áudio e vídeo separadamente. Um exemplo simples pode ajudar:
ffmpeg -i input0 -i input1 -filter_complex \ "[0:v]hflip,negate[bg]; \ [1:v]vflip,hue=s=0,scale=120:-1[fg]; \ [bg][fg]overlay[v]; \ [0:a]aphaser,flanger[a]" \ -map "[v]" -map "[a]" -movflags +faststart output.mp4