0%

Linux终端录制为gif

在很多技术官网里面主页可以看到有一个介绍自己产品的gif动图,就是使用终端录制

环境:Ubuntu18.04 LTS

下载软件:ttyrec imagemagick python-opster

jianglei@pro:~$ sudo apt-get install ttyrec imagemagick python-opster

录制

开始录制终端操作,你需要的仅仅是键入 ttyprec ,然后回车。这个命令将会在后台运行一个实时的记录工具。我们可以通过键入exit或者ctrl+d来停止。ttyrec 默认会在主目录下创建一个ttyrecord的文件。

jianglei@pro:~/Desktop/gif$ ls -l
总用量 8
-rw-rw-r-- 1 jianglei jianglei 1589 12月 16 16:54 tty2gif.py
-rw-rw-r-- 1 jianglei jianglei 1221 12月 16 17:59 ttyrecord

回放这个文件非常简单。你只需要打开终端并且使用 ttyplay 命令打开 ttyrecord 文件即可。(在这个例子里,我们使用 ttyrecord 作为文件名,当然,你也可以改成你用的文件名)。

jianglei@pro:~/Desktop/gif$ ttyplay ttyrecord

然后就可以开始播放这个文件。这个视频记录了所有的操作,包括你的删除,修改。这看起来像一个拥有自我意识的终端,但是这个命令执行的过程并不是只是为了给系统看,而是为了更好的展现给人。

注意一点,播放这个记录是完全可控的,你可以通过点击 + 或者 - 进行加速减速,或者 0和 1 暂停和恢复播放。

导出成gif

为了方便,我们通常会将视频记录转换为 gif 格式,并且,这个非常容易做到。以下是方法:

将之前下载的 tty2gif.py 这个文件拷贝到 ttyprecord 文件(或者你命名的那个视频文件)相同的目录,然后在这个目录下打开终端,输入命令:

jianglei@pro:~/Desktop/gif$ python tty2gif.py typing ttyrecord

并且你将会看到在 ttyrecord 目录下多了一些 gif 文件。

jianglei@pro:~/Desktop/gif$ ls
step000.gif step006.gif step012.gif step018.gif step024.gif step030.gif step036.gif step042.gif step048.gif
step001.gif step007.gif step013.gif step019.gif step025.gif step031.gif step037.gif step043.gif tty2gif.py
step002.gif step008.gif step014.gif step020.gif step026.gif step032.gif step038.gif step044.gif ttyrecord
step003.gif step009.gif step015.gif step021.gif step027.gif step033.gif step039.gif step045.gif
step004.gif step010.gif step016.gif step022.gif step028.gif step034.gif step040.gif step046.gif
step005.gif step011.gif step017.gif step023.gif step029.gif step035.gif step041.gif step047.gif

接下来的一步就是整合所有的 gif 文件,将他打包成一个 gif 文件。我们通过使用 imagemagick 工具。输入下列命令:

jianglei@pro:~/Desktop/gif$ convert -delay 25 -loop 0 *.gif example.gif

你可以使用任意的文件名,我用的是 example.gif。 并且,你可以改变这个延时和循环时间。