Install OBS Studio on Pop!_OS 22.04

Introduction

In this post I will document my installation of OBS Studio , on Pop!_OS 22.04, equivalvent to installing on Ubuntu 22.04. If you are not familiar with OBS Studio, it is a feature-rich application for creating videos as well as streaming to platforms like YouTube and Twitch. For (external) reference, I will be following the Linux installation instructions at github .

Prerequisites

The installation instructions list some prerequisites that I will check below:

  • First, we check the xserver-xorg version is 1.18.4 or newer. The best(?) way I could find to do this is:
    $ sudo X -version

    X.Org X Server 1.21.1.4
    X Protocol Version 11, Revision 0
    .
    .
    xorg-server 2:21.1.4-2ubuntu1.7~22.04.10 (For technical support please see http://www.ubuntu.com/support)
    Current version of pixman: 0.40.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    This seems to indicate the version is 1.21.1.4, newer than 1.18.4, so we're good here.
  • Next, OpenGL 3.3 (or later) is required. The documentation suggest using the command
    $ glxinfo | grep "OpenGL"[11ty] Benchmark    190ms   9%   873× (Configuration) "slugify" 
    Command 'glxinfo' not found, but can be installed with: │JavaScript Function
    sudo apt install mesa-utils
    However, this requires mesa-utils to be installed, as seen above. So, to check the version, I did:
    $ sudo apt install mesa-utils
    $ glxinfo | grep "OpenGL"[11ty] Benchmark 190ms 9% 873× (Configuration) "slugify"
    OpenGL vendor string: Intel
    OpenGL renderer string: Mesa Intel(R) Xe Graphics (TGL GT2)
    OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.0.3-1pop1~1711635559~22.04~7a9f319
    OpenGL core profile shading language version string: 4.60
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
    OpenGL core profile extensions:
    OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.0.3-1pop1~1711635559~22.04~7a9f319
    OpenGL shading language version string: 4.60
    OpenGL context flags: (none)
    OpenGL profile mask: compatibility profile
    OpenGL extensions:
    OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.0.3-1pop1~1711635559~22.04~7a9f319
    OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
    OpenGL ES profile extensions:
    A simple change gives only the essential information:
    $ glxinfo | grep "OpenGL version"
    OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.0.3-1pop1~1711635559~22.04~7a9f319
    From this output, it is clear that we have version 4.6, which is greater than 3.3.
  • Finally, virtual camera support (for using OBS Studio output as a virtual camera for Zoom and similar things) the following install is required:
    $ sudo apt install v4l2loopback-dkms

Installation

With the prerequisites out of the way, the install is pretty simple. Note that for Ubuntu the multiverse repo should be enabled if it is not already. Finally the installation is done by adding a ppa:

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

Installation on Pop!_OS 22.04 went fine using the command above.

Getting OBS Studio to work...

Hitting the super key and searching for OBS Studio started the program without issues. In Pop!_OS 22.04, right-clicking on the OBS Studio icon, located on the dock, allowed me to add OBS Studio to my favortes. The icon now remains on the dock for easy launch on OBS Studio with one click.

Problems...?

Below I will document issues I had and how I solved, when possible.

  • I added my laptop camera, as a video capture device, to OBS Studio and tried to record a test video. However, this failed with complaints about NVEC and NVIDIA. A search online suggested that I switch to software encoding at Settings > Output > Recoding > Video Encoder. At first this did not work, but a computer reboot seemed to clear things up-- OBS Studio can "hang" when this is changed and needs a "force quit".