Skip to content

wimpysworld/obs-studio-portable

Repository files navigation

OBS Studio
OBS Studio Portable for Ubuntu

Portable builds of OBS Studio for Linux, pre-loaded with extra features and plugins for live streaming and screen recording

GitHub all releases

Made with πŸ’ for 🐧

OBS Studio Portable for Ubuntu

  • Includes 50 of the best 3rd Party plugins for OBS Studio!
  • Chromium Embedded Frameworks (CEF) to enable Browser Sources
  • NVENC (NVIDIA) and VA-API (AMD & Intel) accelerated video encoding
  • Shader and GStreamer effects filters
  • Fraunhofer FDK AAC Codec
  • Pipewire application-specific audio capture
  • VLC and GStreamer Media sources
  • AJA NTV2 SDK
  • WebSockets 5.x and 4.9.1-compat are both included
  • NewTek NDIβ„’ integration and Teleport support
  • SRT & RIST Protocol support
  • Markdown, Pango and API text sources

Portable?

Running OBS Studio in Portable Mode means all settings (Profiles and Scene Collections) are saved within the same directory tree as the OBS Studio executables, plugins, and configuration. You can copy the whole folder to another computer and use it.

OBS Studio Portable is also a container image for Distrobox, so you can run OBS Studio Portable on any Linux distro.

Supported Features

Ubuntu Release OBS Studio SRT RIST Plugins Scripts Themes
Ubuntu 20.04 (Focal) EOL
Ubuntu 22.04 (Jammy) 30.0.2 ❌ ❌ 54 2 2
Ubuntu 23.04 (Lunar) 30.0.2 βœ… βœ… 54 2 2
Ubuntu 23.10 (Mantic) 30.0.2 βœ… βœ… 54 2 2

Install

You can safely install these OBS Studio Portable builds alongside .deb, Flatpak, or Snap installs of OBS Studio.

Ubuntu

The installation process is simple:

  • Download the tarball (and sha256 hash) of OBS Studio Portable for the version of Ubuntu you're running.
    • Builds are specific to an Ubuntu release!
  • Extract the tarball somewhere.
  • Run obs-dependencies, included in the tarball, to make sure the runtime requirements for OBS Studio are satisfied.
  • Run obs-portable to launch OBS Studio.
    • You must use the obs-portable launcher to ensure OBS Studio finds all the associated libraries and add-ons.
wget "https://github.com/wimpysworld/obs-studio-portable/releases/download/r23365/obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs).tar.bz2"
wget "https://github.com/wimpysworld/obs-studio-portable/releases/download/r23365/obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs).tar.bz2.sha256"
sha256sum -c obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs).tar.bz2.sha256
tar xvf obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs).tar.bz2
cd obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs)
sudo ./obs-dependencies
./obs-portable

Upgrades

The upgrade process is the same as an install; download and extract the new tarball and run sudo ./obs-dependencies to ensure all the dependencies are installed. Then copy the config folder from your old OBS Studio Portable directory to the new one. If anything doesn't work correctly when you start the new OBS Studio, continue using the previous OBS Studio Portable instance.

Distrobox (any Linux)

You can use Distrobox to run OBS Studio Portable on any Linux 🐧 distro. The container image for OBS Studio Portable is maintained under the umbrella of the Universal Blue project.

The portable nature of OBS Studio Portable is redefined when using Distrobox.

  • "portable" now means you can run OBS Studio Portable on any Linux distro, not just Ubuntu.
  • The OBS Studio configuration is exposed in your home directory on the host via the ~/.config/obs-portable directory.
  • Launching multiple instances of OBS Studio Portable containers is not recommended as the configuration location is shared.

Running a single instance of OBS Studio Portable works great! I am currently using OBS Studio Portable this way on NixOS ❄️

  1. Install Distrobox (1.4.2.1 or newer) and Podman (recommended) or Docker.
  2. Create a Distrobox container for OBS Studio Portable.
distrobox create --image ghcr.io/ublue-os/obs-studio-portable:latest --name obs --pull

NVIDIA support

The appropriate NVIDIA libraries on the host should be automatically linked inside the container πŸͺ„ However, the capability for Distrobox to automatically connect NVIDIA libraries was added in Distrobox 1.5.0, and is also not supported on all distros; NixOS for example.

Therefore, if you are running an older version of Distrobox or the NVIDIA drivers are not automatically linked inside the container you can install them as follows:

  • Change the version number (535 in the example below) to match the version of the NVIDIA drivers you have installed on the host.

NVIDIA complete driver stack

Required if the display is rendered by an NVIDIA GPU.

distrobox create --image ghcr.io/ublue-os/obs-studio-portable:latest --name obs --pull --additional-packages nvidia-driver-535

NVIDIA compute only

Suitable for multi-GPU systems where the NVIDIA GPU is not rendering the display and is only being used for compute.

distrobox create --image ghcr.io/ublue-os/obs-studio-portable:latest --name obs --pull --additional-packages libnvidia-encode-535 nvidia-headless-no-dkms-535

3. Run the initial setup.

```bash
distrobox enter --name obs -- true
  1. From now on, launch OBS Studio Portable using the obs-portable launcher.
distrobox enter --name obs -- /opt/obs-portable/obs-portable

If the OBS Studio Portable container cannot connect to the host X11 server, add xhost +si:localuser:$USER to ~/.distroboxrc.

Multiple OBS Studio Portable instances in Distrobox

Should you require multiple instances of OBS Studio, each with its configuration, follow the steps above to get OBS Studio Portable running in Distrobox. Then, extract the OBS Studio tarball into a different directory in your home directory on the host. For example:

mkdir ~/OBS-Studio-again
cd ~/OBS-Studio-again
wget "https://github.com/wimpysworld/obs-studio-portable/releases/download/r23365/obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs).tar.bz2"
tar xvf obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs).tar.bz2
cd obs-portable-30.0.2-r23365-ubuntu-$(lsb_release -rs)

To launch the second instance of OBS Studio Portable in Distrobox, run the following command:

distrobox-enter --name obs -- ~/OBS-Studio-again/obs-portable

Batteries included πŸ”‹

I'm incredibly thankful to the OBS Studio developers and developers of the growing list of excellent plugins, scripts and themes. These Portable builds of OBS Studio for Ubuntu celebrate the best of what's available. Thank you! πŸ™‡

Here are the 3rd party plugins that come bundled with OBS Studio Portable for Ubuntu:

Audio πŸ”‰

  • Async Audio Filter plugin; filter that aims to fix audio glitches caused by asynchronous audio.
  • Audio Pan plugin; controls stereo pan of audio sources.
  • Local Vocal plugin; local speech and text AI processing routines and AI transcription.
  • Mute Filter plugin; to mute audio from a source.
  • PipeWire Audio Capture plugin; capture application audio from PipeWire.
  • Scale to Sound plugin; adds a filter that makes a source scale based on the audio levels of any audio source you choose
  • Soundboard plugin; adds a soundboard dock.
  • Tuna plugin; get song information from various sources.
  • Waveform plugin; audio spectral analysis.

Automation πŸŽ›

Effects ✨

Encoding & Output 🎞

  • Game Capture plugin; Vulkan/OpenGL game capture.
  • GStreamer plugin; feed GStreamer launch pipelines into OBS Studio.
  • Multi RTMP plugin; stream to multiple RTMP servers concurrently.
  • NDI plugin; Network A/V in OBS Studio with NewTek's NDI technology.
  • Source Record plugin; make sources available to record via a filter.
  • Teleport plugin; open NDI-like replacement. (not NDI compatible)
  • VA-API plugin; GStreamer-based VA-API encoder implementation.
  • Vertical Canvas plugin; make content for TikTok, YouTube Shorts, Instagram Live, and more without the fuss.

Tools πŸ› 

  • Scene Notes Dock plugin; create a Dock for showing and editing notes for the currently active scene.
  • Source Clone plugin; add source cloning
  • Source Copy plugin; adds copy-and-paste options to the tools menu.
  • Source Dock plugin; adds browser sources as custom docks.

Text πŸ“

  • Advanced Timer script; a Lua script that sets a text source as a timer with advanced options.
  • Countdown plugin; creates a countdown timer.
  • Markdown plugin; add Markdown sources
  • Text PThread plugin; Rich text source plugin with many advanced features, including multi-language support, emoji support, vertical rendering and RTL support.
  • URL Source plugin; fetches data from a URL (API), parses and displays live updates in the scene.

Themes 🎨

  • simplyGray theme; space efficient with customizable highlight color.
  • Yami Resized theme; based on the original Yami theme but made for people who need more space or have a 1080p or lower resolution.

Removed πŸ—‘οΈ

These plugins were previously bundled with OBS Studio, but have since been removed.

To consider πŸ€”

Here are some additional plugins that look useful that I might add in the future:

gPhoto

There isn't a definitive gPhoto plugin for current OBS Studio so I'm reluctant to include it. Here's what I know:

Additional plugins

If the builds of OBS Studio offered here don't include a plugin that you use, you can download a pre-compiled version and add it to the portable folder:

  • Put any .so files in obs-plugins/64bit
  • Put any data files associated with the plugin in data/obs-plugins/<plugin name>/

OBS Virtual Camera

OBS Studio Virtual Camera support is integrated. The Start Virtual Camera button is in the Controls pane below Start Recording. Here's how to install and configure v4l2loopback, which OBS uses:

echo 'options v4l2loopback devices=1 video_nr=13 card_label="OBS Virtual Camera" exclusive_caps=1' | sudo tee /etc/modprobe.d/v4l2loopback.conf
echo "v4l2loopback" | sudo tee /etc/modules-load.d/v4l2loopback.conf
sudo modprobe -r v4l2loopback
sudo modprobe v4l2loopback devices=1 video_nr=13 card_label="OBS Virtual Camera" exclusive_caps=1

NOTE! Using video_nr greater than 64 will not work.

Wayland

Browser docks and streaming service integrations are currently disabled on Wayland due to Chromium Embedded Framework (CEF) issues. If you need browser docks or stream service integrations, click on the cog icon when logging into Ubuntu and select "ubuntu on xorg".

Alternatively, you can coerce OBS Studio to run via Xwayland without changing the desktop session:

env QT_QPA_PLATFORM=xcb ./obs-portable

Why does this project exist?

If any of the following are true for you, you might find these builds of OBS Studio useful.

  • I want a version of OBS Studio for Ubuntu that has all the features enabled; by default
    • I use lots of 3rd party OBS Studio plugins in my stream configuration.
  • I stream from two different locations using multiple computers
    • Syncthing syncs my streaming configuration between sites. I'd also like to include OBS Studio itself.
  • I make changes to my OBS Studio configuration from various computers
    • Keeping these changes in sync manually can be cumbersome.
  • I stream to multiple channels
    • Discrete OBS Studio instances are easier to work with than switching between dozens of Profile and Scene Collection combinations.
  • I don't want to deal with flag day releases of new software
    • New software is terrific, but I want to control when and how I upgrade each streaming configuration instance.
  • My stream integrations are not (currently) compatible with packages of OBS Studio that use confinement
    • I have some funky stream integrations, and will likely create more. I don't want to limit my creative options.
  • I sometimes stream OBS Studio how-tos and examples
    • Running demo instances of OBS Studio with isolated configurations is excellent for this.
  • I want a stable OBS setup and an in-development OBS setup
    • When developing new features for my stream, I can freely experiment with new versions of OBS Studio and its plugins without fear of disrupting my stable setup.

Build process πŸ—

Each build is compiled in a freshly provisioned systemd container. The build scripts are included in this repository.

The build-*.sh scripts are wrappers to help automate things, with build-auto.sh being the main entry point.

The actual build script, obs-build.sh, gets injected into the new container and is responsible for actually building OBS Studio. Perhaps it might also serve as a reference for users of other Linux distributions who want to create their portable builds of OBS Studio.

Release numbers

An OBS Studio Portable for Linux release number will be something like r23365, and the filename will indicate the version of OBS Studio and which Ubuntu release it is for:

                     +-- OBS Portable for Ubuntu revision
                     |
                     v
obs-portable-30.0.2-r23365-ubuntu-22.04.tar.bz2
              ^                    ^
              |                    |
              +-- OBS version      +-- Supported Ubuntu release

The purpose of the release number is to indicate a change to the composition of the portable release, most likely due to adding/updating the bundled 3rd party plugins.

References