как установить задержку кадра при использовании ffmpeg для преобразования изображений в gif

Я хочу преобразовать последовательность изображений в gif, и я хочу, чтобы каждый кадр длился определенное время, но я не смог найти пример того, как это сделать.

Я знаю, что эта основная команда работает

ffmpeg -y -i %0d_Frame.jpg output.gif

но как я могу оставить каждый кадр на 1 секунду?


person yang    schedule 22.11.2018    source источник


Ответы (2)


ответ прост: ffmpeg -framerate X -y -i %0d_Frame.jpg output.gif

порядок команд имеет значение, я ставил -framerate после -y -i, и это не работает.

person yang    schedule 22.11.2018
comment
Что делать, если кадры различаются по продолжительности? - person Константин Ван; 22.01.2019

Ключ, управляющий задержкой кадра при создании gif с помощью ffmpeg, прост: setpts

В моем коде я конвертирую файл mp4 в gif.

ffmpeg -y -i "input.mp4" -filter_complex "[0:v]fps=5,split[a][b];[b]palettegen[p];[a][p]paletteuse,setpts=0.5*PTS[v]" -map '[v]' "output.mp4"

С помощью fps мы выбрали, сколько кадров и какие из них мы используем для gif.

С помощью setpts мы выбрали задержку между кадрами. 0.5 уменьшает задержку между кадрами вдвое по сравнению с исходным файлом (input.mp4)

person Toni Cambronero Garcia    schedule 23.06.2021