Linux Screen Recording
~2 minutes read
This note describes which software I use to record the screen on a Linux system.
SimpleScreenRecorder is a free and open source software that can capture video and audio for the entire screen or a specific frame. It also supports a variety of recording format.
To install it: sudo apt install simplescreenrecorder
The shortcut should be visible from the main menu. The software will allow us to:
- Select which area/window/screen to record.
- Select the frame rate (images per second). More means smoother video but also larger output file.
- Choose the audio source. To get access to the microphone, you might need to change the Backend option and figure the Source out. It might depend on the OS and the audio server used.
Then, comes the codecs used for audio/video:
It is possible to lower the bit rate for smaller file size which will impact the quality.
Finally, you can choose the keyboard hotkey to start the recording:
It is perfect to make screen records. This output below just weights 50 kB due to its low frame rate, bit rate and webm file extension.
Then looking for optimization, it's possible to improve the size of the video using ffmpeg:
ffmpeg -i input.webm \
-c:v libvpx-vp9 -b:v 0 -crf 50 -pass 1 -an \
-deadline best -row-mt 1 \
-f null /dev/null && \
ffmpeg -i input.webm \
-c:v libvpx-vp9 -b:v 0 -crf 50 -pass 2 \
-deadline best -row-mt 1 \
-c:a libopus \
output.webm
Resulting in a final file size of 11 kB.
The CRF would need to be adjusted according to what kind of video is recorded in the future to not make the quality loss obvious. In the example above, the view is static with very low color range which does not show a huge difference.
Resources
- FFmpeg and VP9 Encoding Guide (FFmpeg)
- VP8 Encode Parameter Guide (The WebM Project)
- Complete list of ffmpeg flags / commands (GitHub)