how to create gif in Ubuntu / 如何在 Ubuntu 系统上录制 gif

ps. 本文实时更新于个人网站,请移步阅读。

Gif 是当下较为流行的一种交流方式,其文件比视频小,而且比 jpg 图片生动形象,所以不仅在微薄、QQ 等社交中尤为常见,而且适用于产品和功能的展示。同时,Gif 文件大小一般是普通 MP4 格式的数倍。

GIFs are an average of 5-10 times larger than an efficiently encoded MP4 video. This difference in size means that GIFs waste a large amount of bandwidth and also load at a slower rate leading to a bad user experience.

下文主要分享下如何在 Ubuntu 18 上录制 gif 动画以及处理 gif 文件,不必动用到 Windows 中像 Photoshop 这样的神器。

软件需求

  • ImageMagick > ImageMagick 是一款用于创建、编辑和合并位图图像的一款开源软件。
  • byzanz > byzanz 是通过输入命令方式来录制文件小、清晰的 GIF 动态效果图。

Gif 录制

本文使用 byzanz 来录制 Gif,其主要的参数选项有:

参数 单位 含义
-d, --duration SECS 动画的时间 (默认:10 秒)
--delay SECS 开始之前的延时 (默认:1 秒)
-c, --cursor 录制鼠标光标
-a, --audio 录音
-x, --x 像素 要录制矩形的 X 坐标
-y, --y 像素 要录制矩形的 Y 坐标
-w, --width 像素 录制矩形的宽度
-h, --height 像素 录制矩形的高度
-v, --verbose 详细
--display 要使用的 X 显示

例子

1
byzanz-record -d 10 --delay=5 -x 0 -y 0 -w 1440 -h 900 out.gif  

上面的命令是录制屏幕坐标 (0,0) 处宽度 1440 像素、高度 900 像素的矩形区域 (指定的坐标为矩形左上角),延时 5 秒开始录制,录制时间 10s,输出文件 out.gif。

Gif 合并

如果想将录制的多个 Gif 合并成一个文件,只需将要合并的文件存到同一文件夹当中,再执行如下命令即可,不需要安装其他软件,Ubuntu 比 Windows 强大之处。

1
convert -delay 120 -loop 0 *.gif output.gif

其中,"-delay 120" 表示 Gif 动画速度,"-loop 0" 表示无限循环。

参考文献

Record Screen as Animated GIF in Ubuntu with Byzanz

Gifs vs animated videos - which should you use