Você deve conseguir fazer isso com o ffmpeg na CLI. Há algumas informações em esta página que colei em abaixo
Primeiro, renomeie suas fotos para seguir uma sequência numérica. Por exemplo, img1.jpg, img2.jpg, img3.jpg, ... Então você pode executar:
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
Observe que "% d" é substituído pelo número da imagem.
‘img%03d.jpg’ means the sequence ‘img001.jpg’, ‘img002.jpg’, etc...
Se você tiver um grande número de fotos para renomear, você pode usar o seguinte comando para aliviar a carga. O comando, usando a sintaxe do shell bourne, simbolicamente liga todos os arquivos no diretório atual que correspondem a * jpg ao diretório '/ tmp' na sequência de 'img001.jpg', 'img002.jpg' e assim por diante.
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
Se você quiser sequenciá-los pelo primeiro modificado mais antigo, substitua $ (ls -r -t * jpg) no lugar de * jpg.
Em seguida, execute:
ffmpeg -f image2 -i /tmp/img%03d.jpg /tmp/a.mpg
A mesma lógica é usada para qualquer formato de imagem lido pelo ffmpeg.