asciinema 搭配 asciicast2gif 实现高效的命令行终端录制能力

news/2024/7/23 10:38:46 标签: Tools, gif, asciinema

官网地址 https://asciinema.org/

对于程序员来说,有些时候需要分享下代码操作:

常规的录屏软件分享痛点:

  1. 录屏软件录制的视频存储大小很大,并且操作麻烦,录制效果还容易不清晰
  2. 通常需要额外的启动一个比较大的应用,系统资源占用大

asciinema 软件专注于命令行终端的录制效果,简直是终端录屏神器,这次碰到感觉有种相见恨晚的感觉。

先放几张官网上的录制效果图:

asciinema.org/a/Flvuj1unnyWjlda3QhGQBEDG5.svg" />

具体如何的操作asciinema工具 ,就不赘述,可以参考GitHub地址说明。asciinema/asciinema: Terminal session recorder 📹 熟悉各个命令行参数的用法。

痛点

虽然 asciinema 很棒,但是cast的格式,在编写Markdown的时候,并不是很通用。虽然官网提供了一些播放方案,但是终究不是很友好。

无奈…只能选择Gif这种,更加通用的形式。

解决方案

好在,网上已经有大神,提供了将cast这种文件格式,转换成gif的命令行工具。

asciinema/asciicast2gif: Generate GIF animations from asciicasts (asciinema recordings)

感兴趣的同学可以下载体验一番。

由于asciicast2gif 的安装依赖了不少的npm仓库,个人感觉配置起来不是特别的顺利,因此采用了易用性更高的Docker安装方式。

编写脚本实现自动化

希望能够在每次录制完终端命令后,自动的转换为gif文件。编写一个脚本,在录制之后,自动的利用asciicast2gif 工具转换成 gif 格式。

#!/bin/bash

rec_date_time=$(date +%F_%H-%M-%S)
asciinema rec ${rec_date_time}.cast
# the next line only needed when you install asciicast2gif by docker
alias asciicast2gif='docker run --rm -v $PWD:/data asciinema/asciicast2gif -S 1'
asciicast2gif -S 1 ${rec_date_time}.cast ${rec_date_time}.gif

如果再傻瓜一点,就在 ‘~/.bashrc’ 文件中,增加一个别名rec来执行上面的这个bash
脚本。比如:

alias rec='sh /opt/script/auto_rec_asciinema_to_gif.sh'

最终实现效果

只要在终端输入 rec 命令,就可以实现录屏和自动的gif图片转换能力。

gif#pic_center" alt="在这里插入图片描述" />

如果觉得对你有帮助,点个赞再走呗~


http://www.niftyadmin.cn/n/1183321.html

相关文章

Chapter14:备忘录模式

备忘录(Memento)模式: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 把保存的细节给封装在了Memento中了,任何时候要更改保存…

完美解决“windows 无法访问指定设备、路径或文件。你可能没有合适的权限访问这个项目”...

近日在客户机上执行运行方式时发现好些会出现下面这个问题: 经过一番苦苦寻找,找到了解决方案,很完美。比网上一些修改注册表和权限的文单有用多了。 方法如下: 检查 “Secondary Logon”登录服务是否自动运行。 运行services.msc…

如何在Thymeleaf3标签中使用嵌套标签

假定在一个Thymeleaf3的模板中&#xff0c;想使用如下的操作。 在一个使用了Thymeleaf3语法的标签下&#xff0c;嵌套使用另外一个Thymeleaf3 语法标签。 <h1 th:text"${header.title}" >title<small th:text"${header.subtitle}" >Subtitle&…

Wave接口开发注意事项

今天为了验证AUDIO驱动的稳定性&#xff0c;特开发一个AUDIO的测试程序。该程序打开一个文件之后&#xff0c;用很多线程同时向AUDIO驱动发数据包。从而了解了WAVE接口函数的使用方法。在WM6的public\common\oak\samples目录下有一个waveplay的例子程序&#xff0c;Wave函数的基…

[原创]虚拟主机中ASP.Net + MySql 的解决方案

[原创]虚拟主机中ASP.Net MySql 的解决方案 运行环境&#xff1a; 服务器&#xff1a;虚拟主机 数据库&#xff1a;Mysql 5.0 asp.net版本:2.0 开发环境&#xff1a; 服务器&#xff1a;本地 IIS 7.0 数据库&#xff1a;Mysql 5.1 数据库驱动&#xff1a;Mysql Connector/.Net…

Jenkins的便捷式安装

本文通过Docker安装&#xff0c;简单便携&#xff0c;且可以重复利用。 从官网jenkins - Docker Hub拉取镜像文件。会自动的拉取最新的Jenkins镜像文件。 docker pull jenkins运行Jenkins的启动镜像 docker run -d --name jenkins -p 8081:8080 -p 50000:50000 -p 50000:500…

CMD 常用命令

CMD常用命令 7&#xff1a;计算机运行命令全集 winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构 wupdmgr--------windows更新程序 winver---------检 查Windows版本 wmimgmt.msc----打开windows管理体系结构 wupdmgr--------windows更新程序 wscript-…

Junit5中的参数化测试(Parameterized Tests)指南

作为新一代的测试框架&#xff0c;Junit5中有很多大家喜欢的测试方案&#xff0c;个人认为最突出的就是能够进行参数化的测试&#xff08;Parameterized Tests&#xff09;。 简介 通常&#xff0c;会遇到这样的情况&#xff0c;同一个测试案例&#xff0c;改变的只是测试时候…