- macosrec
从命令行截取 macOS 窗口的截图或视频(还包括光学字符识别)。
注:此 gif 是用 macosrec 捕获的
$ macosrec
用法:record-command [--version] [--list] [--hidden] [--screenshot <应用名称或窗口 ID>] [--record <应用名称或窗口 ID>] [--ocr] [--clipboard] [--mov] [--gif] [--save] [--abort] [--output <可选输出文件路径>]
选项:
--version 显示版本。
-l, --list 列出可录制的窗口。
--hidden 列出时也包括隐藏的窗口。
-x, --screenshot <应用名称或窗口 ID>
截取屏幕截图。
-r, --record <应用名称或窗口 ID>
开始录制。
-c, --ocr 选择并识别屏幕区域中的文本。
-b, --clipboard 将 --ocr 文本保存到剪贴板。
-m, --mov 录制为 mov 格式。
-g, --gif 录制为 gif 格式。
-s, --save 保存当前录制。
-a, --abort 中止当前录制。
-o, --output <可选输出文件路径>
-h, --help 显示帮助信息。
- 安装 ** Homebrew
brew tap xenodium/macosrec
brew install macosrec
** 构建
swift build
- 截图
在截图之前,使用 --list
确定窗口编号。
$ macosrec --list
21902 Emacs
22024 Dock - 桌面图片 - Stone.png
22035 Firefox - Planet Emacslife
使用 --screenshot
+ 窗口编号来截图。
~ $ macosrec --screenshot 21902
~/Desktop/2023-04-14-08:21:45-Emacs.png
- 视频
在录制视频之前,使用 --list
确定窗口编号。
$ macosrec --list
21902 Emacs
22024 Dock - 桌面图片 - Stone.png
22035 Firefox - Planet Emacslife
使用 --record
+ 窗口编号开始录制视频(gif)。
注意:你也可以使用应用程序名称,它会使用找到的第一个属于该应用的窗口。
要结束录制,发送 SIGINT 信号(从终端按 Ctrl+C)。或者,从另一个会话运行 macosrec --save
也可以结束录制。
~ $ macosrec --record 21902 --gif
正在保存...
~/Desktop/2023-04-14-08:21:45-Emacs.gif
注意:你也可以使用应用程序名称,它会使用找到的第一个属于该应用的窗口。
~ $ macosrec --record emacs --mov
正在保存...
~/Desktop/2023-04-14-08:21:45-Emacs.mov
** 优化 gif
gif 文件可能会随着录制时间的增加而变得相当大。考虑使用像 gifsicle 这样的工具来减小文件大小。例如:
gifsicle -O3 large.gif --lossy=80 -o smaller.gif
- OCR
** 选择区域
--ocr
标志默认选择屏幕区域(除非给定了--input
)。
$ macosrec --ocr
Hello this text was recognized
** 从已有图像
使用 --input
标志:
$ macosrec --ocr --input /path/to/image.png
Hello this text was recognized
** 保存到剪贴板
使用 --clipboard
标志:
$ macosrec --ocr --input /path/to/image.png --clipboard
Hello this text was recognized
- 免责声明
我构建这个工具是为了录制我在 xenodium.com 上发布的演示。到目前为止效果不错,但可能还需要改进,特别是在图像处理效率方面。非常欢迎提交 PR。
** 录制时调整窗口大小(不支持)
虽然在录制会话期间调整窗口大小时仍会录制视频,但产生的文件可能不会达到预期效果。目前不支持此功能,也不在考虑范围内。话虽如此,如果有人热衷于实现它,非常欢迎提交 PR。