ffmpeg - сделать бесшовную петлю с кроссфейдом

Я хочу применить кроссфейд к последним x кадрам видео с первыми x кадрами, чтобы получить бесшовную петлю.

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

1 ответ

Решение

Допустим, ваше видео имеет длину 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 секунд, так как конечный выход обрезает первую секунду исходного клипа и перекрывается с последней секундой. 2-й поток обрезается, чтобы начать с t=1 и обработанный первый поток накладывается на 2-й. Поскольку альфа-канал исчезает в первом потоке, он пересекается с.

Другие вопросы по тегам