Portable builds of OBS Studio for Linux, pre-loaded with extra features and plugins for live streaming and screen recording
Made with π for π§
- 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
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.
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 |
You can safely install these OBS Studio Portable builds alongside .deb
, Flatpak, or Snap installs of OBS Studio.
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.
- You must use the
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
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.
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 βοΈ
- Install Distrobox (1.4.2.1 or newer) and Podman (recommended) or Docker.
- Create a Distrobox container for OBS Studio Portable.
distrobox create --image ghcr.io/ublue-os/obs-studio-portable:latest --name obs --pull
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.
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
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
- 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
.
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
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:
- 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.
- Advanced Scene Switcher plugin; an automated scene switcher.
- Directory Watch Media plugin; filter you can add to a media source to load the oldest or newest file in a directory.
- Dummy Source plugin; provides a dummy source to execute arbitrary commands when a scene is switched.
- Source Switcher plugin; to switch between a list of sources.
- Transition Table plugin; customize scene transitions.
- WebSockets plugin; remote-control OBS Studio through WebSockets.
- 3D Effect plugin; 3D effect filter.
- Advanced Masks plugin; Advanced Masking.
- Background Removal plugin; portrait background removal, virtual green-screen and low-light enhancement
- Browser Transition plugin; show a browser source during scene transition.
- Composite Blur plugin; comprehensive blur plugin that provides several different blur algorithms, and proper compositing.
- Downstream Keyer plugin; add a Downstream Keyer dock.
- DVD Screensaver plugin; a DVD screen saver source type.
- Dynamic Delay plugin; filter for dynamic delaying a video source.
- Face Tracker plugin; face tracking plugin
- Freeze Filter plugin; freeze a source using a filter.
- Gradient plugin; adding gradients as a source.
- Move Transition plugin; move source to a new position during a scene transition.
- Multi Source Effect plugin; provides a custom effect to render multiple sources.
- Pixel Art plugin; create retro-inspired pixel art visuals.
- Recursion Effect plugin; recursion effect filter.
- Replay Source plugin; slow motion replay async sources from memory.
- RGB Levels plugin; simple filter to adjust RGB levels.
- Scene as Transition plugin; use scenes as transitions.
- Shader Filter plugin; for applying an arbitrary shader to a source.
- Stroke Glow Shadow plugin; provides efficient Stroke, Glow, and Shadow effects on masked sources.
- Time Shift plugin; time shift a source using a filter.
- Time Warp Scan plugin; a time warp scan filter.
- Vintage Filter plugin; a filter to make source black & white or sepia.
- Zoom-to-Mouse script; to zoom a display-capture source to focus on the mouse.
- 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.
- 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.
- 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.
- 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.
These plugins were previously bundled with OBS Studio, but have since been removed.
- Asynchronous Source Duplication - The Source Clone plugin does the same thing.
- Color Monitor - name collisions with other plugins.
- NvFBC - no longer functional since OBS Studio 28 due to the removal of GLX.
- RTSP Server - introduced a large number of memory leaks.
- Scene Collection Manager - can silently revert configurations to an older version.
- StreamFX - dropped from OBS 30 onward, StreamFX development has fallen way behind OBS Studio release cadence. StreamFX is incompatible with Vertical Plugin, 0.12.0b366 onward forcibly includes pointless UI elements and component inclusion is no longer configurable. Many StreamFX features are now provided via superior plugins from other authors:
- Dynamic Masks is replaced with Advanced Masks by FiniteSingularity.
- 3D Transform is replaced with 3D Effects by Exeldro.
- Blur is replaced with Composite Blur by FiniteSingularity.
- SDF Effects is replaced with Stroke, Glow, and Shadow by FiniteSingularity.
- Shaders are replaced with Shader Filter by Exeldro and GStreamer by fzwoch.
- Source Mirror is replaced with Source Clone by Exeldro.
- The GStreamer and VA-API plugins by fzwoch offer advanced encoder tuning.
Here are some additional plugins that look useful that I might add in the future:
- Durchblick - needs testing, user reports indicate stability issues
- Clean Stream - currently experimental
- Input Overlay
- LiveSplit
- Main View Source
- Output Filter
- Source Record Async
- VNC - not compatible with the current OBS Studio release
There isn't a definitive gPhoto plugin for current OBS Studio so I'm reluctant to include it. Here's what I know:
- Original obs-gphoto 0.3.0 - unmaintained and doesn't build against current OBS.
- Forked obs-gphoto 0.4.0 - unmaintained, updated for imagemagick7, I was using this with OBS 27.
- Forked obs-gphoto 0.3.0 - looks like build-system updates to work with OBS 28, but I haven't tested it.
- Forked obs-gphoto 0.3.0 - looks like build-system and code updates to work with OBS 29, but I haven't tested it.
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 inobs-plugins/64bit
- Put any data files associated with the plugin in
data/obs-plugins/<plugin name>/
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.
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
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.
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.
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.