什么是 GPU Screen Recorder?
GPU Screen Recorder 是一款把整条流水线都放在 GPU 上完成的屏幕录制工具:它捕获显示器、窗口、区域或摄像头画面,并把帧直接交给 GPU 的视频编码器(AMD 和 Intel 上是 VA-API,NVIDIA 上是 NVENC,或者 Vulkan video),因此以 60 或 144 FPS 录制游戏画面几乎不会拖慢帧率。它可以录制到文件、通过 RTMP、SRT 或 WHIP 推流、截图,还保留一个 ShadowPlay 风格的即时回放缓冲区,在你需要时保存最近几分钟的画面。它在 X11 和 Wayland 上都能运行,你要输入的命令是 gpu-screen-recorder。
gsr-cli,也没有 -ipc 选项,正在运行的录制进程只能靠信号控制;没有带 -auth 的 WHIP 输出,无法实现低延迟推流;也没有 -exclude-metadata。按照今天的上游文档编写的热键脚本和回放配置,都默认这些功能已经存在。
⚡ GPU Screen Recorder 的主要特性
⏪ 即时回放
-r 60 会在内存中保留最近 60 秒(或用 -replay-storage disk 保存到磁盘),一条命令就能把它存下来:你想要的那段画面,在你意识到自己想要它之前就已经被录下来了。
🎮 近乎零开销
捕获和编码始终留在 GPU 上,CPU 完全留给游戏。支持 H.264、HEVC、AV1、VP8 和 VP9,还有 HEVC 和 AV1 的 HDR 与 10 位变体。
🖥️ X11 与 Wayland
直接录制显示器、X11 上的某个窗口、当前焦点窗口、用 slop 或 slurp 选取的区域,或者在 Wayland 上通过 -w portal 使用桌面门户提供的任何画面。
📡 推流
把同一路画面通过 RTMP 发送到 Twitch 或 YouTube,发送给 SRT 监听端,或者通过 WHIP 实现亚秒级延迟,用 -bm cbr 提供流媒体服务要求的恒定码率。
🎛️ 用 gsr-cli 远程控制
用 -ipc 启动录制进程后,gsr-cli 就能暂停它、停止它,或者保存回放缓冲区最后 30 秒的内容,并打印出保存文件的路径,让配置热键变得轻而易举。
🔊 音频混合
用 -a "default_output|default_input" 混合桌面输出和麦克风,或者通过 PipeWire 用 app:firefox 只录制单个应用的音频。
apt upgrade 就能让你保持最新。
📦 从 deb.griffo.io 安装
第 1 步:添加仓库
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud 和 Zed;GPU Screen Recorder 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。
🧩 关于 extrepo 选项。 extrepo 是 Debian 官方用于管理第三方仓库的工具:它会替你写好 sources 文件并安装签名密钥,并在使用前先对照签名元数据校验该密钥。本仓库以 griffo 之名登记其中,永久免费镜像则为 griffo-free,因此在 Debian(bookworm、trixie、forky、sid)上,上面的命令就是全部配置。
extrepo 只负责 sources 文件和密钥,订阅凭据仍然要写入 /etc/apt/auth.conf.d/deb.griffo.io.conf。Ubuntu 不在覆盖范围内,因为 extrepo 只发布 Debian 各套件的元数据:在 Ubuntu 上请使用 sudo 或 root 的命令。
第 2 步:安装 GPU Screen Recorder
# 安装最新版 GPU Screen Recorder
sudo apt install gpu-screen-recorder-cli
# 验证安装
gpu-screen-recorder --version# 安装最新版 GPU Screen Recorder
apt install gpu-screen-recorder-cli
# 验证安装
gpu-screen-recorder --version第 3 步:安装 GPU 的视频编码器并录制
# 编码器来自 GPU 驱动。AMD:
sudo apt install mesa-va-drivers
# Intel(non-free 版本提供更多编码器):
sudo apt install intel-media-va-driver-non-free
# NVIDIA:专有驱动提供 NVENC 和 CUDA
# 查看这台机器能捕获和编码的内容
gpu-screen-recorder --list-capture-options
gpu-screen-recorder --info
# 以 60 FPS 录制屏幕并附带桌面音频,Ctrl+C 停止并保存
gpu-screen-recorder -w screen -f 60 -a default_output -o ~/Videos/video.mp4# 编码器来自 GPU 驱动。AMD:
apt install mesa-va-drivers
# Intel(non-free 版本提供更多编码器):
apt install intel-media-va-driver-non-free
# NVIDIA:专有驱动提供 NVENC 和 CUDA
# 查看这台机器能捕获和编码的内容
gpu-screen-recorder --list-capture-options
gpu-screen-recorder --info
# 以 60 FPS 录制屏幕并附带桌面音频,Ctrl+C 停止并保存
gpu-screen-recorder -w screen -f 60 -a default_output -o ~/Videos/video.mp4🎯 基本用法示例
录制:
# 桌面音频和麦克风混合到一条音轨
gpu-screen-recorder -w screen -f 60 -a "default_output|default_input" -o video.mp4
# 按名称指定单个显示器,参见 --list-monitors
gpu-screen-recorder -w DP-1 -f 144 -k hevc -o video.mp4
# 在 Wayland 上用 slurp、在 X11 上用 slop 选取的区域
gpu-screen-recorder -w region -region $(slurp -f "%wx%h+%x+%y") -o video.mp4
# 屏幕画面,摄像头显示在右下角
gpu-screen-recorder -w "screen|/dev/video0;halign=end;valign=end;width=30%;height=30%" -o video.mp4即时回放:
# 保留最近 60 秒,恒定码率以获得可预测的内存占用
gpu-screen-recorder -w screen -c mp4 -r 60 -bm cbr -q 40000 -a default_output \
-ipc "$XDG_RUNTIME_DIR/gsr.sock" -o ~/Videos
# 从热键触发:保存整个缓冲区,或只保存最近 30 秒
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" save-replay
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" save-replay 30
# 没有 -ipc 时信号依然有效
pkill -SIGUSR1 -f "^gpu-screen-recorder"推流与截图:
# 以恒定 8000 kbps 推流到 Twitch
gpu-screen-recorder -w screen -c flv -a default_output -bm cbr -q 8000 \
-o "rtmp://live.twitch.tv/app/$STREAM_KEY"
# 使用 bearer token 的低延迟 WHIP 推流
gpu-screen-recorder -w screen -bm cbr -q 3500 -c whip -auth "$TOKEN" -o https://whip.example.com/api/whip
# 截图
gpu-screen-recorder -w screen -o screenshot.png控制正在进行的录制:
# 启动一个可以通过 socket 控制的录制
gpu-screen-recorder -w screen -f 60 -ipc "$XDG_RUNTIME_DIR/gsr.sock" -o video.mp4 &
# 查看状态、暂停,然后停止并打印文件保存位置
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" status
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" set-paused true
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" stop🔧 工具集成
GPU Screen Recorder 是一个命令行程序,因此只要能运行命令的地方,就能用上它:
- 桌面热键:在 GNOME、KDE、Sway 或 Hyprland 中绑定
gsr-cli save-replay 30,得到一个 ShadowPlay 风格的“保存最近 30 秒”快捷键 - 辅助脚本:上游的开关、回放和推流脚本随包安装在
/usr/share/gpu-screen-recorder/scripts - systemd:用于常驻回放缓冲区的用户服务已安装但未启用;先配置
~/.config/gpu-screen-recorder.env,再执行systemctl --user enable --now gpu-screen-recorder - 无需 OBS 的推流:RTMP、SRT 和 WHIP 输出覆盖 Twitch、YouTube 和自建服务器,不需要第二个程序
- FFmpeg:
-ffmpeg-opts、-ffmpeg-video-opts和-ffmpeg-audio-opts把选项透传给编码器和封装器
🚀 为什么选择 deb.griffo.io?
- 官方 Debian:Debian 12 和 13 都没有打包;forky 和 sid 中是 5.13.8,拆分成好几个
gpu-screen-recorder-*软件包,且没有gsr-cli、-ipc或 WHIP - Flatpak:版本是最新的,并自带编码器,但提供的是 GTK 界面,命令行藏在
flatpak run --command=gpu-screen-recorder后面,而且在 AMD/Intel 上录制显示器需要系统级安装 - 从源码构建:上游的
install.sh需要 meson 和大约二十个-dev软件包,安装在 apt 管理之外,而且每次发布都得手动重新运行 - deb.griffo.io:最新版本,自动更新
- ✅ 为每个版本单独构建:针对每个套件的上游标签,用该套件自带的 FFmpeg 编译,因此链接的是系统上已有的库
- ✅ 无需密码提示:
gsr-kms-server被赋予了上游安装程序设置的能力,因此在 AMD、Intel 或 NVIDIA 的 Wayland 上录制显示器不会每次都提示输入密码 - ✅ 取代拆分的软件包:接管 Debian 在 forky 和 sid 中的
gpu-screen-recorder-cli及其配套软件包,apt 会执行升级而不是安装第二份 - ✅ 自动更新:上游发布后数小时内更新软件包
- ✅ 完整软件包:
gpu-screen-recorder、gsr-cli、gsr-kms-server、man 手册页、插件头文件、上游的辅助脚本,以及一个在你启用之前保持关闭的用户服务 - ✅ 多发行版:支持 Bookworm、Trixie、Forky 和 Sid,架构为 amd64
- ✅ 易于维护:使用标准 apt 命令即可更新
有一个说明来自上游、一直延续到这里:使用发行版自带的 FFmpeg,GTX 1080 及更早一代的 NVIDIA 显卡可能无法编码。上游的 Flatpak 和 AppImage 为这些显卡提供了打过补丁的 FFmpeg。
📦 软件包构建仓库
Debian 软件包在这个 GitHub 仓库中自动构建和维护:
- 🎥 gpu-screen-recorder-debian-cli - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供:
