Я должен создать видео с 5 различными изображениями по 3 секунды для каждого в следующей последовательности

  1. Исчезать
  2. Fade In
  3. Увеличить
  4. Слайд влево
  5. Слайд вправо

Я не знаю о команде скользящего фильтра, а также масштабирование не работает правильно.

Я использую следующую команду:

ffmpeg \
-loop 1 -t 3 -i img001.png \
-loop 1 -t 1 -i img002.png \
-loop 1 -t 3 -i img003.png \
-loop 1 -t 3 -i img004.png \
-loop 1 -t 3 -i img005.png \
-c:v libx264 \
-filter_complex \
"[0:v]fade=t=out:st=2.5:d=0.5[v0]; \
 [1:v]fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v1]; \
 [2:v]zoompan=z='zoom+0.001':d=10:s=1200x478[v2]; \
 [3:v]fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v3]; \
 [4:v]fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v4]; \
 [v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4

1 ответ1

2

Для слайдов вам нужно динамическое наложение, поэтому измените на

-loop 1 -t 3 -i img002.png \
-loop 1 -t 9 -i img003.png \
-loop 1 -t 9 -i img004.png \
-loop 1 -t 9 -i img005.png \

а также

 [2:v]zoompan=z='zoom+0.001':d=75:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s=1200x478[v2];
 [v2][3:v]overlay='max(W*(7-2*t)\,0)':(H-h)/2[v3]; \
 [v3][4:v]overlay='min(W*(2*t-14)\,0)':(H-h)/2[v4]; \
 [v0][v1][v4]concat=n=3:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4

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

Наложение для 4:v перемещать изображение слева за полсекунды, начиная с 6 секунд.

(Я убрал фейды для 4-го и 5-го изображений)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .