Наложение GIF на MP4 через определенный интервал времени (с сохранением прозрачности GIF)

Наложение GIF на MP4 через определенный интервал времени (с сохранением прозрачности GIF)

Я ищу способ реализовать наложение gif-изображения поверх mp4-изображения, имеющего следующие характеристики:

  • Сохранение прозрачности GIF на видео
  • Показ GIF-анимации только в течение определенного интервала времени (например, 0:02-0:06)
  • Размещение GIF-изображения в левом нижнем углу файла MP4

решение1

Вы можете использоватьx=between(t, 2, 6), 0, NAN) Оценка выраженияи y=(H-h).
См . overlayфильтрдокументация(прочитайте примеры — они достаточно близки).

ffmpeg -y -i in.mp4 -i in.gif -filter_complex "[0][1]overlay=x='if(between(t, 2, 6), 0, NAN):y=(H-h)':format=yuv444" -vcodec libx264 -pix_fmt yuv444p -crf 17 -acodec copy out.mp4

format=yuv444и -pix_fmt yuv444pиспользуются для улучшения качества продукции.

Я использовал прозрачный gif-файл из моего следующего постапочта, и наложение с синтетическим узором.

Пример выходного кадра:
введите описание изображения здесь


Построение синтетического шаблона (используется для тестирования):

ffmpeg -y -f lavfi -r 10 -i testsrc=size=640x480:rate=1:duration=300 -vf setpts=N/10/TB -vcodec libx264 -pix_fmt yuv444p -crf 17 in.mp4

GIF-изображение с прозрачностью:
введите описание изображения здесь

Связанный контент