Конвертировать несколько 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