Screen Recording in Linux With OBS and Wayland
There are tons of screen recorders available for Linux. But when it comes to supporting Wayland, almost all of them do not work.
This is problematic because many new distribution releases are switching to Wayland display manager by default once again. And if something as basic as a screen recorder does not work, it leaves a bad experience.
GNOMEโs built-in screen recorder works but it is hidden, has no GUI and no way to configure and control the recordings. There is another tool called Kooha but it keeps on displaying a timer on the screen.
Switching between Xorg and Wayland just for screen recording is not very convenient.
Amidst all this, I was happy to learn that Wayland support landed in OBS Studio with version 27 release thanks to Pipewire. But even there, itโs not straightforward and hence I am going to show you the steps for screen recording on Wayland using OBS Studio.
Using OBS to screen record on Wayland
Letโs see how it is done.
Step 1: Install OBS Studio
You should install OBS Studio version 27 first. It is already included in Ubuntu 21.10 which I am suing in this tutorial.
To install OBS Studio 27 on Ubuntu 18.04, 20.04, Linux Mint 20 etc, use the official OBS Studio PPA.
Open a terminal and use the following commands one by one:
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio
If there is an older version of OBS Studio installed already, it will be upgraded to the newer version.
For Fedora, Arch and other distributions, please check your package manager or unofficial repositories for installing the latest version of OBS Studio.
Step 2: Check if Wayland capture is working
Please make sure that you are using Wayland. Now start OBS Studio and go through all the stuff it shows on the first run. I am not going to show that.
The main step is to add Pipewire as a screen capture source. Click on the + symbol under the Sources list.
Do you see anything that reads Screen Capture (PipeWire)?
If the answer is no, quit OBS Studio. This is normal. OBS Studio does not switch to use Wayland automatically in Ubuntu at least. There is a fix for that.
Open a terminal and use the following command:
export QT_QPA_PLATFORM=wayland
In the same terminal, run the following command to start OBS Studio:
obs
It will show some message on the terminal. Ignore them. Your focus should be on the OBS Studio GUI. Try to add screen capture once again. You should see the PipeWire option now.
You explicitly asked OBS Studio to use Wayland this time with the QT_QPA_PLATFORM variable.
Select PipeWire as the source and then it asks you to choose a display screen. Select it and click on the Share button.
Now it should show your screen recursively infinite number of times. If you see that, you could start recording the screen in Wayland now.
Step 3: Make changes permanent
That was good. You just verified that you can record your screen on Wayland. But setting the environment variable and starting OBS from the terminal each time is not convenient.
What you can do is to export the variable to your ~/.bash_profile (for you) or /etc/profile (for all users on the system).
export QT_QPA_PLATFORM=wayland
Log out and log back in. Now OBS will automatically start using this parameter and you can use it to record your screen in Wayland.
I hope you find this quick tip helpful. If you still have questions or suggestions, please let me know in the comment section.