#gif #终端 #录制器 #命令行 #图像 #终端窗口 #生成

app t-rec

使用 Rust 编写的超快速终端录制工具,可生成用于网页的动画 gif 图像。

26 个版本

0.7.6 2023 年 1 月 21 日
0.7.5 2022 年 10 月 4 日
0.7.4 2022 年 7 月 4 日
0.7.3 2022 年 3 月 15 日
0.2.2 2020 年 11 月 26 日

命令行工具 中排名第 251

每月下载量 39

GPL-3.0-only

79KB
1.5K SLoC

t-rec:终端录制器

License: GPL v3 crates.io dependency status Build Status LOC

使用 Rust 编写的超快速终端录制工具,可生成用于网页的动画 gif 图像。

演示

demo

功能

  • 以每秒 4 帧的速度(每 250 毫秒一帧)截图您的终端
  • 生成高质量的小尺寸动画 gif 图像或 mp4 视频
  • 内置空闲帧检测和优化(用于超级流畅的演示)
  • 应用(可禁用)边框装饰效果,如阴影
  • 在 MacOS、Linux 和 NetBSD 上运行
  • 使用原生高效的 API
  • 无需任何云服务,完全离线运行
  • 无 80x24 大小以上的终端问题
  • 无字体或颜色问题
  • 无基于 curses 的程序问题
  • 无转义序列问题
  • 无录制和回放 - 只需一个简单的命令即可统治一切
  • 可以录制您想要的任何任意窗口(例如,浏览器、ide)
  • 使用 Rust 编写 🦀

在 MacOS 上安装

使用 homebrew

brew install t-rec

使用 macports

sudo port selfupdate
sudo port install t-rec

使用 cargo

注意 t-rec 依赖于 imagemagick

brew install imagemagick
cargo install -f t-rec 

注意 -f 仅确保安装最新版本

在 Linux 上安装

作为 .deb

sudo apt-get install imagemagick
wget https://github.com/sassman/t-rec-rs/releases/download/v0.5.0/t-rec_0.5.0_amd64.deb
sudo dpkg -i t-rec_0.5.0_amd64.deb

作为 snap

Get it from the Snap Store

TL;DR

sudo snap install t-rec --classic
/snap/bin/t-rec --version
t-rec 0.4.3

从 AUR 安装

t-rec 可以使用 AUR 软件包 安装,并使用 AUR 辅助工具。例如,

paru -S t-rec

如果您愿意,可以克隆 AUR 软件包 并使用 makepkg 编译它们。例如,

git clone https://aur.archlinux.org/t-rec.git
cd t-rec
makepkg -si

在 NetBSD 上安装

pkgin install t-rec

或者,如果您愿意从源代码构建,

cd /usr/pkgsrc/multimedia/t-rec
make install

使用 cargo

sudo apt-get install libx11-dev imagemagick
cargo install -f t-rec
在以下发行版上进行了测试
GNOME 上的 ubuntu 20.10
demo-ubuntu
i3wm 上的 ubuntu 20.10
demo-ubuntu-i3wm
cinnamon 上的 linux mint 20
demo-mint
在 Xfwm4 上的 ArcoLinux 5.4
demo-arco

使用方法

t-rec

或指定不同的程序来启动

t-rec /bin/sh

完整选项

t-rec 0.7.0
Sven Assmann <[email protected]>
Blazingly fast terminal recorder that generates animated gif images for the web written in rust.

USAGE:
    t-rec [OPTIONS] [shell or program to launch]

ARGS:
    <shell or program to launch>    If you want to start a different program than $SHELL you can
                                    pass it here. For example '/bin/sh'

OPTIONS:
    -b, --bg <bg>                     Background color when decors are used [default: transparent]
                                      [possible values: white, black, transparent]
    -d, --decor <decor>               Decorates the animation with certain, mostly border effects
                                      [default: none] [possible values: shadow, none]
    -e, --end-pause <s | ms | m>      to specify the pause time at the end of the animation, that
                                      time the gif will show the last frame
    -h, --help                        Print help information
    -l, --ls-win                      If you want to see a list of windows available for recording
                                      by their id, you can set env var 'WINDOWID' or `--win-id` to
                                      record this specific window only
    -m, --video                       Generates additionally to the gif a mp4 video of the recording
    -M, --video-only                  Generates only a mp4 video and not gif
    -n, --natural                     If you want a very natural typing experience and disable the
                                      idle detection and sampling optimization
    -q, --quiet                       Quiet mode, suppresses the banner: 'Press Ctrl+D to end
                                      recording'
    -s, --start-pause <s | ms | m>    to specify the pause time at the start of the animation, that
                                      time the gif will show the first frame
    -v, --verbose                     Enable verbose insights for the curious
    -V, --version                     Print version information
    -w, --win-id <win-id>             Window Id (see --ls-win) that should be captured, instead of
                                      the current terminal

禁用空闲检测和优化

如果您对空闲检测和优化不满意,可以使用-n--natural参数来禁用它。这样做的话,您将获得非常自然的打字和记录的时间线。在这种情况下,将不会进行任何优化。

启用阴影边框装饰

要启用阴影边框装饰,必须将-d shadow作为参数传递。如果您只想更改背景颜色,例如使用-b black来拥有黑色背景。

记录任意窗口

您不仅可以记录终端,还可以记录其他任何窗口。有三种方法可以实现:

  1. 使用| --win-id参数来命名应记录的窗口ID
t-rec --ls-win | grep -i calc
Calculator | 45007

t-rec -w 45007 
  1. 使用环境变量TERM_PROGRAM,如下所示:
  • 例如,让我们记录一个名为“Google Chrome”的窗口
  • 确保Chrome正在运行并在屏幕上可见
TERM_PROGRAM="google chrome" t-rec

Frame cache dir: "/var/folders/m8/084p1v0x4770rpwpkrgl5b6h0000gn/T/trec-74728.rUxBx3ohGiQ2"
Recording window: "Google Chrome 2"
Press Ctrl+D to end recording

这就是它的样子:demo-chrome

  1. 使用环境变量WINDOWID,如下所示:
  • 例如,让我们记录一个VSCode窗口
  • 找出窗口ID程序,并使其
  • 确保窗口在屏幕上可见
  • 设置变量并运行t-rec
t-rec --ls-win | grep -i code
Code | 27600

# set the WINDOWID variable and run t-rec
WINDOWID=27600 t-rec

Frame cache dir: "/var/folders/m8/084p1v0x4770rpwpkrgl5b6h0000gn/T/trec-77862.BMYiHNRWqv9Y"
Press Ctrl+D to end recording

这就是它的样子:demo-vscode

贡献

要为t-rec做出贡献,您可以查看带有good first issue标签的现有问题(点击访问)打开一个新问题并描述您的问题。此外,每个PR都受到欢迎。Linux和Windows的支持需要完成。

在网页和社交媒体上

许可证

依赖关系

~11–22MB
~290K SLoC