gpu-screen-recorder - Le Bottin des Jeux Linux

gpu-screen-recorder

🗃️ Specifications

📰 Title: gpu-screen-recorder 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Tool 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Tool ➤ Screencast 🌍️ Browser version:
🔖 Tags: Tool; Screencast; Video Recording; Multimedia 📦️ Package Name: gpu-screen-recorder, gpu-screen-recorder-gtk
🐣️ Approx. start: 2020-01-08 📦️ Arch package: ✓
🐓️ Latest: 2022-04-14 📦️ RPM package:
📍️ Version: Latest: - / Dev: 304b5c8 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: GPL-3 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package:
👁️ Visual: Fixed screen ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 4 stars 👫️ Contrib.: goupildb & Louis
🎰️ ID: 16180 🐛️ Created: 2022-04-17
🐜️ Updated: 2023-04-13

📖️ Summary

[en]: The fastest free screen recorder for Linux thanks to exclusive use of the graphics card GPU (minimizing the use of the slower CPU), similar to Shadowplay on Windows. It can be used for recording offline desktop, for live streaming and for nvidia-like instant replay, where only the last few seconds are recorded. [fr]: L'enregistreur d'écran libre le plus rapide pour Linux grâce à une utilisation exclusive du GPU de la carte graphique (en minimisant l'utilisation du CPU, plus lent), similaire à Shadowplay sur Windows. Il peut être utilisé pour enregistrer le bureau hors ligne, pour le streaming en direct et pour la relecture instantanée de type nvidia, où seules les dernières secondes sont enregistrées.

🎥️ Videos

🦉️ From Devs: (202004),


🎮️ Showcase: (202203), (202203), (202204),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) ts(202xxx) gd(202004) gu(202xxx) id(202xxx) r(202xxx) lp(202xxx) ht(202xxx) d(202203) d(202203) d(202204) d(202203) d(202203) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💰 Commercial: (empty)

🍩️ Resources
(empty):

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

🐘 Social
Devs (No tux no bux (dec05eba) [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Gaming on Linux]

📦️ Misc. repositories
[openSUSE] [Debian/Ubuntu] [Repology] [pkgs.org] [Arch Linux / AUR] [Flatpak] [AppImage] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Gaming on Linux on Mastodon (202204)]

🐘 Social Networking Update (on Mastodon)

🛠️ Title: gpu-screen-recorder
🦊️ What's: A very fast libre screen recorder for Linux thanks to an exclusive use of the GPU
🏡️ -
🐣️ https://git.dec05eba.com/gpu-screen-recorder/about/
🔖 #LinuxTool #Screencast
📦️ #Libre #Arch
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update:
⚗️
📌️ Changes:
🐘 From: https://mastodon.social/@gamingonlinux/108113323857880417

🦝️ https://invidious.lunar.icu/n5tm0g01n6A
🎮️ https://invidious.lunar.icu/ljUC0nGumzA

📕 Description [en]

📕🐧"A very fast libre screen recorder for Linux thanks to an exclusive use of the GPU"🐧📕

gpu screen recorder

This is a screen recorder that has minimal impact on system performance by recording a window using the GPU only, similar to shadowplay on windows. This is the fastest screen recording tool for Linux.

This screen recorder can be used for recording your desktop offline, for live streaming and for nvidia-like instant replay, where only the last few seconds are saved.

Note

Might now work when using a compositor such as picom when using the glx backend. Using the xrender backend with picom fixes this issue.
Does not work when using gtk client side decorations (such as on Pop OS). Either disable those (if possible), install gtk-nocsd or record the whole monitor/screen if you have NvFBC.
NvFBC doesn't work with PRIME, so if you are using PRIME then you can't record the monitor/screen, you have to record a single window.
If you are using a variable refresh rate monitor, then choose to record "screen-direct". This will allow variable refresh rate to work when recording fullscreen applications. Note that some applications such as mpv will not work in fullscreen mode. A fix is being developed for this.

Performance

When recording Legend of Zelda Breath of the Wild at 4k, fps drops from 30 to 7 when using OBS Studio + nvenc, however when using this screen recorder the fps remains at 30.
When recording GTA V at 4k on highest settings, fps drops from 60 to 23 when using obs-nvfbc + nvenc, however when using this screen recorder the fps only drops to 55. The quality is also much better when using gpu-screen-recorder.
It is recommended to save the video to a SSD because of the large file size, which a slow HDD might not be fast enough to handle.

Installation

If you are running an Arch Linux based distro, then you can find gpu screen recorder on aur under the name gpu-screen-recorder-git (yay -S gpu-screen-recorder-git).
If you are running an Ubuntu based distro then run install_ubuntu.sh as root: sudo ./install_ubuntu.sh.\

On other distros you need to install dependencies manually and run build.sh. Dependencies: glew glfw3 cuda ffmpeg libx11 libxcomposite libpulse-simple.
Recording monitors requires a gpu with NvFBC support (note: this is not required when recording a single window!). Normally only tesla and quadro gpus support this, but by using nvidia-patch or nvlax you can do this on all gpus that support nvenc as well (gpus as old as the nvidia 600 series), provided you are not using outdated gpu drivers.

