Вопрос: ffmpeg - как создать 5-секундный эффект масштабирования видео с 1 изображением


Я знаю, как сделать 5-секундное видео «масштабирование» с 1 изображением с помощью зоомана.

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='min(zoom+0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

Как мне сделать «масштабирование» видео?

пробовал ниже, но никто из них не работает:

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='min(zoom-0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='max(1.5,zoom-0.0015)':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

ffmpeg -loop 1 -i image_1.jpg -vf "zoompan=z='max(zoom-0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

4
2017-07-17 01:12


Источник




Ответы:


Сначала вы должны установить коэффициент масштабирования, так как по умолчанию он установлен в 1.0. Я смог сделать так вот так:

ffmpeg -loop 1 -i image_1.jpg -vf "zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

Который начнет увеличиваться на 1,5 и уменьшит 0.0015 на каждой итерации. Обратите внимание, что использовалось значение 1.001 (любое значение, превышающее 1,0), чтобы оно не уменьшало значение 1,0 и не возвращалось к 1.5.

Другим решением могло бы быть просто обратное выведение вашего исходного зоомана, но после быстрого поиска в него, реверсивное видео, похоже, приложит много усилий в ffmpeg.


9
2018-01-29 03:51



Как мы можем поддерживать это для нескольких конкатенированных изображений? Я думал, что d = 125 будет работать, но есть некоторая проблема, поскольку изображение имеет тенденцию оставаться там дольше 5 секунд - Killer


Вычислите z из индекса кадра (вкл.) И продолжительности.

on/duration вы получите процент от 0-1, который вырастет каждый кадр.

1.5-on/duration*0.5 Дает вам номер от 1.5-1.

Все вместе:

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='1.5-on/duration*0.5':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

1
2018-01-15 20:42