【问题标题】:Fastest way to create animated gifs from mp4从 mp4 创建动画 gif 的最快方法
【发布时间】:2013-06-20 18:48:52
【问题描述】:

我必须将非常多(200,000+)的短 mp4(少于 10 秒)批量处理成动画 gif。我想我已经尝试了所有可能的命令行方式,但是制作高质量的 gif 仍然需要很长时间。目前我使用 ffmpeg 解压缩图像(jpg)帧,并使用图像魔法转换来组装它们。它可以生成高质量的 gif,但耗时太长,并且占用太多内存和 CPU,即使使用 -limit 内存和地图限制进行了调整。

我也尝试过直接使用 ffmpeg 创建动画 gif,但质量很糟糕。另外,我尝试过使用 gifsicle,它看起来确实很快,但它只需要 gif 作为输入,并且使用 ffmpeg 生成它们会产生质量很差的 gif。

有没有人有一些快速创建高质量 gif 的命令行方法?

【问题讨论】:

  • 我对其中一些工具有一点了解。是否可以通过管道将输出传递到各个阶段。这可以显着缩短处理时间(有时!)。此外,在项目管理研究中,您将了解到几乎总是需要在时间、资源和质量之间进行权衡。 ;-/ 。祝你好运。

标签: linux image-processing ffmpeg imagemagick animated-gif


【解决方案1】:

首先,您应该使用设置为 100 (jpeg:quality=100) 的 mplayerjpeg 选项创建一组具有最高质量的 jpg 图像。

mplayer -ao null -ss 0:00:00 -endpos 10 mts.flv -vo jpeg:outdir=jpeg_dir:quality=100

接下来,您需要使用convert 将生成的 jpg 转换为 gif,只需输入:

for i in ./jpeg_dir/*.jpg; do convert "$i" "${i%.jpg}.gif"; done

最后使用gifsicle创建动画gif:

gifsicle --delay=10 --loop ./jpeg_dir/*.gif > anim.gif

另外,您可以使用优化级别标志--optimize=03。减小文件大小可能会有所帮助:

gifsicle --delay=10 --optimize=03 --loop *.gif > anim.gif

此外,您可以使用当前调色板的颜色数量--colors num 进行操作 和--color-method method 来确定最合适的调色板。

对我来说最合适的方法是median-cut

median-cut is the median cut algorithm described by Heckbert

此外,我尝试使用描述的标志进行操作,并找到了最有用的选项来实现 生成的 gif 图像质量更好:

gifsicle --delay=3 --optimize=03 --color-method median-cut --loop *.gif > anim.gif

--delay=NUM准确对应动画速度。此参数取决于原始视频的 FPS。

【讨论】:

  • 正如我原来的评论中提到的,我已经尝试过这条路线。 ffmpeg 生成的单个 gif 质量非常低。这些最终会导致低质量的动画 gif。
  • 我已经更新了我的答案,添加了几个额外的步骤以获得比 ffmpeg 提供的更高质量的图像集:mplayer -ao null -ss 0:00:00 -endpos 10 视频。 flv -vo jpeg:outdir=jpeg_dir;对于 *.jpg 中的 i;转换 "$i" "${i%.jpg}.gif";完成
【解决方案2】:

它可以改善未压缩图像的传递,例如 .ppm,例如使用 mplayer,命令行将是:

mplayer -benchmark -noframedrop -nosound -vf format=rgb24 -vo pnm *.avi -osdlevel 0

这些将保存 jpg 压缩/解压缩周期。

它还有助于使用固态驱动器。

【讨论】:

    【解决方案3】:

    在将视频拆分为图像后,使用 imagemagick 包中的“动画”程序。像这样 动画 ./*.jpg。 然后只需将在 ImageMagick 程序中打开的合并图像保存为 gif。但它可能很大/然后需要优化和调整大小(最好使用 mplayer first scale=240:180)。

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多