Конвертировать несколько GIF-файлов

Как можно конвертировать несколько анимированных GIF-файлов в видео?

Я использую эту команду для преобразования 1 анимированного GIF в видео:

ffmpeg -i aa0012.gif -crf 12 output.mp4

Это более сложная команда для управления размерами преобразованного GIF:

ffmpeg -i aa0012.gif -vf "scale=min(1920/iw\,1920/ih)*iw:min(1920/iw\,1920/ih)*ih,pad=1920:1920:(1920-(min(1920/iw\,1920/ih)*iw))/2:(1920-(min(1920/iw\,1920/ih)*ih))/2" -c:v libx264 output.mp4

Я пытался использовать:

-pattern_type glob -i '*.gif'

Который работает для большинства файлов изображений, но когда я пытаюсь, если с GIF, он возвращает ошибку "*.gif: Нет такого файла или каталога"

1 ответ

Решение

Анимированные GIF обрабатываются иначе, чем обычные "изображения". На самом деле они больше похожи на настоящие видео. Вот почему вы не можете использовать демультиплексор изображений (т.е. не можете использовать -pattern_type вариант) есть.

Что вам нужно сделать, это преобразовать каждый из них по отдельности в промежуточный файл с теми же свойствами, а затем объединить их.

ffmpeg -i gif1.gif -vf "…" -r 25 -c:v ffv1 output1.avi
ffmpeg -i gif2.gif -vf "…" -r 25 -c:v ffv1 output2.avi
…
ffmpeg -i "concat:output1.avi|output2.avi" -c:v libx264 output.mp4
Другие вопросы по тегам