How To Record Screen In Linux With Obs And Wayland Tumbnail

How to record screen in Linux With OBS Studio and Wayland

Though several screen recording application is available for Linux most of then can’t support Wayland display server protocol.

So, in this tutorial you will I’ll show How to record screens in Linux With OBS and Wayland with images.

What is Wayland?

Wayland is a communication protocol officially used in Linux that is responsible to establish communication between the display server and its clients.

Remember OBS version 27+ is only working on Wayland with Pipewire. But still installing it properly is a geeky task. So, I am going to show step by step process to install the OBS studio on Linux.

Installing and using the OBS Studio

Step 1: Install OBS Studio

First, you have to install OBS Studio version 27. It is already included in Ubuntu 21.10 which I am using in this tutorial.

sudo apt install obs-studio

To install the OBS Studio on Ubuntu 18.04, 20.04, Linux Mint 20, etc, you must have to use the official OBS studio PPA. So, run the following command one by one.

sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio

Don’t worry if there is any old version is already installed in your Linux then it will be upgraded to version 27.

RedHat-based Linux users may find it in their package manager.

Step 2: Check your OBS studio is working or not

First, make sure that you are using Wayland on your Linux and open the OBS Studio. Press the Super key (Windows key) and search for OBS Studio. Finally, click on the OBS Studio icon to start the application.

Next, Click this “+” icon to add Pipewire

How To Record Screen In Linux With Obs And Wayland

Select Screen Capture (Pipewire).

How To Record Screen In Linux With Obs And Wayland

If you don’t see it there, no worries. This normal. This means your OBS Studio is not switched to use Wayland automatically.

Follow the below steps to fix this.

Open a terminal and use the following command one by one:

export QT_QPA_PLATFORM=wayland
obs-studio

The result of this command is shown below.

