What is GPU Screen Recorder?
GPU Screen Recorder is a screen recorder that keeps the whole pipeline on the GPU: it captures a monitor, a window, a region or a webcam and hands the frames straight to the GPU's video encoder (VA-API on AMD and Intel, NVENC on NVIDIA, or Vulkan video), so recording a game at 60 or 144 FPS costs almost nothing in frame rate. It records to a file, streams over RTMP, SRT or WHIP, takes screenshots, and keeps a ShadowPlay-style instant replay buffer that saves the last few minutes when you ask. It works on X11 and Wayland, and the command you type is gpu-screen-recorder.
gsr-cli and no -ipc option, so a running recorder can only be driven by signals; no WHIP output with -auth for low-latency streaming; and no -exclude-metadata. Hotkey scripts and replay setups written against today's upstream documentation assume all of those.
⚡ Key Features of GPU Screen Recorder
⏪ Instant Replay
-r 60 keeps the last 60 seconds in memory (or on disk with -replay-storage disk), and saving it is one command away: the clip you wanted, recorded before you knew you wanted it.
🎮 Near-Zero Overhead
Capture and encode never leave the GPU, so the CPU is free for the game. H.264, HEVC, AV1, VP8 and VP9 are supported, with HDR and 10-bit variants of HEVC and AV1.
🖥️ X11 and Wayland
Record a monitor directly, a window on X11, a focused window, a region from slop or slurp, or anything the desktop portal offers with -w portal on Wayland.
📡 Streaming
Send the same capture to Twitch or YouTube over RTMP, to an SRT listener, or over WHIP for sub-second latency, with -bm cbr for the constant bitrate streaming services expect.
🎛️ Remote Control with gsr-cli
Start the recorder with -ipc and gsr-cli pauses it, stops it, or saves the last 30 seconds of the replay buffer, and prints the path of the file it saved, which makes hotkeys trivial.
🔊 Audio Mixing
Mix desktop output and microphone with -a "default_output|default_input", or record a single application's audio with app:firefox through PipeWire.
apt upgrade keeps you on the latest version.
📦 Installation from deb.griffo.io
Step 1: Add Repository
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 update🆓 There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud and Zed; GPU Screen Recorder is not one of them, so the repository above is the only way to get it today, ask and it can be enrolled.
Step 2: Install GPU Screen Recorder
# Install latest GPU Screen Recorder
sudo apt install gpu-screen-recorder-cli
# Verify installation
gpu-screen-recorder --version# Install latest GPU Screen Recorder
apt install gpu-screen-recorder-cli
# Verify installation
gpu-screen-recorder --versionStep 3: Install your GPU's video encoder and record
# The encoder comes from the GPU driver. AMD:
sudo apt install mesa-va-drivers
# Intel (the non-free variant, from multiverse, adds more encoders):
sudo apt install intel-media-va-driver-non-free
# NVIDIA: the proprietary driver provides NVENC and CUDA
# See what this machine can capture and encode
gpu-screen-recorder --list-capture-options
gpu-screen-recorder --info
# Record the screen at 60 FPS with desktop audio, Ctrl+C stops and saves
gpu-screen-recorder -w screen -f 60 -a default_output -o ~/Videos/video.mp4# The encoder comes from the GPU driver. AMD:
apt install mesa-va-drivers
# Intel (the non-free variant, from multiverse, adds more encoders):
apt install intel-media-va-driver-non-free
# NVIDIA: the proprietary driver provides NVENC and CUDA
# See what this machine can capture and encode
gpu-screen-recorder --list-capture-options
gpu-screen-recorder --info
# Record the screen at 60 FPS with desktop audio, Ctrl+C stops and saves
gpu-screen-recorder -w screen -f 60 -a default_output -o ~/Videos/video.mp4🎯 Basic Usage Examples
Recording:
# Desktop audio and microphone mixed into one track
gpu-screen-recorder -w screen -f 60 -a "default_output|default_input" -o video.mp4
# A single monitor by name, see --list-monitors
gpu-screen-recorder -w DP-1 -f 144 -k hevc -o video.mp4
# A region picked with slurp on Wayland, or slop on X11
gpu-screen-recorder -w region -region $(slurp -f "%wx%h+%x+%y") -o video.mp4
# Screen with the webcam in the bottom-right corner
gpu-screen-recorder -w "screen|/dev/video0;halign=end;valign=end;width=30%;height=30%" -o video.mp4Instant replay:
# Keep the last 60 seconds, constant bitrate for predictable memory use
gpu-screen-recorder -w screen -c mp4 -r 60 -bm cbr -q 40000 -a default_output \
-ipc "$XDG_RUNTIME_DIR/gsr.sock" -o ~/Videos
# From a hotkey: save the whole buffer, or only the last 30 seconds
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" save-replay
gsr-cli -ipc "$XDG_RUNTIME_DIR/gsr.sock" save-replay 30
# Signals still work without -ipc
pkill -SIGUSR1 -f "^gpu-screen-recorder"Streaming and screenshots:
# Stream to Twitch at a constant 8000 kbps
gpu-screen-recorder -w screen -c flv -a default_output -bm cbr -q 8000 \
-o "rtmp://live.twitch.tv/app/$STREAM_KEY"
# Low-latency WHIP stream with a bearer token
gpu-screen-recorder -w screen -bm cbr -q 3500 -c whip -auth "$TOKEN" -o https://whip.example.com/api/whip
# Take a screenshot
gpu-screen-recorder -w screen -o screenshot.pngControlling a recording:
# Start a recording that can be controlled over a socket
gpu-screen-recorder -w screen -f 60 -ipc "$XDG_RUNTIME_DIR/gsr.sock" -o video.mp4 &
# Check it, pause it, then stop it and print where the file was saved
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🔧 Tool Integrations
GPU Screen Recorder is a command-line program, so it fits wherever a shortcut can run a command:
- Desktop hotkeys: bind
gsr-cli save-replay 30in GNOME, KDE, Sway or Hyprland to get a ShadowPlay-style "save the last 30 seconds" key - Helper scripts: upstream's toggle, replay and streaming scripts ship in
/usr/share/gpu-screen-recorder/scripts - systemd: a user service for an always-on replay buffer is installed but not enabled; configure
~/.config/gpu-screen-recorder.env, thensystemctl --user enable --now gpu-screen-recorder - OBS-free streaming: RTMP, SRT and WHIP outputs cover Twitch, YouTube and self-hosted servers without a second program
- FFmpeg:
-ffmpeg-opts,-ffmpeg-video-optsand-ffmpeg-audio-optspass options through to the encoder and muxer
🚀 Why Choose deb.griffo.io?
- Official Ubuntu: not packaged in 24.04, 25.10 or 26.04; the next release is getting 5.13.8, split into several
gpu-screen-recorder-*packages and withoutgsr-cli,-ipcor WHIP - Flatpak: current and bundles its own encoders, but it is the GTK interface, the command line is behind
flatpak run --command=gpu-screen-recorder, and monitor capture on AMD/Intel needs a system-wide install - Building from source: upstream's
install.shneeds meson and around twenty-devpackages, installs outside apt, and has to be re-run by hand for every release - deb.griffo.io: latest version with automatic updates
- ✅ Built for Each Release: compiled from the upstream tag on every suite against that suite's own FFmpeg, so it links to the libraries already on your system
- ✅ No Password Prompt:
gsr-kms-serveris given the capability upstream's installer sets, so recording a monitor on AMD, Intel or NVIDIA Wayland does not ask for your password each time - ✅ Replaces the Split Packages: takes over from the
gpu-screen-recorder-clipackages Debian ships and Ubuntu is adding, so apt upgrades instead of installing a second copy - ✅ Automatic Updates: packages updated within hours of upstream releases
- ✅ Complete Package:
gpu-screen-recorder,gsr-cli,gsr-kms-server, man pages, the plugin header, upstream's helper scripts and a user service that stays off until you enable it - ✅ Multi-Distribution: works on Ubuntu 24.04, 25.10 and 26.04, on amd64 (the FFmpeg in 22.04 is too old to build it)
- ✅ Easy Maintenance: standard apt commands for updates
One caveat carries over from upstream: with the distribution's FFmpeg, NVIDIA cards from the GTX 1080 generation and older may not be able to encode. Upstream's Flatpak and AppImage ship a patched FFmpeg for those.
📦 Package Build Repository
The Ubuntu packages are automatically built and maintained in this GitHub repository:
- 🎥 gpu-screen-recorder-debian-cli - Latest release builds
🔗 Related Packages
Also available from deb.griffo.io:
- yt-dlp - Download video and audio from YouTube and thousands of other sites
- viu - Preview your screenshots right in the terminal
- Ghostty - GPU-accelerated terminal to run your recording hotkeys from
💝 Support This Project
If this repository saves you time and effort, please consider supporting it!
