Você pode usar o demuxer de concatenação.
Primeiro, prepare um arquivo de texto contendo a lista de todas as imagens na ordem desejada. No Windows, em um prompt de comando, você pode executar este comando, na pasta:
dir *.jpg /b /on > list.txt
Agora, prefixar cada linha com file '
e sufixo com '
, para que cada linha se pareça com
file 'ADAM SANDLER.jpg'
você pode querer duplicar a última linha devido a um bug no filtro fps.
Agora, se todas as suas imagens forem do mesmo tamanho, execute
ffmpeg -f concat -r 1/2 -i list.txt -crf 20 -vf fps=8,format=yuv420p video.mp4
Se não, e assumindo 1920x1080
como tamanho de vídeo de saída, execute
ffmpeg -f concat -r 1/2 -i list.txt -vf "scale=iw*min(1920/iw\,1080/ih):ih*min(1920/iw\,1080/ih), pad=1920:1080:(1920-iw*min(1920/iw\,1080/ih))/2:(1080-ih*min(1920/iw\,1080/ih))/2,fps=8,format=yuv420p" -crf 20 video.mp4
O -r 1/2
é o framerate de entrada e determina quanto tempo cada imagem permanece, neste caso, 2 segundos. Eu configurei a taxa de quadros de saída em 8
porque alguns jogadores podem falhar em reproduzir a saída. O CRF controla a qualidade. Valores menores produzem um resultado melhor, mas arquivos maiores.
Para o Q editado :
Use
ffmpeg -framerate 25/15 -i img%03d.jpg -c:v libx264 -vf "scale=iw*min(1080/iw\,1080/ih):ih*min(1080/iw\,1080/ih), pad=1080:1080:(1080-iw*min(1080/iw\,1080/ih))/2:(1080-ih*min(1080/iw\,1080/ih))/2,fps=30000/1001,format=yuv420p" out.mp4