С 5 изображениями я должен создать видео 60 секунд в ffmpeg, каждое изображение должно отображаться в течение 15 секунд. через 15 секунд первое изображение должно исчезнуть, и второе изображение должно исчезнуть, после этого второе изображение должно исчезнуть, третье изображение должно исчезнуть в ... и т. д. Пожалуйста, объясните мне, как я могу добиться этого с помощью команд ffmpeg.
27
Ответы:
Окунитесь / исчезните к черному
Прокрутите вниз для метода кроссфейдера.
Пример, где каждое изображение отображается в течение 5 секунд, и каждое изображение имеет затухание, которое длится 1 секунду. Каждый ввод изображения имеет одинаковую ширину, высоту и соотношение сторон образца. Если они различаются по размеру, см. Пример № 3 ниже.
Выход MP4
С аудио
То же, что и выше, но со звуком:
Для входных изображений с различными или произвольными размерами
Как и в первом примере, но с входными изображениями, которые различаются по ширине и высоте. Они будут вставлены в коробку 1280x720:
См. Примеры в разделе « Изменение размера видео», чтобы вписать их в проигрыватель статического размера, если вы хотите обрезать (заполнить экран) вместо пэда (почтовый ящик / ящик для столбов) или если вы хотите предотвратить масштабирование.
GIF выход
Добавляет фильтры из Как я могу конвертировать видео в GIF с использованием ffmpeg, с приемлемым качеством?
Используйте параметр
-loop
вывода, чтобы контролировать количество циклов GIF. По умолчанию используется бесконечный цикл, если эта опция не используется. Значение-1
не является циклом.Используемые параметры и фильтры:
-t
установить длительность в секундах каждого входа.-loop 1
Зацикливает изображение, иначе оно будет иметь длительность 1 кадр.-framerate
установить частоту кадров входного изображения (по умолчанию, когда необъявлено 25). Полезно для создания GIF.масштабируйте с помощью пэда, чтобы подогнать входные изображения к определенному, одинаковому размеру (используется в примере № 3).
исчезать постепенно исчезать.
d
продолжительность затухания.st
когда это начинается.concat для объединения (или «объединения») каждого изображения.
формат для вывода схемы подвыборки цветности, совместимой с проигрывателями, не основанными на FFmpeg, при выводе MP4 и кодировании с помощью libx264 (кодировщик по умолчанию для вывода MP4, если он поддерживается вашей сборкой).
разделить, чтобы сделать копии фильтра вывода. Необходимые фильтры палитры *, чтобы сделать все в одной команде.
palettegen и paletteuse для создания красивого GIF.
Crossfade
Пример, где каждое изображение отображается в течение 5 секунд, а каждое изображение имеет затухание, которое длится 1 секунду Каждый ввод изображения имеет одинаковую ширину, высоту и соотношение сторон образца. Если они различаются по размеру, адаптируйте пример № 3 выше.
Выход MP4
С аудио
Кроссфейд между двумя видео с аудио
Выберите 5-секундный сегмент от каждого входа и добавьте 1-секундный кроссфейд:
GIF выход
Используйте параметр
-loop
вывода, чтобы контролировать количество циклов GIF. По умолчанию используется бесконечный цикл, если эта опция не используется. Значение-1
не является циклом.источник
-t
за,-loop 1 -t 1 -i 001.png
определяет продолжительность отдельных кадров, и что числа, следующиеT/
заfilter_complex
блоком, определяют длительность перехода? И учитывается ли длительность кадра в этом примере, включая длительность перехода или нет?-preset ultrafast
.melt
.concat=n=9
части команды9
получено из 5 изображений в примере + 4 перехода между изображениями. Если вы обрабатываете другое количество изображений, вам необходимо соответствующим образом настроить его.Я написал общий сценарий bash, который берет путь к папке с изображениями и выводит видео с перекрестным затуханием с помощью ffmpeg:
https://gist.github.com/anguyen8/d0630b6aef6c1cd79b9a1341e88a573e
Сценарий, по сути, просматривает изображения в папке и выводит команду, аналогичную ответу @LordNeckbeard выше, и выполняет команду. Этот сценарий помогает, когда в папке много изображений и вы не хотите вручную вводить удручающе длинную команду.
источник