gpu-screen-recorder
Record screen using GPU
TLDR
Select a source using a desktop portal and record it
Specify a specific video source
List video capture sources
List audio capture sources
Record using the replay buffer
Capture a video from the replay buffer
Run gpu-screen-recorder in the background
SYNOPSIS
gpu-screen-recorder [options]
PARAMETERS
-h, --help
Displays the help message and exits.
-v, --version
Shows version information and exits.
-d
Specifies the X11 display name (e.g., :0).
-o
Sets the path and filename for the output video (default: output.mp4).
-f
Specifies the target framerate for the recording (default: 60).
-r
Sets the recording resolution (e.g., 1920x1080).
-x
Specifies the X-axis offset for the capture area (default: 0).
-y
Specifies the Y-axis offset for the capture area (default: 0).
-c
Specifies the video codec to use (e.g., h264_nvenc, h264_amf, h264_vaapi for hardware acceleration).
-a
Specifies the audio input device (e.g., default, pulse).
-b
Sets the video bitrate (e.g., 8M for 8 megabits/second, 12000K for 12000 kilobits/second).
-m
Sets the maximum recording duration in seconds.
-s
Specifies the encoding preset (e.g., quality, performance).
--cursor
Includes the mouse cursor in the recorded video.
--gl
Uses the OpenGL backend for screen capture (default).
--vk
Uses the Vulkan backend for screen capture.
--list-codecs
Lists all available video codecs on the system.
--list-audio-devices
Lists all available audio input devices on the system.
--no-metadata
Disables including metadata in the output file.
--loop-input
Loops the audio input if its duration is shorter than the video.
--capture-window
Captures a specific window by its X11 window ID.
--capture-area
Captures a specific rectangular area defined by x, y coordinates, width (w), and height (h).
--v-sync
Specifies the V-Sync mode (off, on, adaptive) for capture.
DESCRIPTION
gpu-screen-recorder is a powerful, open-source command-line utility designed for capturing screen activity directly from the GPU. Unlike traditional screen recorders that capture from the display buffer, gpu-screen-recorder leverages modern graphics APIs like OpenGL and Vulkan to capture frames with minimal overhead. This makes it particularly well-suited for recording demanding applications such as video games, ensuring high performance and smooth recordings without significantly impacting system resources.
It offers extensive customization options, including specifying resolution, framerate, video codecs (like h264_nvenc, h264_amf, h264_vaapi for hardware acceleration), audio input devices, and even specific window or area capture. Its focus on efficiency and direct GPU integration provides a superior recording experience for users requiring high-fidelity captures.
CAVEATS
gpu-screen-recorder is primarily designed for X11 environments; its functionality on Wayland might be limited or require specific configurations depending on the compositor. Optimal performance and hardware-accelerated encoding rely heavily on the availability of appropriate GPU drivers (NVIDIA, AMD, Intel) and libraries. Users might need to install specific codec libraries (e.g., FFmpeg with nvenc support) for certain hardware acceleration features. Audio configuration can sometimes be challenging, requiring correct identification of audio input devices.
GPU BACKEND SELECTION
Users can explicitly choose between OpenGL (--gl
) or Vulkan (--vk
) capture backends, allowing optimization based on their system's graphics stack and the application being recorded. This direct GPU integration is key to its low-overhead design.
HARDWARE ACCELERATED ENCODING
The command strongly supports hardware-accelerated video encoding through various codecs like h264_nvenc (NVIDIA), h264_amf (AMD), and h264_vaapi (Intel/other VAAPI-enabled hardware). Utilizing these codecs offloads encoding tasks from the CPU to the GPU, significantly improving performance and reducing system load during recording.
HISTORY
gpu-screen-recorder was developed by Decembersoft with the explicit goal of providing a low-overhead, high-performance screen recording solution for Linux. It emerged as an alternative to traditional CPU-bound recorders, aiming to leverage modern GPU rendering APIs (OpenGL, Vulkan) to capture screen content directly from the graphics pipeline, making it ideal for recording demanding applications like video games. Its development has focused on efficiency and offering users direct control over capture and encoding parameters.
SEE ALSO
ffmpeg(1), simplescreenrecorder(1), obs-studio(1)