Есть ли способ конвертировать анимированный gif в видеоформат (например, .avi
) в Linux?Анимированный gif для avi on linux
Я уже пробовал
ffmpeg -i thegif.gif thevideo.avi
, но все, что я получаю первое изображение видео.
Есть ли способ конвертировать анимированный gif в видеоформат (например, .avi
) в Linux?Анимированный gif для avi on linux
Я уже пробовал
ffmpeg -i thegif.gif thevideo.avi
, но все, что я получаю первое изображение видео.
я могу предложить сочетание ImageMagick и FFmpeg
сделать это, чтобы извлечь каждый кадр как PNG/JPEG
$magick> convert 'images.gif[0]' image.png
ли это для преобразования изображений в последовательности фильма
ffmpeg -f image2 -i image%d.jpg video.mpg
Дополнительная помощь по командам
http://www.imagemagick.org/script/command-line-processing.php
http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs
Если ваш gif имеет трансверсию, вы должны добавить -coalesce вот так: convert -coalesce download.gif some% 05d.png –
-1, потому что ваша первая команда не работает. Но команда NordicMainframe работает. – erik
Это теряет информацию о частоте кадров с входного gif. текущий ffmpeg теперь обрабатывает анимированный вход gif напрямую. –
вход GIF FFmpeg не работает слишком хорошо. Это, как правило, легче распаковать GIF кадры с обращенным (от ImageMagick) и обрабатывать их с помощью FFmpeg:
convert some.gif some%05d.png
ffmpeg -i some%05d.png some.avi
rm some*.png
Спасибо, что я искал вашу первую командную строку: 'convert some.gif some% 05d.png' – Dorian
Если некоторые кадры разбиты, потому что они показывают только разницу с базовым фреймом, используйте опцию' -coalesce' для 'convert'. – Hnatt
при использовании '-coalesce' вам может понадобиться удалить первый кадр, потому что он имеет тот же формат, что и другие (' PseudoClass' вместо 'DirectClass'). Он может существовать методом его преобразования ... – xiawi
Если вы хотите, чтобы иметь определенную частоту кадров в качестве входных данных, так как в результате видео поститься или замедлить
ffmpeg -r 'xx' -i some%05d.png some.avi
где xx - входная частота кадров.
Если вы хотите, чтобы иметь цикл в качестве выходного сигнала
ffmpeg -loop 1 -t x -i some%05d.png some.avi
где х это время видео должно работать в считанные секунды.
Если вы не хотите, временные файлы, вы можете попробовать MEncoder:
mencoder myfile.gif -mf fps=25 -o myfile.avi -ovc lavc -lavcopts vcodec=mpeg4
FFmpeg -i foo.gif foo.mkv работает с текущей FFmpeg, и даже работает прямо с переменной частотой кадров анимированные гифы , С выходом mkv вы получаете переменную частоту кадров mkv. С выходом mp4 он подхватывает fps настолько высоко, насколько это необходимо, а затем дублирует кадры, если необходимо, чтобы отображать вещи, когда это необходимо. например gif с 25 кадрами в секунду и около 10 кадров в секунду сделал 50fps mp4, с 2x dups и 5x dup кадрами в зависимости от какой части. Сохранение дубликатов фреймов не занимает много места, IDK, если они даже в потоке h.264 или только в контейнере mp4. –