Почему я не могу получить правильную частоту кадров при использовании avconv для преобразования последовательности изображений в gif?
Мне нужно конвертировать серию изображений в гифки.
Я нашел три широких способа сделать это. Один с участием ImageMagick, один с gifsicle, а другой с avconv.
Я не могу использовать Imagemagick, потому что он намного медленнее, чем любой другой метод. Я не могу использовать gifsicle, потому что он не может работать с файлами "png". Я мог бы преобразовать PNG в gif-файлы с помощью команды ImageMagick 'mogrify', а затем собрать их в один gif-файл с gifsicle, но это могло бы привести к замедлению работы с помощью mogrify, что в моем случае нарушает условия сделки.
Я узнал, как делать то, что мне нужно, с avconv, но по какой-то причине результирующий gif имеет двойную частоту кадров.
Это команда, которую я использую:
avconv -i frame%15d.png -s qvga -vf format=rgb8,format=rgb24 -pix_fmt rgb24 -r 10 output.gif
И вывод с этим:
avconv version 9.13-6:9.13-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers built on May 9 2014 13:34:03 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) Input #0, image2, from 'frame%15d.png': Duration: 00:00:12.04, start: 0.000000, bitrate: N/A Stream #0.0: Video: png, rgb24, 320x240, 25 fps, 25 tbr, 25 tbn File 'output.gif' already exists. Overwrite ? [y/N] y Output #0, gif, to 'output.gif': Metadata: encoder : Lavf54.20.3 Stream #0.0: Video: rawvideo, rgb24, 320x240, q=2-31, 200 kb/s, 90k tbn, 10 tbc Stream mapping: Stream #0:0 -> #0:0 (png -> rawvideo) Press ctrl-c to stop encoding frame= 121 fps= 0 q=0.0 Lsize= 10406kB time=12.10 bitrate=7044.8kbits/s video:27225kB audio:0kB global headers:0kB muxing overhead -61.779245%
Есть 301 изображение, рассчитанное на 30 секунд, поэтому я устанавливаю частоту кадров 10. Хотя, похоже, это игнорируется.
Если я также форсирую частоту кадров ввода с помощью «-r 10», результирующий gif длится 60 секунд при половине моей желаемой частоты кадров.
Команда с FPS форсируется как на входе, так и на выходе:
avconv -r 10 -i frame%15d.png -s qvga -vf format=rgb8,format=rgb24 -pix_fmt rgb24 -r 10 output2.gif
И вывод:
avconv version 9.13-6:9.13-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers built on May 9 2014 13:34:03 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) Input #0, image2, from 'frame%15d.png': Duration: 00:00:12.04, start: 0.000000, bitrate: N/A Stream #0.0: Video: png, rgb24, 320x240, 25 fps, 25 tbr, 25 tbn Output #0, gif, to 'output2.gif': Metadata: encoder : Lavf54.20.3 Stream #0.0: Video: rawvideo, rgb24, 320x240, q=2-31, 200 kb/s, 90k tbn, 10 tbc Stream mapping: Stream #0:0 -> #0:0 (png -> rawvideo) Press ctrl-c to stop encoding frame= 301 fps=270 q=0.0 Lsize= 25884kB time=30.10 bitrate=7044.5kbits/s video:67725kB audio:0kB global headers:0kB muxing overhead -61.780963%
Я понятия не имею, что я делаю неправильно, и был бы признателен за чей-то вклад.
В качестве альтернативы, если кто-то знает быстрый способ конвертировать серию PNG-файлов в отдельные изображения без использования ImageMagick, я могу затем объединить их с помощью gifsicle.
0 ответов на вопрос
Похожие вопросы
-
11
Как конвертировать анимированный GIF в видео формат YouTube?
-
3
Есть ли приложение для записи экрана, которое сохраняет как .gif?
-
8
Как остановить анимированные гифки в Google Chrome?
-
-
7
Приостановка анимации .gif в Google Chrome
-
2
Есть ли замена для AniDisable для firefox 3.5?
-
3
Есть ли еще причина предпочитать GIF над PNG при создании изображений для веб-страниц?
-
2
Медленная GIF-анимация в Firefox
-
1
Office Outlook, включить анимацию GIF
-
6
Есть ли способ играть в GIF с Windows Photo Viewer?
-
1
Добавление анимированного GIF в слайд PowerPoint