How to use

Run interactive.sh or run gpu-screen-recorder directly, for example: gpu-screen-recorder -w $(xdotool selectwindow) -c mp4 -f 60 -a "$(pactl get-default-sink).monitor" -o test_video.mp4
Then stop the screen recorder with Ctrl+C, which will also save the recording.
Send signal SIGUSR1 (killall -SIGUSR1 gpu-screen-recorder) to gpu-screen-recorder when in replay mode to save the replay. The paths to the saved files is output to stdout after the recording is saved.
There is also a gui for the gpu-screen-recorder called gpu-screen-recorder-gtk.

FAQ

How is this different from using OBS with nvenc?

OBS only uses the gpu for video encoding, but the window image that is encoded is sent from the GPU to the CPU and then back to the GPU. These operations are very slow and causes all of the fps drops when using OBS. OBS only uses the GPU efficiently on Windows 10 and Nvidia.
This gpu-screen-recorder keeps the window image on the GPU and sends it directly to the video encoding unit on the GPU by using CUDA. This means that CPU usage remains at around 0% when using this screen recorder.

How is this different from using FFMPEG with x11grab and nvenc?

FFMPEG only uses the GPU with CUDA when doing transcoding from an input video to an output video, and not when recording the screen when using x11grab. So FFMPEG has the same fps drop issues that OBS has.

📕 Description [fr]

Un enregistreur d'écran très rapide pour Linux grâce à une utilisation exclusive du GPU, par No tux no bux (dec05eba).

gpu-screen-recorder est l'enregistreur d'écran libre le plus rapide pour Linux grâce à une utilisation exclusive du GPU de la carte graphique (en minimisant l'utilisation du CPU, plus lent), similaire à Shadowplay sur Windows. Il peut être utilisé pour enregistrer le bureau hors ligne, pour le streaming en direct et pour la relecture instantanée de type nvidia, où seules les dernières secondes sont enregistrées.


gpu screen recorder

Il s'agit d'un enregistreur d'écran qui a un impact minimal sur les performances du système en enregistrant une fenêtre en utilisant uniquement le GPU, similaire à shadowplay sur Windows. C'est l'outil d'enregistrement d'écran le plus rapide pour Linux.

Cet enregistreur d'écran peut être utilisé pour enregistrer votre bureau hors ligne, pour le streaming en direct et pour la relecture instantanée de type nvidia, où seules les dernières secondes sont enregistrées.

Note

Peut maintenant fonctionner en utilisant un compositeur tel que picom en utilisant le backend glx. L'utilisation du backend xrender avec picom corrige ce problème.
Ne fonctionne pas lors de l'utilisation de décorations côté client gtk (comme sur Pop OS). Désactivez-les (si possible), installez gtk-nocsd ou enregistrez le moniteur/écran entier si vous avez NvFBC.
NvFBC ne fonctionne pas avec PRIME, donc si vous utilisez PRIME, vous ne pouvez pas enregistrer le moniteur/écran, vous devez enregistrer une seule fenêtre.
Si vous utilisez un moniteur à taux de rafraîchissement variable, choisissez d'enregistrer "screen-direct". Cela permettra à la fréquence de rafraîchissement variable de fonctionner lors de l'enregistrement d'applications en plein écran. Notez que certaines applications telles que mpv ne fonctionneront pas en mode plein écran. Un correctif est en cours de développement à ce sujet.

Performances

Lors de l'enregistrement de Legend of Zelda Breath of the Wild à 4k, le nombre d'images par seconde passe de 30 à 7 en utilisant OBS Studio + nvenc, mais en utilisant cet enregistreur d'écran, le nombre d'images par seconde reste à 30.
Lors de l'enregistrement de GTA V à 4k avec les paramètres les plus élevés, le nombre de fps chute de 60 à 23 en utilisant obs-nvfbc + nvenc, mais en utilisant cet enregistreur d'écran, le nombre de fps ne chute qu'à 55. La qualité est également bien meilleure en utilisant gpu-screen-recorder.
Il est recommandé de sauvegarder la vidéo sur un SSD en raison de la taille importante du fichier, qu'un disque dur lent pourrait ne pas être assez rapide pour gérer.

Installation

Si vous utilisez une distribution basée sur Arch Linux, vous pouvez trouver gpu screen recorder sur aur sous le nom gpu-screen-recorder-git (yay -S gpu-screen-recorder-git).
Si vous utilisez une distribution basée sur Ubuntu, exécutez le fichier install_ubuntu.sh en tant que root : sudo ./install_ubuntu.sh.\.

Sur les autres distributions, vous devez installer les dépendances manuellement et exécuter build.sh. Dépendances : glew glfw3 cuda ffmpeg libx11 libxcomposite libpulse-simple.
L'enregistrement des moniteurs nécessite un processeur graphique avec le support NvFBC (note : ce n'est pas nécessaire pour l'enregistrement d'une seule fenêtre !) Normalement, seuls les gpus tesla et quadro le supportent, mais en utilisant nvidia-patch ou nvlax vous pouvez le faire sur tous les gpus qui supportent aussi le nvenc (gpus aussi vieux que la série 600 de nvidia), à condition que vous n'utilisiez pas des pilotes de gpu périmés.

