5

Я хочу объединить несколько изображений в одну полосу изображений, используя FFMPEG.

Я пытался найти эту вещь в Google, но не смог найти ничего полезного. Все ссылки приводят меня к местам, где несколько изображений объединяются, чтобы дать видео вывод.

Предполагая, что все файлы имеют одинаковую ширину и высоту, как я могу объединить их, чтобы получить одну полосу изображений. Кто-нибудь может мне помочь?

2 ответа2

13

Пример использования видеофильтра scale и tile в ffmpeg:

$ ls *.png
001.png  002.png  003.png  004.png  005.png

$ ffmpeg -i %03d.png -filter_complex scale=120:-1,tile=5x1 output.png

Если у вас есть имена файлов в ненумерованном последовательном порядке, вы можете использовать тип шаблона glob:

$ ffmpeg -pattern_type glob -i "*.png" -filter_complex tile=5x1 output.png

Пример вывода, где каждое отдельное входное изображение имеет уникальный сплошной цвет (всего 248 байт!):плитка

Вы также можете добавить поле (пространство между внешними границами) и отступ (пространство между кадрами):

$ ffmpeg -i %03d.png -filter_complex scale=120:-1,tile=5x1:margin=10:padding=4 output.png

плитка с полями и подкладкой

Вертикальная ориентация также возможна: tile=1x5 для этого примера:

3

Если у вас есть сделать это с ffmpeg то я не знаю. Если вы хотите выполнить работу и хотите использовать другую программу, подходящую для этой задачи, convert - это часть ImageMagick.

convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \
-combine imagecopy.png

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .