-
Notifications
You must be signed in to change notification settings - Fork 3
TEB Beta Linux Installation
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:
- Flatpak-based build in a single-file bundle
- DEB packages built from the regular OBS Studio scripts (Ubuntu 24.04)
- Standalone build (Ubuntu 24.04) similar to the Windows-based releases where the files are decompressed into a folder and run from there
- 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.
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:
- Using a separate configuration folder for the TEB beta (this option is recommended)
- Using a common configuration folder for all installations of
application ID=com.obsproject.Studio
(we do not recommend this option)
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
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.
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
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
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
.
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 |
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.
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.
- TEB v42 flatpak
- Ubuntu 24.04
- TEB v42 source code
Previous Releases
- TEB v41 flatpak
- Ubuntu 24.04
- TEB v41 source code
- TEB v40 flatpak
- Ubuntu 24.04
- TEB v40 source code
- TEB v39 flatpak
- Ubuntu 24.04
- TEB v39 source code