Подтвердить что ты не робот

FFmpeg затухает между кадрами

Я хочу создать слайд-шоу из моих изображений с постепенным исчезновением и постепенным переходом между ними, и я использую FFmpeg fade filter.

Если я использую команду:

ffmpeg -i input.mp4 "fade=in:5:8" output.mp4

Чтобы создать выходное видео с эффектом затухания, оно дает выходное видео с первыми 5 кадрами черного цвета, а изображения отображаются с эффектом затухания, но я хочу, чтобы эффект fade: in: out между изменением кадра.

Как я могу это сделать?

Скажите решение для сервера Centos, потому что я использую FFmpeg только на этом сервере

4b9b3361

Ответ 1

Чтобы создать видео с эффектом затухания, просто разбивайте видео на части и создавайте отдельные видео для каждого изображения. Например, если у вас есть 5 изображений, то сначала создайте 50-60 копий каждого изображения и получите видео для этого:

  $command= "ffmpeg -r 20 -i images/%d.jpg -y -s 320x240 -aspect 4:3 slideshow/frame.mp4";
  exec($command." 2>&1", $output);

Это позволит вам создать 5 разных видеороликов. Затем вам понадобится 10-12 разных копий этих пяти изображений и снова создайте отдельные видео с эффектами затухания.

ffmpeg -i input.mp4 "fade=in:5:8" output.mp4

После этого у вас появятся видеоролики, такие как: видео для изображения 1 и его эффект затухания, затем для изображения 2 и его эффекта затухания и т.д. Теперь соедините эти видео в соответствующем порядке, чтобы получить все видео.

Для объединения требуемых видеороликов:

$command = "cat pass.mpg slideshow/frame.mpg > final.mpg";

Это означает, что вы присоединяетесь к видео с помощью cat, а затем вам нужно преобразовать их в mpg, присоедините их и снова переконвертируйте их в mp4 или avi, чтобы их правильно просмотреть. Также конвертированные видео на mpg не будут правильными, поэтому не беспокойтесь. Когда вы конвертируете их в mp4, он будет работать нормально.

Ответ 2

Вы можете использовать gifblender, чтобы создать смешанные, промежуточные кадры из ваших изображений, а затем преобразовать их в фильм с помощью ffmpeg.

Ответ 3

Вы можете сделать слайд-шоу с кроссфейдами между изображениями, используя фильтр частоты кадров. В следующем примере 0.25 - частота кадров, используемая для чтения на снимках, в этом случае 4 секунды для каждого изображения. Параметр fps устанавливает выходную частоту кадров. Параметры change_start и interp_end могут использоваться для изменения эффекта затухания: interp_start = 128: interp_end = 128 означает, что вообще не исчезает. interp_start = 0: interp_end = 255 означает непрерывное замирание. Когда одно изображение исчезло, и следующее изображение полностью исчезло, третье изображение сразу начнет исчезать. Нет паузы для показа второго снимка. interp_start = 64: interp_end = 191 означает, что половина времени является паузой для показа изображений, а другая половина исчезает. К сожалению, он не будет полностью исчезать от 0 до 100%, но только с 25% до 75%. Это не совсем то, что вы можете хотеть, но лучше, чем вообще не исчезать.

ffmpeg -framerate 0.25 -i IMG_% 3d.jpg -vf "framerate = fps = 30: interp_start = 64: interp_end = 192: scene = 100" test.mp4