zoukankan      html  css  js  c++  java
  • Linux动态gif图的录制

    Linux动态gif图的录制

    前几天写了两篇博客vim的配置Vim的自动代码补全插件YCM的安装和配置,反响还不错。为了演示效果,想着录制几张动态的gif效果图。抽空录制了几张,但是在Linux下录制的过程并不是一帆风顺。最开始想用大家推荐的byzanz,但是我在ubuntu13.04使用unity桌面(非gnome),byzanz依赖于gnome-panel, 所以只能在命令行下通过参数操作使用,很不方便。后来自己通过使用recordmydesktop录制成ogv视频再使用convert转换制作成gif。特将其注意事项记录下。不知道其他博友们再Linux下制作动态gif图片有啥推荐。

    byzanz的安装与使用

    Ubuntu下安装

     sudo add-apt-repository ppa:fossfreedom/byzanz

    sudo apt-get update

    sudo apt-get install byzanz

    你可以通过如下命令来完成录制过程:

    byzanz-record -d 40 -x 0 -y 0 -w 400 -h 320 byzanz-demo.gif

    其中:

    • -d 40 为录制的时长为 40 秒
    • -x 0 录制区域的横坐标
    • -y 0 录制区域的纵坐标,记住:屏幕右上角为原点(0,0)
    • -w 400 录制区域的宽度
    • -h 320 录制区域的高度

    byzanz-demo.gif 保存的文件名

    详细参数可通过byzanz-record --help查看。

    我使用unity桌面的ubuntu下不能使用byzanz的图形界面。即使是通过sudo apt-get install gnome-session-fallback并注销选择gnome桌面来安装byzanz也不能启用byzanz的图形界面。图形界面使用byzanz制作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高

    参考资料

    RECORD YOUR LINUX DESKTOP IN AN ANIMATED GIF WITH BYZANZ

    Ubuntu使用byzanz截取动态效果图

    使用 Byzanz 录制 Gif 动画或 Ogv 视频

    ubuntu动态截图,制作GIF动画

    Convert Ogv -video to Gif -animation

    提取视频制作为GIF动画

  • 相关阅读:
    [LeetCode]N-Queens
    [LeetCode]Anagrams
    [LeetCode]Permutations II
    [LeetCode]Permutations
    [STL]heap和priority_queue
    [STL]deque和stack、queue
    10、小易记单词--2017网易春招
    29、剑指offer--最小的K个数
    28、剑指offer--数组中出现次数超过一半的数字
    9、涂棋盘--2017网易春招
  • 原文地址:https://www.cnblogs.com/zhongcq/p/3653154.html
Copyright © 2011-2022 走看看