Хотите добавить к своим видео привлекательные визуальные эффекты с помощью FFmpeg? Одним из впечатляющих эффектов, которых вы можете достичь, является эффект растущей коробки, когда коробка постепенно расширяется с течением времени. В этой статье блога мы рассмотрим несколько методов создания этого эффекта с помощью FFmpeg и предоставим вам примеры кода для начала.
Метод 1. Использование фильтра Drawbox и ключевых кадров
Фильтр drawbox в FFmpeg позволяет рисовать прямоугольник в кадре. Используя ключевые кадры, вы можете анимировать размер поля с течением времени. Вот пример команды:
ffmpeg -i input.mp4 -vf "drawbox=enable='between(t,0,5)':x=100:y=100:w='100+20*t':h='100+20*t':color=red" output.mp4
В этой команде мы задаем следующие параметры:
enable='between(t,0,5)'определяет диапазон времени, в течение которого будет применяться эффект (от 0 до 5 секунд).x=100иy=100определяют начальное положение блока.w='100+20*t'иh='100+20*t'определяют ширину и высоту поля, которые со временем увеличиваются.color=redзадает цвет поля (цвет можно выбрать любой).
Метод 2: использование фильтра Drawbox и фильтра настроек
Другой подход — объединить фильтр drawbox с фильтром setpts для управления временем анимации. Вот пример команды:
ffmpeg -i input.mp4 -vf "drawbox=x=100:y=100:w=100:h=100:t=max(0\,trunc(10*t-100)):color=blue,setpts=PTS+2/TB" output.mp4
В этой команде мы задаем следующие параметры:
x=100иy=100определяют начальное положение блока.w=100иh=100определяют начальный размер блока.t=max(0\,trunc(10*t-100))контролирует рост поля с течением времени, используя математическую формулу.color=blueзадает цвет поля (вы можете выбрать любой цвет).setpts=PTS+2/TBускоряет видео в 2 раза, чтобы компенсировать замедленную анимацию.
Метод 3: объединение drawbox с несколькими фреймами
Этот метод предполагает создание нескольких кадров с блоками разного размера и объединение их в одно видео. Вот пример команды:
ffmpeg -i input.mp4 -vf "drawbox=x=100:y=100:w=100:h=100:color=green,trim=0:5,setpts=PTS-STARTPTS[first]; \
[0:v][first]overlay[out]" -map "[out]" output.mp4
В этой команде мы задаем следующие параметры:
drawbox=x=100:y=100:w=100:h=100:color=greenсоздает статический блок фиксированного размера и цвета.trim=0:5обрезает входное видео до желаемой продолжительности (в данном случае от 0 до 5 секунд).setpts=PTS-STARTPTS[first]сбрасывает временные метки обрезанного видео.[0:v][first]overlay[out]накладывает входное видео с рамкой сверху.-map "[out]"выбирает полученное видео в качестве выходного.
Создание эффекта растущей коробки в FFmpeg позволяет добавлять в видео динамические визуальные элементы. В этой статье мы рассмотрели три различных метода достижения этого эффекта с помощью фильтра DrawBox и ключевых кадров, фильтра настроек и объединения нескольких кадров. Экспериментируя с этими методами и адаптируя их к своим конкретным потребностям, вы сможете создавать захватывающие видео, которые обязательно привлекут внимание зрителей.
Итак, попробуйте эти методы и дайте волю своему творчеству!