本文推荐几款录制动态图的开源软件。

LICEcap

LICEcap 适用于 Windows 和现在的 OSX,可以捕获你桌面上一个区域并直接保存到 .gif。

示例:

licecap_rules

LICEcap 旨在轻量化和高性能,安装程序只有 230kb,生成的文件体积也很小。

主要特点如下:

  • 直接保存成 .gif 或 .lcf
  • 录制时可移动屏幕捕捉框
  • 录制时可用 shift+space 暂停
  • 可调节最大录像帧率,以节省 CPU 使用率
  • 可选,记录鼠标按键
  • 显示录制已用时间

ttygif

ttygif 用于将 Linux 终端录像 ttyrec 文件转换为 gif 文件。

官方示例

ttygif

官方说明中有不同 Linux 版本的详细安装过程,这里记录我在 Centos7 下的安装过程。

# 安装依赖
$ sudo yum install ImageMagick gcc
# 安装 ttyrec
$ git clone https://github.com/mattwilmott/ttyrec.git
$ cd ttyrec
$ make
# 生成 3 个可执行文件,拷贝到 PATH 路径
$ cp ttyrec ttyplay ttytime ~/bin
$ cd ..
# 安装 ttygif
$ git clone https://github.com/icholy/ttygif.git
$ cd ttygif
$ make
$ cp ttygif ~/bin

在安装 ttygif 过程中报错

错误:只允许在 C99 模式下使用 for 循环初始化声明...

        for (int i=0; i<argc; i++)
         ^

出现这个错误是因为系统的 c 编译器不是 c99 标准,对 ttygif.c 作如下修改之后重新 make 即可:

# 修改 ttygif.c 第 362 行

int i;
        for (i=0; i<argc; i++)

使用过程中发现, ttyrec 可以正常录制, ttyplay 可以正常播放录制的文件,ttytime 也可以正常显示录制时间,但是 ttygif 无法正常将 ttyrec 录制的文件转换为 gif:

$ ttygif myrecording
failed to execute: xwd -id 31457286 -out /tmp/ttygif.Ln1Nqw/0.xwd

安装 xwd 即可解决问题:

$ sudo yum install xwd
$ ttygif myrecording

ScreenToGif

顾名思义,这款软件就是用来录制 gif 动态图的。和以上软件相比,ScreenToGif 功能更加强大,它可以摄像头录制、自定义热键、设置 gif 质量、逐帧编辑 gif 文件、添加文字水印等,更多功能参见官方主页。

官方示例:

Face

虽然 ScreenToGif 功能强大,但也存在很多不足之处,最突出的就是录制的 gif 文件体积相比其它软件大了很多,因此请根据需求选择使用。