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

3

Анимированные 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

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