Comment utiliser

Lancez interactive.sh ou lancez directement gpu-screen-recorder, par exemple : gpu-screen-recorder -w $(xdotool selectwindow) -c mp4 -f 60 -a "$(pactl get-default-sink).monitor" -o test_video.mp4
Puis arrêtez l'enregistreur d'écran avec Ctrl+C, ce qui sauvegardera également l'enregistrement.
Envoyez le signal SIGUSR1 (killall -SIGUSR1 gpu-screen-recorder) à gpu-screen-recorder quand il est en mode replay pour sauvegarder le replay. Les chemins vers les fichiers sauvegardés sont affichés sur stdout après la sauvegarde de l'enregistrement.
Il existe également une interface graphique pour le gpu-screen-recorder appelée gpu-screen-recorder-gtk.

FAQ

En quoi est-ce différent de l'utilisation d'OBS avec nvenc ?

OBS n'utilise que le processeur graphique pour l'encodage vidéo, mais l'image de la fenêtre qui est encodée est envoyée du processeur graphique au processeur, puis de nouveau au processeur graphique. Ces opérations sont très lentes et sont la cause de toutes les baisses de fps lors de l'utilisation d'OBS. OBS n'utilise efficacement le GPU que sous Windows 10 et Nvidia.
gpu screen-recorder conserve l'image de la fenêtre sur le GPU et l'envoie directement à l'unité d'encodage vidéo sur le GPU en utilisant CUDA. Cela signifie que l'utilisation du CPU reste à environ 0% lors de l'utilisation de cet enregistreur d'écran.

Quelle est la différence avec l'utilisation de FFMPEG avec x11grab et nvenc ?

FFMPEG utilise le GPU avec CUDA uniquement lors du transcodage d'une vidéo d'entrée vers une vidéo de sortie, et non lors de l'enregistrement de l'écran avec x11grab. Donc FFMPEG a les mêmes problèmes de baisse de fps que OBS.

🚧️ Installation [fr]

🔧️ INSTALLATION :

⚙️ Installation à partir du binaire du jeu :

Installation à partir du paquet Manjaro/Arch :
(✔ v. r32.08c76fc-1)
• Il est dans les dépôts Manjaro/Arch (souvent dans sa dernière version), il suffit d'installer le(s) paquet(s).

🚀️ LANCEMENT DE L'INTERFACE:

• Si vous avez installé le jeu à partir d'un paquet, ou l'avez compilé puis installé dans les répertoires système : Alt F2 puis saisissez : gpu-screen-recorder-gtk

🔍️ Test [fr]

🕵️ Test (✔ v. r32.08c76fc-1 des dépôts AUR Manjaro/Arch) par goupildb (config. : Manjaro 64-bit) :
Le : 17 avril 2022
⏱️ Durée du test : 5 minutes.

💻️ Configuration utilisée:
Distribution Linux: Manjaro
Noyau : 5.17.1-3
Driver graphique : NVIDIA 510.60.02 (version propriétaire, via Manjaro)aro)

CPU : AMD Ryzen 7 2700X (8 coeurs)
Carte mère : MSI B450 GAMING PRO CARBON AC (RVB)
RAM : 32Go
Carte graphique : GeForce RTX 2070
Écrans : 2 écrans ASUS ROG de 3440x1440 pixels
Clavier : Roccat Vulcan (RVB)
Souris : G-Lab Kult-Iridium (RVB)
Joystick : Logitech Rumblepad (2 pads analogiques, un pad numérique, et retour de force).


🎯️ Objectif de ce test: tester l'enregistrement de l'écran pour vérifier le fonctionnement du paquet des dépôts.

L'interface est très simple et claire.

👍️En mode Window, il suffit de cliquer sur le bouton "Select window", puis sur la fenêtre à enregistrer, puis sur le bouton "Record", puis de sélectionner le nom du fichier et son emplacement, et sur le bouton "Start recording" pour déclencher l'enregistrement. Cet enregistrement se poursuit jusqu'à ce que l'on clique sur le bouton "Stop recording". Ça fonctionne bien. Je n'ai pas mesuré la fréquence d'enregistrement, j'ai enregistré une vidéo YouTube sans lague.

👎️J'ai testé d'autres modes : "Focused window", "Monitor DP-x(...)", "All monitors (HEVC, NvFBC)", mais à chaque fois je reçois un message d'erreur "GPU Screen Recorder: Failed to save the recording" quelque-soit l'emplacement choisi (bug visiblement).

🕹️ Conclusion :
Impression globale : 👍️
Sur ma configuration et avec le paquet des dépôts dans cette version, seul le mode Window est fonctionnel (permet d'enregistrer une fenêtre du bureau), ce qui est déjà très bien.
A suivre pour les autres modes (je n'ai pas testé la compilation de l'outil, et donc d'autres versions plus récentes).
👏️ ❤️ Un grand bravo et merci à son auteur !