В настоящее время я пытаюсь воспроизвести гифку, подобную этой.
Но проблема, с которой я борюсь, заключается в том, что для того, чтобы создать gif с наложением текста, я бы выполнил следующую команду
ffmpeg -ss 30 -t 3 -i input.flv -i palette.png -filter_complex \
"fps=10,scale=320:-1:flags=lanczos,drawtext="fontfile=/path/to/font.ttf: \
text='Stack Overflow': fontcolor=black: x=160: y=-1"[x];[x][1:v]paletteuse" output.gif
Я знаю, что ffmpeg предлагаетсубтитрыно я не уверен, сможет ли это изменить местоположение текста, а также отображать разный текст каждую секунду.
Нужно ли мне сделать несколько изображений и склеить их вместе?
решение1
Я разобрался, у ffmpeg есть between
опция. Так что можно указать drawtext для длительностей следующим образом
ffmpeg -ss 30 -t 3 -i file.flv -filter_complex "fps=10,scale=720:-1:flags=lanczos,drawtext=enable='between(t,0,1)':fontfile=font3.ttf:text='word':fontsize=24:fontcolor=white:x=(w-tw)/2:y=(h/PHI)+th,drawtext=enable='between(t,1,2)':fontfile=font3.ttf:text='word what':fontsize=24:fontcolor=white:x=(w-tw)/2:y=(h/PHI)+th,split[x1][x2];[x1]palettegen[p];[x2][p]paletteuse" output.gif