Linux动态gif图的录制

recordmydesktop再convert成gif

recordmydesktop是一款著名的录屏工具。它有gtk版本。使用很方便

  1. 安装 
    sudo apt-get install imagemagick mplayer gtk-recordmydesktop
  2. 使用gtk-recordmydesktop录制并保存文件为 out.ogv
  3. 执行如下命令將 out.ogv 分解成单帧图片 
    mplayer -ao null out.ogv -vo jpeg:outdir=.
  4. 执行如下命令將单帧图片压缩成 gif 图片 
    convert *.jpg out.gif
  5. 执行如下命令將 gif 图片进行压缩 
    convert out.gif -fuzz 10% -layers Optimize optimized.gif

第5步的压缩效果很好,我做的一个能将一个30多M的压缩成900多k

  • 注意事项:

通过上述第4步产生的out.gif如果太大,在第5步中进行压缩优化时会出现

    convert.im6: UnableToAcquireString `Cannot allocate memory' @ fatal/string.c/AcquireString/135.

错误。

小一点的不会出现这个错误。

我的解决方法比较笨。就是将第3步产生的单张jpg图片分成几个部分分别压缩成gif图片,这样每个gif图片都不会太大,再经过第5步压缩优化后合并成一个gif图片。例如我在录制这里的时长1分多钟的vim的配置效果图时,分解成单张的jpg图片有600多张,直接将他们压缩成gif图片大小有80多M,在进行第5步压缩优化时就会出现`Cannot allocate memory'错误,我是将这600多张图分成2部分(前300张和后面300多张)分别压缩成2个gif图片,这样再压缩优化时就不会分配内存出错。再将这两张合成一张。

在将ogv视频合成gif图片时我也尝试过使用QGifer,但转换的质量效果没有使用convert的好,且压缩比率也没convert高


转自:http://www.cnblogs.com/zhongcq/p/3653154.html?utm_source=tuicool

你可能感兴趣的:(linux,gif,制作)