beauty@Beauty:~$ export QT_QPA_PLATFORM=wayland
beauty@Beauty:~$ obs
Command 'obs' not found, but can be installed with:
sudo apt install obs-studio
beauty@Beauty:~$ obs-studio
(process:22896): Gtk-WARNING **: 07:20:30.457: Locale not supported by C library.
Using the fallback 'C' locale.
Gtk-Message: 07:20:30.524: Failed to load module "canberra-gtk-module"
Gtk-Message: 07:20:30.525: Failed to load module "canberra-gtk-module"
Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/themes/Dark.qss
Attempted path: /usr/share/obs/obs-studio/themes/Dark.qss
info: User enabled --multi flag and is now running multiple instances of OBS.
info: Command Line Arguments: --multi
info: CPU Name: Intel(R) Core(TM) i5-3337U CPU @ 1.80GHz
info: CPU Speed: 1000.000MHz
info: Physical Cores: 2, Logical Cores: 4
info: Physical Memory: 7755MB Total, 553MB Free
info: Kernel Version: Linux 5.11.0-37-generic
info: Distribution: "Ubuntu Core" "20"
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.20.11
info: Portable mode: false
Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg
Attempted path: /usr/share/obs/obs-studio/themes/Dark/no_sources.svg
QMetaObject::connectSlotsByName: No matching signal for on_tbar_position_valueChanged(int)
QMetaObject::connectSlotsByName: No matching signal for on_actionShowTransitionProperties_triggered()
QMetaObject::connectSlotsByName: No matching signal for on_actionHideTransitionProperties_triggered()
info: OBS 27.1.3-modified (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
samples per sec: 48000
speakers:        1
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter Intel Open Source Technology Center Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)
info: OpenGL loaded successfully, version 4.2 (Core Profile) Mesa 21.0.3, shading language 4.20
info: ---------------------------------
info: video settings reset:
base resolution:   1366x768
output resolution: 1364x768
downscale filter:  Bicubic
fps:               30/1
format:            NV12
YUV mode:          709/Partial
info: NV12 texture support not available
info: Audio monitoring device:
name: Default
id: default
info: ---------------------------------
info: [StreamFX] Loading Version 0.10.1.0-gc8484f65
info: [StreamFX] Loaded Version 0.10.1.0-gc8484f65
info: [adv-ss] version: 3b465e1fdc7feb87599c6a914c2dca815117e2e7
info: [adv-ss] curl loaded successfully
info: [adv-ss] found curl library
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-ouput-ui.so'
info: [Downstream Keyer] loaded version 0.2.1
info: [Freeze Filter] loaded version 0.3.2
info: [Gradient Source] loaded version 0.2.0
info: [pango]: Loaded system fontconfig
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
warning: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
info: No blackmagic support
warning: v4l2loopback not installed, virtual camera disabled
error: [linux-vkcapture] linux-vkcapture cannot run on non-EGL platforms
warning: Failed to initialize module 'linux-vkcapture.so'
info: [Move Transition] loaded version 2.5.1
error: os_dlopen(libnvidia-fbc.so.1->libnvidia-fbc.so.1): libnvidia-fbc.so.1: cannot open shared object file: No such file or directory
error: Unable to load NvFBC library
warning: Failed to initialize module 'nvfbc.so'
warning: Failed to load 'en-US' text for module: 'obs-audio-pan-filter.so'
info: [obs-audio-pan-filter] plugin loaded successfully (version 0.1.2)
info: [obs-browser]: Version 2.16.3
info: [obs-browser]: CEF Version 87.1.14+ga29e9a3+chromium-87.0.4280.141
error: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: No such file or directory
info: FFMPEG VAAPI supported
warning: Failed to load 'en-US' text for module: 'obs-gphoto.so'
info: obs-gstreamer build: 9ed970d
info: [obs-ndi] hello ! (version 4.9.1)
info: [obs-ndi] Trying ''
info: [obs-ndi] Trying '/usr/lib'
info: [obs-ndi] Trying '/usr/local/lib'
info: [obs-ndi] Found NDI library at '/usr/local/lib/libndi.so.4'
info: [obs-ndi] NDI runtime loaded successfully
info: [obs-ndi] NDI library initialized successfully (NDI SDK LINUX 18:32:11 Jun 30 2020 4.5.3)
warning: Failed to load 'en-US' text for module: 'obs-vnc.so'
info: [obs-vnc] plugin loaded successfully (version 0.4.0)
info: [obs-websocket] you can haz websockets (version 4.9.1)
info: [obs-websocket] qt version (compile-time): 5.15.2 ; qt version (run-time): 5.15.2
info: [obs-websocket] module loaded!
info: [Replay Source] loaded version 1.6.9
info: [Source Copy] loaded version 0.1.3
info: [Source Record] loaded version 0.2.6
info: [Source Switcher] loaded version 0.3.0
info: [spectralizer] Loading v1.3.2 build time 2021.10.12 13:32
info: [TimeWarpScan] loaded version 0.1.6
info: [Transition Table] loaded version 0.2.2
info: VLC found, VLC video source enabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     transition-table.so
info:     time-warp-scan.so
info:     text-freetype2.so
info:     spectralizer.so
info:     source-switcher.so
info:     source-record.so
info:     source-copy.so
info:     sndio.so
info:     rtmp-services.so
info:     replay-source.so
info:     recursion-effect.so
info:     obs-x264.so
info:     obs-websocket.so
info:     obs-vst.so
info:     obs-vnc.so
info:     obs-transitions.so
info:     obs-rtspserver.so
info:     obs-rgb-levels-filter.so
info:     obs-outputs.so
info:     obs-ndi.so
info:     obs-libfdk.so
info:     obs-gstreamer.so
info:     obs-gphoto.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     obs-browser.so
info:     obs-audio-pan-filter.so
info:     nvfbc.so
info:     move-transition.so
info:     linux-vkcapture.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-jack.so
info:     linux-decklink.so
info:     linux-capture.so
info:     linux-alsa.so
info:     libtext-pango.so
info:     image-source.so
info:     gradient-source.so
info:     frontend-tools.so
info:     freeze-filter.so
info:     dynamic-delay.so
info:     dvd-screensaver.so
info:     downstream-keyer.so
info:     dir-watch-media.so
info:     decklink-ouput-ui.so
info:     decklink-captions.so
info:     advanced-scene-switcher.so
info:     StreamFX.so
info: ---------------------------------
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'pulseaudio 13.99.1'
info: pulse-input: Audio format: s16le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_00_1b.0.analog-stereo.monitor'
info: [Loaded global audio device]: 'Desktop Audio'
info: pulse-input: Server name: 'pulseaudio 13.99.1'
error: pulse-input: An error occurred while getting the source info!
info: [Loaded global audio device]: 'Mic/Aux'
info: pulse-input: Server name: 'pulseaudio 13.99.1'
error: pulse-input: An error occurred while getting the source info!
info: [Loaded global audio device]: 'Mic/Aux 2'
info: pulse-input: Server name: 'pulseaudio 13.99.1'
error: pulse-input: An error occurred while getting the source info!
info: [Loaded global audio device]: 'Mic/Aux 3'
info: pulse-input: Server name: 'pulseaudio 13.99.1'
error: pulse-input: An error occurred while getting the source info!
info: [Loaded global audio device]: 'Mic/Aux 4'
info: xshm-input: Geometry 1366x768 @ 0,0
info: v4l2-input: Start capture from /dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0
info: v4l2-input: Input: 0
info: v4l2-input: Resolution: 640x480
info: v4l2-input: Pixelformat: YUYV
info: v4l2-input: Linesize: 1280 Bytes
info: v4l2-input: Framerate: 30.00 fps
info: v4l2-input: /dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0: select timeout set to 166666us (5x frame periods)
info: Switched to scene 'Scene'
info: [adv-ss] trying to reconnect to  in 10 seconds.
info: [adv-ss] started
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info:     - source: 'Screen Capture (XSHM)' (xshm_input)
info:     - source: 'Video Capture Device (V4L2)' (v4l2_input)
info:     - source: 'Mic/Aux' (pulse_input_capture)
info: ------------------------------------------------
info: [obs-websocket] WSServer::start: Not locked to IPv4 bindings
error: v4l2-input: /dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0: select timed out
error: v4l2-input: /dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0: failed to log status
info: [obs-websocket] server started successfully on port 4444
info: [obs-websocket] IO thread started.
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /usr/share/obs/obs-studio/images/overflow.png
error: v4l2-input: /dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0: select timed out
error: v4l2-input: /dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0: failed to log status
info: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Desktop Audio)

