Skip to content

TEB Beta Linux Installation

Alex Luccisano edited this page Dec 17, 2024 · 10 revisions

Introduction

The TEB (Twitch Enhanced Broadcasting) closed-beta program involves a custom build of OBS Studio with additional features that are being tested before upstreaming to OBS Studio. The TEB beta program supported Windows 10/11 from the start, and Linux is now supported as of November 2024.

Users outside of the closed-beta community can also use the TEB beta Linux builds, however the configuration supplied by the server will not enable advanced features available to the closed-beta community such as HEVC testing.

The instructions in this topic focus on installing the TEB beta build on Linux hosts. Please read through the options carefully and choose an option that best suits your needs. The installation steps involve the terminal/shell.

It is very common for users to have a primary or stable version of OBS Studio installed for day-to-day usage, and the testers in the beta program typically have one or more additional installations of the TEB beta alongside it. This arrangement usually involves the OBS portable mode, where configuration data is stored in a location outside the common shared configuration directory. This arrangement allows each installation to keep it's configuration separate which is a good idea during beta programs and testing. Options for separating the configuration folder are covered in each section below.

Linux-based distributions support several software packaging and application distribution formats, and for the TEB Linux beta we are currently providing the following:

  1. Flatpak-based build in a single-file bundle
  2. DEB packages built from the regular OBS Studio scripts (Ubuntu 24.04)
  3. Standalone build (Ubuntu 24.04) similar to the Windows-based releases where the files are decompressed into a folder and run from there
  4. Source code

Please check the GPU driver requirements before starting the installation.

Installation steps for each option is covered in detail in the sections below.

Please join us in the Twitch open-beta-linux-support Discord room for feedback, support, and discussion.

Flatpak

The TEB flatpak is built as a single-file bundle. Download the flatpak from the TEB releases section, then choose one of the two options for installing the flatpak on your system:

  1. Using a separate configuration folder for the TEB beta (this option is recommended)
  2. Using a common configuration folder for all installations of application ID=com.obsproject.Studio (we do not recommend this option)

Separate Configuration

This is similar to the "portable mode" concept in OBS Studio, but for flatpaks. It uses a separate "HOME" directory to install a custom flatpak data folder which can be deleted once the TEB beta flatpak is no longer needed. Credit to this blog post for documenting this technique; please refer to the link for additional detail such as setting up scripts to make starting the application easier.

In the example below the custom data folder is called teb-beta-fp, located in the users home directory. You can pick any directory name and location, as long as you have write permission in the chosen directory.

mkdir /home/$USER/teb-beta-fp
env HOME=/home/$USER/teb-beta-fp flatpak install --user obs-studio-31.0.0-enhanced-broadcasting-v42-flatpak.flatpak

The output of the command above is shown below for reference. The warning about the XDG_DATA_DIRS environment variable can be ignored for the TEB beta program:

Note that the directory 

'/home/alexlocal/teb-beta-fp/.local/share/flatpak/exports/share'

is not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.

The application com.obsproject.Studio depends on runtimes from:
  https://dl.flathub.org/repo/
