2013-07-04 2 views
2

Я пытаюсь преобразовать GIF-файлы в WebM (ffmpeg, libvpx) и получить какое-то странное поведение ffmpeg.ffmpeg GIF to WebM decoding issue

ffmpeg установлен на моем Mac с MacPorts.

Преобразование с:

ffmpeg -i srcFilename.gif -b:v 600K -qmin 0 -qmax 50 -crf 5 destFilename.webm 

если мой файл GIF имеет некоторый кадр (ы) с 1-2s продолжительностью где-то в середине анимации, как this, результат преобразования в порядке - он играет с «пауза» в середине.

Но если у меня есть GIF как this с «паузой» в последнем кадре, ffmpeg декодирует его без задержки.

Не знаю, почему, потратил некоторое время на чтение руководства ffmpeg, пытаясь использовать различные варианты преобразования без успеха.

Любые идеи? Заранее спасибо!

+0

Вы должны включить полный вывод консоли ffmpeg. – LordNeckbeard

+0

Выход для файла 1 http://pastebin.com/TKYfypHk с задержкой в ​​середине. Выход для файла 2 http://pastebin.com/XHxKm6dQ с задержкой в ​​конце –

+0

То же самое случилось со мной. это также происходит, если я конвертирую в mp4 –

ответ

1

Я написал электронное письмо автору GIF-декодера, и он ответил мне, что знает об этой проблеме. Он расположен где-то глубоко внутри ffmpeg, и он понятия не имеет, как исправить это прямо сейчас.

Итак, я использую «грязный взлом» в своем проекте - просто добавляя копию последнего кадра с нулевой задержкой в ​​файл GIF перед кодированием.

+0

Если вы не возражаете, я спрашиваю, не могли бы вы подробнее рассказать о своем хаке и как его реализовать? – Ramin

+0

Реализация @Ramin зависит от языка программирования и библиотеки, которую вы используете для работы с gif. Я бы рекомендовал вам просто добавить прозрачную рамку в конец gif. Он должен работать. –