2011-09-27 3 views
13

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

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

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

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

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

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

+0

http://superuser.com/ вопросы/778762/crossfade-between-2-videos-using-ffmpeg | http://superuser.com/questions/223678/how-to-convert-single-images-into-a-video-with-blending-transition –

ответ

6

Чтобы создать видео с эффектом постепенного изменения, просто разбить видео на части и создавать отдельные видео для каждого изображения. Например, если у вас есть 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, он будет работать нормально.

+1

Вместо того, чтобы создавать несколько копий ваших файлов изображений, вы можете указать ffmpeg на цикл вход. '-loop 1 -i input.jpg -t 2' скажет ffmpeg использовать неподвижное изображение в качестве источника цикла. Поскольку это будет играть навсегда, вам нужно установить время для выходного видео, используя опцию «-t 2» (в этом случае укажите 2 секунды). – stib

1

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

-1

Вы можете сделать слайд-шоу с кроссфейдами между изображениями, используя фильтр частоты кадров. В следующем примере 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 "= частота кадров кадров в секунду = 30: interp_start = 64: interp_end = 192: 100 = сцена" test.mp4

+1

Хотя это может теоретически ответить на вопрос, [было бы предпочтительнее] (// meta.stackoverflow.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. –

+0

Вы правы, я отредактировал свой ответ. – Michael

Смежные вопросы