Ignore them. Your main focus should be on your OBS Studio GUI.

How To Record Screen In Linux With Obs And Wayland

You should see the option now as Screen capture (PipeWire) as shown on the above screen.

After this, it will ask you to choose a display screen. Select Built-in display and click on the Share button on the next screen.

How To Record Screen In Linux With Obs And Wayland 2

Now click the start recording button from the bottom right corner of your OBS Studio.

Step 3: Save these changes permanent

So, you just verified running your OBS Studio via Wayland. To make it permanent running via Wayland you need to export the variable to your ~/.bash_profile (for you) or /etc/profile (for all users on the system).

export QT_QPA_PLATFORM=wayland

Finally, logout out and log back in. Now your OBS studio should run automatically on Wayland.

Hope you like this tutorial. Have a great day.

Boost Your Site With Our SEO Tips

Avatar Of Iqbal Hussain

About the Author: Iqbal Hussain

Creator of hiGeeky. A young IT master & geek promoter. Believes in sharing knowledge. The world seems to be more beautiful when I can share and share my own with others, strive to increase the happiness of others, and sometimes empty what I have.

You May Also Like

Leave a Reply

Thanks for choosing to leave a reply. Your opinions and comments are very important to us, and your email address will NOT be published. If you need a private conversation then use our contact form.

Share this post »



Visual-composer-banner

Thanks for Subscribing!

 

We’ve sent you an email with a coupon code link at the email address you provided that will help you create your own blog 🙂

 


 

You may also want to join our free HiGeeky Engage group on Facebook.

Join HiGeeky Engage Group (It’s Free)

Disclaimer

Hi geeky, We are using affiliate links & images from respective product sites in our articles occasionally, means that if you click on one of the links and purchase an item, we may receive a commission (at no additional cost to you). All the reviews & opinions (positive or negative) are 100% our own. We are not getting any money to write them. The trademarks mentioned in this website belong to the respective companies. All the articles are information purpose only, to help someone to educate & save money. In case any problem with the content, you can reach us anytime through our contact us page »