Updated: December 17, 2022
Let's start with a spoiler. Recording one's desktop in Linux is a fairly easy task. There are tons of tools that can do the job. Over the years, I've tested perhaps half a dozen of them, and even wrote a bunch of articles, both tutorials and reviews, right here on Dedoimedo. But I last did that in anger around 2010-ish. An infinity ago in Internet terms.
Indeed, it has been quite a while since I last had an actual need to record my Linux desktop session screen. But the need did arise, and I wondered whether to go back to my oldies and hopefully still goldies or start from scratch. I opted for the latter, as it makes for a better blog post material. So let's have a look at a lovely little program called SimpleScreenRecorder, which will be our hero savior of the day.
Wait, wait, wait, what about VLC or ffmpeg?
Okay. As you know, I love both these programs. VLC is phenomenal, and can do tons of excellent things. Similarly, ffmpeg is pretty much your one shop stop for all things media. IF you're a nerd. If you're a regular user, you may find the learning curve a bit steep.
Let me briefly explain. VLC can record your desktop just fine. But by default, this may not work. The actual functionality depends on how VLC was compiled or built or packaged for your particular Linux edition. For instance, you may see the following error:
Your input can't be opened: VLC is unable to open the MRL 'screen://'. Check the log for details.
This doesn't really help ordinary people, now does it? The error can be resolved by installing an extra package from the distro's repository archive - for instance, on Debian- or Ubuntu-based systems:
sudo apt-get install vlc-plugin-access-extra
But then, this depends on whether the distro has the relevant package available in the repos, how the package is named, and if VLC has been compiled to use the feature. Furthermore, in some cases, VLC may not use hardware acceleration. This means that video decoding (and in particular, encoding) may be done entirely in the CPU, with no GPU help, resulting in high utilization. But more importantly, you may see frames being dropped and/or choppy playback (on the recorded stream). Nerds can resolve all these issues, but ordinary folks cannot.
The same set of conditions applies to ffmpeg, if in a slightly different guise. And so we will use a different program.
The program is a Linux tool that will record your desktop video - in the author's words, he wasn't happy with the available repertoire, so he made his own. Typically, this isn't exactly the best way to avoid duplication, but if the new software can actually do a better job than its rivals, competitors or whatnot, then well, mission accomplished.
SimpleScreenRecorder is a simple [sic], wizard-driven tool with just four (well five) steps, including the main page. Your first step is to decide on your input. You can record the entire screen, a rectangular area, follow the mouse cursor, or record OpenGL applications directly. The program also has a number of preset profiles available, and you can also create your own, allowing you to quickly switch between them.
You can scale the video, set the desired framerate, remove the mouse cursor from the recording, and also add audio input, including both ALSA and Pulse. On the video front, SimpleScreenRecorder can capture all of your screens, so if you have multiple video streams across several monitors, they can all be recorded. This is a great feature.
Next, you need to choose your output. There are several profiles available, including options like Live Stream at different bitrates, Youtube and alike. You need to choose the output file and the desired container. Then, you need to select the audio and video codecs. The really cool thing is that you can choose the quality of encoding, so if you don't necessarily have the most powerful computer, you will still be able to capture the video feed without stuttering or lag or frame drops.
The next step is to actually start recording. You can preview what will be captured. If it's the entire desktop session, then you will see an infinite loop of video frames, as I've shown you in my camera loop physics article. But that's just innocent fun. You can begin the recording right then or use a hotkey, which is another great feature, as it lets you switch to the actual application or view port or whatnot before you initiate the data capture. This will save you time post-editing the recorded video by cropping the first few seconds, which can indeed be done using ffmpeg!
I tested the functionality on my fairly old 2015 IdeaPad laptop, which has a humble i3 processor and basic i915 graphics. I was able to record the 1366x768px desktop at 30fps, which would amount to a decent 720p video without any problems, lag or stutters. The CPU did not scream or whistle, it all went smoothly and elegantly.
Once you're done, save the file, and that's it. Of course, some final tweaks might be need, usually the removal of the first and last few seconds of the recording, but other than that, SimpleScreenRecorder does the job without fussing, without stressing your machine, and without any need for nerdy credentials.
In many aspects, the Linux desktop has not progressed much since 2010 or so. In a few areas, it has definitely stagnated and even regressed. But in others, there's solid improvement, and the video & audio area is one of those happy scenarios. You can accomplish a fair deal of tasks quite easily, and there's a great range of tools available. SimpleScreenRecorder is an excellent choice for desktop recording and streaming tasks. There's no need to go overboard. No need for heavy guns.
I have to say this little utility has quickly gone from a test specimen to a keeper. I mean yes, I spoiled the message of this review early on, and the application's name is sort of a self-prophetic indication of its capabilities (or developer's hubris), but in this case, it delivers. Simple installation, simple usage mode, simple yet clever functionality, good results, excellent overall experience. Need to record your Linux desktop session? SimpleScreenRecorder. There you go.