ReplaySorcery - Le Bottin des Jeux Linux

ReplaySorcery

🗃️ Specifications

📰 Title: ReplaySorcery 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Tool 🚦 Status: 04. Released (status)
🏷️ Category: Tool ➤ Screencast 🌍️ Browser version:
🔖 Tags: Tool; Screencast; Video Recording; Multimedia 📦️ Package Name:
🐣️ Approx. start: 2020-06-28 📦️ Arch package: ✓
🐓️ Latest: 2021-07-29 📦️ RPM package:
📍️ Version: Latest: 0.6.0 / Dev: d8d5921 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: GPL-3 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package:
👁️ Visual: 2D ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb & Louis
🎰️ ID: 15905 🐛️ Created: 2020-08-20
🐜️ Updated: 2023-04-14

📖️ Summary

[en]: A free tool to record a video clip of the last 30 seconds of an application's operation (for example to promote it). ReplaySorcery is run before the application is launched and records the screen continuously; pressing a combination of keys triggers the production of the video in x264 format. [fr]: Un outil libre permettant d'enregistrer un extrait vidéo des 30 dernières secondes du fonctionnement d'une application (pour par exemple en faire la promotion). ReplaySorcery est exécuté préalablement au lancement de l'application et enregistre l'écran en permanence ; l'appui sur une combinaison de touches déclenche la production de la vidéo au format x264.

🎥️ Videos

🐧 Linux plays: Michael Tunnell - TuxDigital, Sir Rob Linux Games [pt]

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) ts(202xxx) gd(202xxx) gu(202xxx) id(202xxx) r(202xxx) lp(202xxx) lp[pt] g(202xxx) 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 (ReplaySorcery Team 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Joshua Minter (Pip, matanui159) [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
[HOLaRSE [de]]

📦️ 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 (20200727)]

🐘 Social Networking Update (on Mastodon)

🛠️ Title: ReplaySorcery
🦊️ What's: A libre tool to record a video clip (last 30 seconds) of an application
🏡️ -
🐣️ https://github.com/matanui159/ReplaySorcery
🔖 #LinuxTool #Screencast
📦️ #Libre #Arch
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 0.6.0
⚗️ New features 💎
📌️ Changes: https://github.com/matanui159/ReplaySorcery/releases/tag/0.6.0
🐘 From:
https://mastodon.social/@holarse/106556516210823274
https://mastodon.social/@gamingonlinux/106579506187481894
🦝️ https://invidious.lunar.icu/5C46vyAnieM?start1642

📕 Description [en]

📕🐧"A libre tool to record a video clip (last 30 seconds) of an application"🐧📕.

An open-source, instant-replay solution for Linux.

Back when I used to use windows I used AMD ReLive alot. It, and the nVidia version ShadowPlay Instant Replay, will constantly record the screen without using too much computer resources and at the press of a keycombo will save the last 30 seconds.

I wanted something like this for Linux...

I got tired waiting for someone else to do it.

What is wrong with OBS?

A lot of people online suggest using OBS's replay buffer feature. However this requires opening OBS and start recording. I do not know when something will happen that I want to share. Might not even happen while playing a game. I just want something in the background (like a systemd service) so that whenever something happens I can record it.

Why JPEG? Why not hardware-accelerated encoding?

You might notice that this uses JPEG to encode frames. Initially the plan was to use hardware-accelerated encoding. However, since there is currently no way to grab frames directly on the GPU, sending frames to the GPU and encoded packets back became a huge bottleneck that limited me to no more than ~40-50 FPS and lagged basically any game I tried playing. I changed plan of attack based on the idea that:

• most of the frames will probably get discarded so why bother working hard on them?
• we can reencode them properly when we need to save
• the inital encoding of the frames can be cheap and is more a form a memory-compression
• turns out that an image format from 1992 is very easy for modern computers

Thus, this program does use JPEG (specifically libjpeg-turbo) for encoding frames, but then switches to x264 when you want to save it. The compressed frames are stored temporarily in memory inside a circle buffer which will automatically grow and shrink depending on the compressability of the frames, while also allowing space for future growth without many resizes.

📕 Description [fr]

Un outil permettant d'enregistrer un extrait vidéo (les dernières 30 secondes) d'une application, par la ReplaySorcery Team, initié par Joshua Minter (Pip, matanui159).
En C.

ReplaySorcery est un outil libre permettant d'enregistrer un extrait vidéo des 30 dernières secondes du fonctionnement d'une application (pour par exemple en faire la promotion). ReplaySorcery est exécuté préalablement au lancement de l'application et enregistre l'écran en permanence ; l'appui sur une combinaison de touches déclenche la production de la vidéo au format x264.


Une solution open-source de relecture instantanée pour Linux.

À l'époque où j'utilisais Windows, j'ai beaucoup utilisé AMD ReLive. Ce logiciel, ainsi que la version nVidia de ShadowPlay Instant Replay, enregistre en permanence l'écran sans utiliser trop de ressources informatiques et, sur simple pression d'un bouton, sauvegarde les 30 dernières secondes.

Je voulais quelque chose comme ça pour Linux...

J'en ai eu assez d'attendre que quelqu'un d'autre le fasse.

Quel est le problème avec OBS ?

Beaucoup de personnes en ligne suggèrent d'utiliser la fonction de tampon de relecture d'OBS. Cependant, cela nécessite d'ouvrir OBS et de commencer l'enregistrement. Je ne sais pas quand il va se passer quelque chose que je veux partager. Il se peut même que cela ne se produise pas en jouant à un jeu. Je veux juste quelque chose en arrière-plan (comme un service systemd) afin de pouvoir enregistrer chaque fois qu'il se passe quelque chose.

Pourquoi le JPEG ? Pourquoi pas un encodage accéléré matériellement ?

Vous remarquerez peut-être que ce système utilise JPEG pour encoder les images. Au départ, il était prévu d'utiliser l'encodage accéléré matériellement. Cependant, comme il n'y a actuellement aucun moyen de récupérer des images directement sur le GPU, l'envoi d'images au GPU et le retour de paquets encodés sont devenus un énorme goulot d'étranglement qui m'a limité à environ 40-50 FPS et a retardé pratiquement tous les jeux auxquels j'ai essayé de jouer. J'ai changé de plan d'attaque en me basant sur l'idée que :

• la plupart des images seront probablement rejetées, alors pourquoi s'embêter à travailler dur dessus ?
• nous pouvons les réencoder correctement lorsque nous devons sauvegarder
• l'encodage initial des images peut être économique et constitue plutôt une forme de compression de la mémoire
• il s'avère qu'un format d'image datant de 1992 est très facile à utiliser pour les ordinateurs modernes

Ainsi, ce programme utilise bien le JPEG (plus précisément libjpeg-turbo) pour encoder les images, mais passe ensuite à x264 lorsque vous voulez l'enregistrer. Les images compressées sont stockées temporairement en mémoire dans un tampon circulaire qui s'agrandit et se réduit automatiquement en fonction de la compressibilité des images, tout en laissant de l'espace pour une croissance future sans redimensionnement.