Наложение с постепенным исчезновением не отображается - PullRequest
0 голосов
/ 03 мая 2018

Я могу добавить оверлейное изображение в центре видео от времени начала A до времени окончания B.

Читая здесь и там, я попытался добавить эффект fade-in/fade-out к наложенному изображению, но в результате изображение вообще не отображается в моем окончательном видео.

Это мой "эксперимент":

-i output.mp4 -i 1.png -filter_complex "[1:v]format=rgba,scale=300:300,fade=in:st=0:d=1:alpha=1,fade=out:st=5:d=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h) / 2:enable='between(t,0,5)'" -pix_fmt yuv420p -c:a copy output_0.mp4

Если в понимании:

fade=in:st=0:d=1

Означает, что изображение должно появиться в 0 '' с эффектом постепенного появления 1 '' длительность

fade=out:st=5:d=1

Означает, что изображение должно исчезнуть через 5 дюймов с эффектом затухания продолжительностью 1 дюйм

Не правда ли?

Вторая часть заключается в том, чтобы добавить эффект масштабирования изображения, когда оно постепенно исчезает. Могу ли я объединить эффект увеличения и масштабирования вместе?

Я думаю, что что-то вроде этого должно увеличивать на 3 секунды мое наложение изображения, могу ли я добавить его с другим ",", отделяя фильтр на наложенное изображение?

zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=3

Спасибо

редактирование:

Продолжительность видео 10 секунд. Я хочу, чтобы изображение отображалось с постепенным исчезновением и увеличением от 0 до 5 и еще от 5 до 10 с тем же эффектом

Шаг 1: добавление затухания

-i 0_vid.mp4 -loop 1 -t 1 -i 1.png -filter_complex "[1:v]format=rgba,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_0.mp4

С этим решением постепенное увеличение работает, но постепенное исчезновение даже не принимается во внимание.

Если я добавлю увеличение:

-i 0_vid.mp4 -loop 1 -t 1 -i 1.png -filter_complex "[1:v]format=rgba,zoompan=z='if(lte(zoom,1.0),1.5,max(1.3875,zoom-0.0015))':d=625,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_0.mp4

Таким образом, изображение растягивается на всю ширину экрана, а высота обрезается. Но во время 5-секундной анимации изображение не изменяется как обычно.

Я стремлюсь к тому, чтобы изображение было увеличено в видео, но не было обрезано / растянуто. Я хотел бы, чтобы изображение выглядело меньше в начале и больше в конце. Возможно ли это?

А также, что я делаю не так с анимацией затухания

1 Ответ

0 голосов
/ 03 мая 2018

Используйте

ffmpeg -i output.mp4 -i 1.png -filter_complex "[1:v]format=rgba,scale=300:300,zoompan=z='if(lte(zoom,1.0),1.5,max(1.3875,zoom-0.0015))':d=125:s=300x300,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h) / 2:enable='between(t,0,5)'" -pix_fmt yuv420p -c:a copy output_0.mp4
...