Я не могу думать о каком-либо инструменте, который может сделать это как простую одноразовую команду; вы можете, однако, конвертировать ваши изображения по отдельности в видео (различной длины), а затем объединять эти видео вместе - я бы использовал ffmpeg для этого.
ffmpeg -f image2 -loop 1 -i input1.png -t 6 -crf 22 -preset veryfast 01.ts
ffmpeg -f image2 -loop 1 -i input2.png -t 9 -crf 22 -preset veryfast 02.ts
ffmpeg -f image2 -loop 1 -i input3.png -t 4 -crf 22 -preset veryfast 03.ts
-t
устанавливает продолжительность вывода в секундах. Вы также можете использовать доли секунд, так что -t 2.2
даст вам 2,2 секунды. Если вы хотите указать длину в терминах видеокадров, вы можете использовать -vframes
of frames:v
; по умолчанию эта команда выдаст вам 25 кадров в секунду. Затем объедините файлы MPEG TS вместе в один MP4:
ffmpeg -i "concat:01.ts|02.ts|03.ts" -c copy output.mp4
Конечно, можно было бы написать это (я знаю, как я это сделаю в bash, но я не знаю скриптов в Windows).