Configure this as new remote 'flathub' [Y/n]: Y
Required runtime for com.obsproject.Studio/x86_64/teb-beta (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub
Do you want to install it? [Y/n]: Y

Info: runtime org.kde.Platform branch 6.6 is end-of-life, with reason:
   We strongly recommend moving to the latest stable version of the Platform and SDK
Info: applications using this runtime:
   com.obsproject.Studio

com.obsproject.Studio permissions:
    ipc        network        fallback-x11           pulseaudio             wayland
    x11        devices        file access [1]        dbus access [2]        system dbus access [3]

    [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0
    [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, org.kde.KGlobalSettings,
        org.kde.StatusNotifierWatcher, org.kde.kconfig.notify
    [3] org.freedesktop.Avahi


        ID                                                      Branch               Op          Remote                 Download
 1. [✓] org.freedesktop.Platform.GL.default                     23.08                i           flathub                163.6 MB / 163.9 MB
 2. [✓] org.freedesktop.Platform.GL.default                     23.08-extra          i           flathub                 22.6 MB / 163.9 MB
 3. [✓] org.freedesktop.Platform.GL.nvidia-550-120              1.4                  i           flathub                307.9 MB / 308.0 MB
 4. [✓] org.freedesktop.Platform.openh264                       2.2.0                i           flathub                886.7 kB / 944.3 kB
 5. [✓] org.gtk.Gtk3theme.Yaru                                  3.22                 i           flathub                139.3 kB / 191.5 kB
 6. [✓] org.kde.Platform.Locale                                 6.6                  i           flathub                 18.0 kB / 392.4 MB
 7. [✓] org.kde.PlatformTheme.QGnomePlatform                    6.6                  i           flathub                  9.7 MB / 9.7 MB
 8. [✓] org.kde.WaylandDecoration.QAdwaitaDecorations           6.6                  i           flathub                  1.2 MB / 1.2 MB
 9. [✓] org.kde.Platform                                        6.6                  i           flathub                265.9 MB / 334.4 MB
10. [✓] com.obsproject.Studio                                   teb-beta             i           studio-origin          0 bytes

Installation complete.

To confirm it installed:

env HOME=/home/$USER/teb-beta-fp flatpak list
Name                           Application ID                                      Version                                      Branch           Origin             Installation
OBS Studio                     com.obsproject.Studio                               31.0.0-enhanced-broadcasting-v42             teb-beta         studio-origin      user
Mesa                           org.freedesktop.Platform.GL.default                 24.2.5                                       23.08            flathub            user
Mesa (Extra)                   org.freedesktop.Platform.GL.default                 24.2.5                                       23.08-extra      flathub            user
nvidia-550-120                 org.freedesktop.Platform.GL.nvidia-550-120                                                       1.4              flathub            user
openh264                       org.freedesktop.Platform.openh264                   2.1.0                                        2.2.0            flathub            user
Yaru Gtk Theme                 org.gtk.Gtk3theme.Yaru                                                                           3.22             flathub            user
KDE Application Platform       org.kde.Platform                                                                                 6.6              flathub            user
QGnomePlatform                 org.kde.PlatformTheme.QGnomePlatform                                                             6.6              flathub            user
QAdwaitaDecorations            org.kde.WaylandDecoration.QAdwaitaDecorations                                                    6.6              flathub            user

Run the program with the following:

env HOME=/home/$USER/teb-beta-fp flatpak run com.obsproject.Studio

With this configuration, all flatpak commands should be prepended with env HOME=/home/$USER/teb-beta-fp to select the custom directory. For example, the following commands to update (when needed) or remove the flatpak work exactly the same as the non-custom-directory variants:

env HOME=/home/$USER/teb-beta-fp flatpak update
env HOME=/home/$USER/teb-beta-fp flatpak uninstall com.obsproject.Studio

Shared Configuration

Note: In general we do not recommend this option.

This option is for users that already have one or more OBS Studio variants installed as flatpaks and wish to share the same OBS Studio configuration directory with the TEB beta flatpak.

Open a terminal and check which flatpak's are installed. The example below is shortened for brevity:

$ flatpak list
Name                                  Application ID                                      Version      Branch      Origin       Installation
Flatseal                              com.github.tchx84.Flatseal                          2.3.0        stable      flathub      user
OBS Studio                            com.obsproject.Studio                               31.0.0-rc1   beta        flathub-beta user
OBS Studio                            com.obsproject.Studio                               30.2.3       stable      flathub      user
Vertical Canvas                       com.obsproject.Studio.Plugin.VerticalCanvas         1.4.10       stable      flathub      user
Mesa                                  org.freedesktop.Platform.GL.default                 24.2.5       23.08       flathub      user
...

In the example above both the OBS Studio stable (30.2.3) and beta (31.0.0-rc1) flatpaks are installed. We can install the TEB beta as well with the following:

flatpak install --user obs-studio-31.0.0-enhanced-broadcasting-v42-flatpak.flatpak

Now we have 3 variants of OBS Studio installed:

$ flatpak list
Name                     Application ID                        Version                                Branch      Origin         Installation
Flatseal                 com.github.tchx84.Flatseal            2.3.0                                  stable      flathub        user
OBS Studio               com.obsproject.Studio                 31.0.0-rc1                             beta        flathub-beta   user
OBS Studio               com.obsproject.Studio                 30.2.3                                 stable      flathub        user
OBS Studio               com.obsproject.Studio                 31.0.0-enhanced-broadcasting-v42       teb-beta    studio3-origin user
Vertical Canvas          …project.Studio.Plugin.VerticalCanvas 1.4.10                                 stable      flathub        user
Mesa                     org.freedesktop.Platform.GL.default   24.2.5                                 23.08       flathub        user
...

In this scenario, selecting the specific OBS Studio version to run requires the branch to be selected, for example:

flatpak run --branch=teb-beta com.obsproject.Studio

Replace the --branch=teb-beta argument with either --branch=stable or --branch=beta to run the other versions.

To uninstall, run the following:

$ flatpak uninstall com.obsproject.Studio

Select the variant to remove. In the example below the teb-beta branch is option 2:

Similar installed refs found for ‘com.obsproject.Studio’:

   1) app/com.obsproject.Studio/x86_64/stable (user)
   2) app/com.obsproject.Studio/x86_64/teb-beta (user)
   3) app/com.obsproject.Studio/x86_64/beta (user)
   4) All of the above

Which do you want to use (0 to abort)? [0-4]: 2

        ID                           Branch          Op
 1. [-] com.obsproject.Studio        teb-beta        r

