GPU-SCREEN-RECORDER(1) GPU Screen Recorder Manual GPU-SCREEN-RECORDER(1) (NAME) gpu-screen-recorder - (SYNOPSIS) gpu-screen-recorder -w window_id|monitor|focused|portal|region|v4l2_device_path [] -o output_file gpu-screen-recorder --help | --version | --info | --list-capture-options | --list-monitors | --list-v4l2-devices | --list-audio-devices | --list-application-audio (DESCRIPTION) gpu-screen-recorder . (GPU) . () ( ShadowPlay NVIDIA) . X11 Wayland AMD Intel NVIDIA . : o GPU H264 HEVC AV1 VP8 VP9 o HDR ( HEVC HDR AV1 HDR) o ( N ) o () o ( PipeWire ) o (Overlay) o (OPTIONS) (Capture Options) -w window_id|monitor|focused|portal|region|v4l2_device_path . : o window - ( ) ( X11) o screen - o screen-direct - NVIDIA X11 VRR/G-SYNC ( ) o focused - ( X11) ( -s ) o portal - xdg-desktop-portal PipeWire ( Wayland) o region - ( -region ) o ( DP-1) - o V4L2 ( /dev/video0) - (V4L2). GPU Screen Recorder GPU Screen Recorder . o | ( monitor:screen|v4l2:/dev/video0) : --list-capture-options ; : screen;x=50;y=50. (): o x - (X) . % X ( 100 = 100% ) o y - (Y) . % Y ( 100 = 100% ) o width - . % ( 100 = 100% ). 0 . o height - . % ( 100 = 100% ). 0 . o halign - start center end . center start . o valign - start center end . center start . o hflip - () true false . false . o vflip - true false . false . (V4L2) (): o pixfmt - auto yuyv mjpeg . auto . o camera_fps - (fps) . --info --list-v4l2-devices . 0 . o camera_width - . --info --list-v4l2-devices . 0 . o camera_height - . --info --list-v4l2-devices . 0 . -region WxH+X+Y -w region. x + X + Y . 0 . slop ( X11) slurp ( Wayland) . -c container_format (mp4 mkv flv webm). -o . -s WxH ( 1920x1080). . 0x0 . -w focused ( ). -f fps (: 60). FPS . -cursor yes|no (: yes). -restore-portal-session yes|no ( -w portal : no). (Audio Options) -a audio_source . . : o default_output - o default_input - o device:name - o app:name - ( ) o app-inverse:name - o | ( default_output|app:firefox) : --list-audio-devices : --list-application-audio -ac aac|opus|flac (: opus mp4/mkv aac). FLAC . -ab bitrate kbps (: 128 opus/flac 160 aac). 0 = . (Video Quality Options) -k codec : auto, h264, hevc, av1, vp8, vp9, hevc_hdr, av1_hdr, hevc_10bit, av1_10bit, h264_vulkan, hevc_vulkan, hevc_10bit_vulkan, av1_vulkan, av1_hdr_vulkan, av1_10bit_vulkan HDR X11 . (Banding) . Vulkan GPU . Vulkan NVIDIA Vulkan "cuda p2 state" nvenc ( NVIDIA) GPU . (: auto <- h264). -q quality (medium high very_high ultra) QP/VBR (kbps) CBR (: very_high). -bm auto|qp|vbr|cbr (: auto <- qp). CBR . QP VBR CBR . -fm cfr|vfr|content : cfr () vfr () content ( ) (: vfr). content X11 . content ( -fm content) . ( -fm cfr) -f . . . ( -fm vfr) mkv Kdenlive mkv . -cr limited|full (: limited). (full) . -tune performance|quality (: performance). NVIDIA. -keyint seconds (Keyframe) (: 2.0). . -encoder gpu|cpu (: gpu). CPU H264 . -fallback-cpu-encoding yes|no CPU GPU (: no). (Replay Buffer Options) -r seconds ( ). . -replay-storage ram|disk (: ram). SSD . -restart-replay-on-save yes|no (: no). -df yes|no (: no). (Advanced Options) -p plugin.so ( .so). . -sc script_path . ("regular" "replay" "screenshot") . -portal-session-token-filepath path (: ~/.config/gpu-screen- recorder/restore_token). -ffmpeg-opts options FFmpeg - "key=value;key=value" : -ffmpeg-opts "hls_list_size=3;hls_time=1;hls_flags=delete_segments". : GPU Screen Recorder . -ffmpeg-video-opts options FFmpeg - "key=value;key=value" : -ffmpeg-video-opts "codec=cabac;rc_mode=CQP;qp=16". : GPU Screen Recorder . -ffmpeg-audio-opts options FFmpeg - "key=value;key=value" : -ffmpeg-audio-opts "aac_coder=fast;aac_pce=true". : GPU Screen Recorder . -auth token (Bearer) whip ( -c whip). / "username:password" . Whip . FFmpeg . GSR_AUTH . -auth . whip ts_buffer_size 4194304 . -ffmpeg-opts "ts_buffer_size=" . () sysctl net.core.wmem_max ( ). whip "UDP send blocked" : sysctl -w net.core.wmem_max=8388608 -gl-debug yes|no () OpenGL (: no). -v yes|no FPS (damage info) (: yes). -low-power yes|no . AMD ( AMD ) GPU (: no). yes AMD VAAPI GPU Screen Recorder . -fm content . -exclude-metadata yes|no () (: no). -write-first-frame-ts yes|no (Timestamp) .ts : monotonic_microsec realtime_microsec (: no). . -ipc socket_path socket_path . GPU Screen Recorder . IPC . . (Output Options) -o output ( ). stdout . -ro directory /. (Information Commands) --help . --version (5.10.2). --info ( ). --list-capture-options ( v4l2). --list-monitors . --list-v4l2-devices (V4L2). --list-audio-devices . --list-application-audio . (SIGNALS) GPU Screen Recorder : SIGINT (Ctrl+C) ( ). SIGUSR1 ( ). SIGUSR2 / ( / ). SIGRTMIN / /. SIGRTMIN+1 ( ). SIGRTMIN+2 ( ). SIGRTMIN+3 ( ). SIGRTMIN+4 ( ). SIGRTMIN+5 ( ). SIGRTMIN+6 ( ). pkill ( pkill -SIGUSR1 -f "^gpu-screen-recorder"). (IPC) -ipc GPU Screen Recorder . . GPU Screen Recorder . gsr-cli(1) . JSON (newline) . . : id . id . name . data . : id 0 . result ok error. data . error . ok stop save-replay stop-replay-recording . stop save-replay stop-replay-recording -sc . . : stop ( ). . save-replay ( ). data : seconds 0 . restart-replay true/false -restart-replay-on-save . . data seconds null . . toggle-pause / ( / ). set-paused / ( / ). data true false . toggle-pause / . toggle-replay-recording / / -ro . start-replay-recording / -ro . . stop-replay-recording /. . . : gpu-screen-recorder -w screen -f 60 -c mp4 -r 60 -o ~/Videos -ipc "$XDG_RUNTIME_DIR/gsr.sock" & echo '{"id":1,"name":"save-replay","data":{"seconds":30}}' | socat - "UNIX-CONNECT:$XDG_RUNTIME_DIR/gsr.sock" : {"id":1,"result":"ok","data":"/home/user/Videos/Replay_2026-08-05_14-04-22.mp4"} (EXAMPLES) : gpu-screen-recorder -w screen -f 60 -a default_output -o video.mp4 : gpu-screen-recorder -w screen -f 60 -a "default_output|default_input" -o video.mp4 ( X11): gpu-screen-recorder -w $(xdotool selectwindow) -f 60 -o video.mp4 ( ): gpu-screen-recorder -w screen -c mp4 -r 60 -o ~/Videos ( ): gpu-screen-recorder -w screen -c mp4 -r 60 -bm cbr -q 40000 -o ~/Videos slop: gpu-screen-recorder -w $(slop) -o video.mp4 slurp: gpu-screen-recorder -w $(slurp -f "%wx%h+%x+%y") -o video.mp4 : gpu-screen-recorder -w screen -c mp4 -r 60 -sc ./script.sh -o ~/Videos Twitch : gpu-screen-recorder -w screen -c flv -a default_output -bm cbr -q 8000 -o "rtmp://live.twitch.tv/app/stream_key" : gpu-screen-recorder -w screen -o screenshot.jpg : gpu-screen-recorder -w "screen|/dev/video0" -o video.mp4 ( ): gpu-screen-recorder -w "screen|/dev/video0;halign=end;valign=end;hflip=true;width=30%;height=30%" -o video.mp4 ( 1920x1080 ): gpu-screen-recorder -w "DP-1|DP-2;x=1920" -o video.mp4 whip : gpu-screen-recorder -w screen -bm cbr -q 3500 -auth "streamtest" -c whip -o https://b.siobud.com/api/whip (FILES) ~/.config/gpu-screen-recorder/gpu-screen-recorder.env systemd (). /usr/lib/modprobe.d/gsr-nvidia.conf / (Suspend/Resume) NVIDIA. ~/.config/gpu-screen-recorder/restore_token ( ). (TIPS) o . .mkv . o ( MPV ). o H.265/HEVC / ( H264 ). o ( Flatpak ). o CBR ( -bm cbr ) RAM . (PERFORMANCE TIPS) o SSD ( HDD ). o ( OBS ). (KNOWN ISSUES) o NVIDIA: CUDA (Suspend) ( gsr- nvidia.conf ). o AMD: HEVC/AV1 ( H264 FFmpeg ). (AUTHORS) dec05eba . (REPORTING BUGS) : dec05eba@protonmail.com . gpu-screen-recorder: https://git.dec05eba.com/?p=about FAQ README : https://git.dec05eba.com/gpu-screen-recorder/about gpu-screen-recorder ( ). (COPYRIGHT) (C) dec05eba. GPL-3.0-only. (SEE ALSO) gsr-cli(1) gsr-kms-server(1) (README) GTK () ShadowPlay xdotool(1) slop(1) slurp(1) 6.0.1 2026-08-18 GPU-SCREEN-RECORDER(1)