Я хочу применить кроссфейды к последним кадрам x с видео с первыми x кадрами, чтобы получить бесшовный цикл.ffmpeg - сделать бесшовный цикл с кроссфейдом
Как я могу это сделать?
Я хочу применить кроссфейды к последним кадрам x с видео с первыми x кадрами, чтобы получить бесшовный цикл.ffmpeg - сделать бесшовный цикл с кроссфейдом
Как я могу это сделать?
Предположим, что ваше видео длится 30 секунд, а ваше затухание составляет 1 секунду. Ваша команда будет
ffmpeg -i video.mp4 -filter_complex
"[0]split[body][pre];
[pre]trim=duration=1,format=yuva420p,fade=d=1:alpha=1,setpts=PTS+(28/TB)[jt];
[body]trim=1,setpts=PTS-STARTPTS[main];
[main][jt]overlay" output.mp4
Видео разбито на два идентичных потока. Первый обрезается до первой секунды, добавлен альфа-канал, а затем исчезает. Последний фильтр в первом потоке задерживает его на 28 секунд, так как конечный результат будет обрезаться с первой секунды исходного клипа и перекрываться с последней секундой. Второй поток обрезается, чтобы начать с t=1
, и обработанный первый поток накладывается на 2-й. Поскольку альфа-канал затухает в первом потоке, он пересекает его.