Uninstall complete.

DEB Package

The DEB package was built on Ubuntu 24.04 and should be installed only on that distro.

Download the DEB from the TEB releases section to a local directory then install it using:

sudo dpkg -i obs-studio-31.0.0-enhanced-broadcasting-v42-x86_64-ubuntu-gnu.deb

The TEB OBS Studio beta will install to /usr/local/ and the OBS configuration directory will be shared with any other OBS Studio version installed by the user with package managers. This directory is ~/.config/obs-studio.

Using portable mode with the DEB-based installation is not supported or recommended.

To uninstall:

sudo apt remove obs-studio

Standalone Build

Download the standalone build from the TEB releases section.

The standalone build was built on Ubuntu 24.04 and might work with other distributions, however if there are issues it would be best to either build from source code or use the flatpak. The standalone build allows the build to be uncompressed in any folder and optionally (but recommended) to be run in portable mode.

After installation the obs binary can be invoked with the --portable argument or installed with the portable_mode.txt file in the directory. We recommend and document the latter approach below, but there seems to be a nuance where OBS will look for the file two directories above the directory in which the binary was started.

To accommodate this, create a base directory for all TEB beta standalone installations and put the portable_mode.txt file there, only once.

In the example below, the /home/$USER/teb-beta-base directory is used as the base folder, and v42 is used as a convenient short name to install the release into:

mkdir /home/$USER/teb-beta-base
cd /home/$USER/teb-beta-base
touch portable_mode.txt
tar -xf obs-studio-31.0.0-enhanced-broadcasting-v42-x86_64-ubuntu-gnu.tar.xz --one-top-level=/home/$USER/teb-beta-base/v42
cd v42/bin
./obs

Please note you must run obs from the /home/$USER/teb-beta-base/v42/bin folder otherwise it won't detect the portable_mode.txt file 2 directories above.

If portable mode was enabled properly, the OBS main window will say "Portable Mode" in the title.

To remove the standalone build, just delete the whole folder:

rm -rf /home/$USER/teb-beta-base/v42

Source Code

For expert users and developers who wish to compile TEB, the source code is available at the Amazon TEB OBS Studio repository. Each release has a branch of the form release/vXY, for example v42 is branch release/v42.

Releases

Graphics Driver Version

Upstream OBS Studio provides the minimum recommended GPU driver version with each release. Your driver needs to be updated to this minimum version otherwise TEB Linux Beta may not work. Please consult upstream OBS Studio Releases to get the most up-to-date information.

Additionally, the table below lists the minimum driver version that TEB Beta requires by the server-side validation. If there is a difference between upstream recommendation and the table below, the highest driver version should be used.

TEB Beta Release NVIDIA Driver Mesa Driver (for AMD)
v38 to v42 550.x.y (Upstream OBS: 550.54.14 or higher) 24.0.0 or higher

AMD GPU HEVC Vertical Resolution Issue

While using the TEB Linux beta, some users reported severe packet loss and eventual disconnection after starting to stream with HEVC. HEVC renditions are provided for 1440p and 1080p if the streamer has configured the canvas to 1440p (or higher) and are part of the HEVC beta testers. The problem is related to Mesa issue 10985, and resulted in the 1920x1080 rendition to be sent as 1920x1088, which fails the validation on the ingest server.

The fix requires the a relatively recent Mesa version, libva API >= 1.21, recent VCN firmware, and an FFmpeg patch.

To provide a fix for TEB Linux beta testers, the only reasonable short-term solution was to add the required changes to the TEB flatpak build. Fixing the issue in upstream OBS Studio is a separate effort, and will likely require the patch to be merged in FFmpeg.

Starting with v42, the TEB beta flatpak includes the following:

  • KDE platform update from 6.6 to 6.8 (6.8 uses libva API 1.22)
  • libdatachannel update to v0.22.3
  • A slightly modified version of the work-in-progress upstream FFmpeg patch

Given that the TEB beta flatpak is now running ahead of upstream OBS Studio in terms of the KDE platform version (6.6 vs 6.8), this flatpak should be considered very experimental as there could be incompatibility between the more recent KDE platform and Qt. We will back out the changes if need be.

Also note that DEB and standalone builds are not fixed and will signal the incorrect vertical resolution for 1920x1080 when using HEVC. The vertical resolution issue cannot be fixed for DEB and standalone builds within OBS. The host distribution must update FFmpeg if and when the upstream patch is merged, then the FFmpeg dependencies for OBS can be updated.

TEB v42 Build

Please see the AMD GPU HEVC notes before installing this version.

The v42 build flatpak build includes changes in the flatpak that may cause issues for some users, and should be considered experimental.

Please revert to v41 if you run into problems.

Previous Releases

TEB v41 Build

TEB v40 Build

TEB v39 Build

TEB v38 Build