Jump to content

Gpu-screen-recorder: Difference between revisions

From Official NixOS Wiki
m Changed the ShadowPlay link to point to the English version of the Nvidia website, rather than German
Add updated features and instructions
 
Line 5: Line 5:
===== Video =====
===== Video =====


* H264 (default on Intel)
* H264 (default)
* HEVC (default on AMD and NVIDIA)
* HEVC (Optionally with HDR)
* AV1
* AV1 (Optionally with HDR)
* VP8
* VP9


===== Audio =====
===== Audio =====
Line 13: Line 15:
* Opus (default)
* Opus (default)
* AAC
* AAC
* FLAC


== Installation ==
== Installation ==
<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
   programs.gpu-screen-recorder.enable = true; # For promptless recording on both CLI and GUI
   programs.gpu-screen-recorder = {
    enable = true;
    ui.enable = true; # For overlay
  };


   environment.systemPackages = with pkgs; [
   environment.systemPackages = with pkgs; [  
     gpu-screen-recorder-gtk # GUI app
     gpu-screen-recorder-gtk # For 'deprecated' GTK interface
   ];
   ];
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 23:39, 7 September 2026

gpu-screen-recorder is a screen recorder that has minimal impact on system performance by recording your monitor using the GPU only, similar to ShadowPlay on Windows.

Supported codecs

Video
  • H264 (default)
  • HEVC (Optionally with HDR)
  • AV1 (Optionally with HDR)
  • VP8
  • VP9
Audio
  • Opus (default)
  • AAC

Installation

  programs.gpu-screen-recorder = {
    enable = true;
    ui.enable = true; # For overlay
  };

  environment.systemPackages = with pkgs; [ 
    gpu-screen-recorder-gtk # For 'deprecated' GTK interface
  ];

Troubleshooting

libnvidia-fbc.so.1: cannot open shared object file: No such file or directory

The possibility of this error arising exists if you possess an NVIDIA graphics card, as the package does not include the NVIDIA X11 libraries in its wrapper by default.

  1. Make sure your drivers are installed.
  2. Install the missing the NVENC patch for your card. nvidia-patch is a great overlay which you can use
  3. Override the package build inputs and add the library to the wrapper.
{
  environment.systemPackages = [
    (pkgs.runCommand "gpu-screen-recorder" {
      nativeBuildInputs = [ pkgs.makeWrapper ];
    } ''
      mkdir -p $out/bin
      makeWrapper ${pkgs.gpu-screen-recorder}/bin/gpu-screen-recorder $out/bin/gpu-screen-recorder \
        --prefix LD_LIBRARY_PATH : ${pkgs.libglvnd}/lib \
        --prefix LD_LIBRARY_PATH : ${config.boot.kernelPackages.nvidia_x11}/lib
    '')
  ];
}