夜雨聆风学习资料网

ARTICLE · 1120420

ubuntu下的录屏软件分享

ubuntu下的录屏软件分享
点击查看原文即可免费下载软件
面向 Ubuntu 的小窗口录屏工具。窗口始终置顶,录制结果保存为 MP4。安装后在任意目录执行 tinyrec 即可打开。

在 1920×1080、30 帧、画质「均衡」、不录音的条件下,实测大约占用 0.6 个 CPU 核心,进程内存峰值约 91 MB。

技术说明

界面是一个 GTK 3 小窗口,抓屏和编码交给 GStreamer 管线。程序本身不内置桌面环境,GTK、GStreamer 使用系统里已安装的库。H.264 编码器和 AAC 编码器随软件一起分发,安装包约 874 KB,装好后约占 2.8 MB。

录制管线如下:

text
ximagesrc → 指定帧率 → videoconvert(I420) → x264enc → h264parse → mp4mux → MP4pulsesrc  → audioconvert → voaacenc → aacparse ──────────────┘
环节
实现
作用
界面
GTK 3、PyGObject
小窗口、区域框选、参数保存
抓屏
GStreamer ximagesrc(X11)
按区域抓取屏幕,保留鼠标指针
视频编码
x264,ultrafast / veryfast
低 CPU 占用的 H.264
音频
PulseAudio pulsesrc + vo-aacenc
系统声音或麦克风,AAC 64 kbps
封装
mp4mux
,开启 faststart
标准 MP4,文件头在前面,便于播放
快捷键
单独的 X11 连接抓取 F9
窗口隐藏后仍能停止录制

抓屏坐标来自 X11 根窗口。区域宽高会对齐到偶数像素,以符合 H.264 的采样要求。视频队列只保留少量帧,编码跟不上时丢掉旧帧,避免内存持续上涨。

画质对应的编码参数:

画质
x264 预设
质量(CRF)
编码线程
省资源
ultrafast
30
1
均衡
ultrafast
24
2
清晰
veryfast
20
2

三种画质都关闭 B 帧,并使用 zerolatency 调优,缩短编码器内部缓冲。「清晰」额外使用 animation 心理视觉调优。帧率可选 15、24、30,帧率只影响抓屏和关键帧间隔,不额外做一次缩放。

声音默认关闭。打开后从 PulseAudio 读取默认输出的监听源(系统声音)或默认输入(麦克风)。配置写在 ~/.config/tinyrec/config.json,GStreamer 插件注册表写在 ~/.cache/tinyrec/。

当前抓屏依赖 X11。在 Wayland 会话里无法使用 ximagesrc。安装包架构为 amd64。

安装

在项目目录执行:

Bash
sudo apt install ./package/tinyrec_1.0.0_amd64.deb

apt 会安装这些依赖:Python 3、PyGObject、GTK 3、GStreamer 基础插件与 good 插件、PulseAudio 插件,以及 pactl。桌面通知使用 libnotify-bin(建议安装)。

卸载:

Bash
sudo apt remove tinyrec

重新打包:

Bash
./package/build.sh

生成的文件仍是 package/tinyrec_1.0.0_amd64.deb。

使用方法

安装后,在终端任意目录执行:

Bash
tinyrec

也可以从应用菜单打开「录屏」。查看简要说明:

Bash
tinyrec --help

窗口默认出现在主屏幕右上角。各控件的作用:

控件
作用
● 录制 / ■ 停止
开始或结束。结束后按钮会暂时不可用,直到 MP4 写完
计时
当前这次录制的时长
目录名(默认 Videos)
选择保存目录
范围
「全屏」或「自选区域」
重选
在自选区域模式下重新框选
帧率
15、24 或 30。15 最省 CPU
声音
关闭、系统声音或麦克风
画质
省资源、均衡、清晰
录制时隐藏窗口
全屏时避免把本窗口录进去

自选区域时,屏幕会变暗。拖拽出矩形后松开即可,按 Esc 取消。选区至少 16×16 像素。

停止录制:

  • 再点一次按钮
  • 按 F9(窗口被隐藏时用这个)
  • 窗口仍在前台时按 Esc
  • 关闭窗口。程序会先写完文件再退出

文件保存在所选目录,默认是主目录下的 Videos(没有则用 视频,再没有则用主目录)。文件名形如 录屏-20261003-215400.mp4。状态栏会显示刚保存的文件名。

想少占资源时,把帧率调到 15、画质调到「省资源」,并保持声音关闭。

不安装直接运行

在项目目录执行:

Bash
./tinyrec

这与安装后的 tinyrec 是同一个界面,库文件从项目里的 vendor/ 加载。需要系统已有 /usr/bin/python3、PyGObject 和上面列出的 GStreamer 插件。编码器若缺失,可在有网络时执行 ./scripts/fetch-encoder.sh 重新下载。

相关学习资料