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

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

Я знаю, как прокрутить изображение снизу вверх на видео с помощью этой команды:

ffmpeg -f lavfi -i color=s=1920x1080 -loop 1 -t 0.08 -i "input.jpg" -filter_complex "[1:v]scale=1920:-2,setpts=if(eq(N\,0)\,0\,1+1/0.02/TB),fps=25[fg]; [0:v][fg]overlay=y=-\'t*h*0.02\':eof_action=endall[v]" -map "[v]" output.mp4

Но я хочу, чтобы изображение и текст начинали появляться снизу, плавно прокручивались и исчезали сверху, как на картинке ниже. введите описание изображения здесь

решение1

Мы можем вырезать соответствующую область фонового изображения, наложить прокручиваемый текст на обрезанную область и наложить результат на ту же область фонового изображения.


Пример:

bk.jpg:
Фоновое изображение - подготовлено заранее:
введите описание изображения здесь

input.jpg:
Изображение переднего плана — подготовлено заранее (разрешение образца 270x257): введите описание изображения здесь


Пример команды:

ffmpeg -y -loop 1 -r 25 -i bk.jpg -loop 1 -r 25 -i input.jpg -filter_complex "[0:v]crop=270:257:360:55[c0];[c0][1:v]overlay=y='257-t*257*0.04':eof_action=endall[fg];[0:v][fg]overlay=x=360:y=55:eof_action=endall" -t 50 output.mp4


  • [0:v]crop=270:257:360:55[c0]- вырезает область 270x257 из фона.
  • [c0][1:v]overlay=y='257-t*257*0.04':eof_action=endall[fg]- накладывает прокручиваемый текст на обрезанную область.
  • [0:v][fg]overlay=x=360:y=55:eof_action=endall- накладывается [fg]поверх фонового изображения (в том же месте обрезанной области).

Результат в уменьшенном масштабе:
введите описание изображения здесь

Связанный контент