An open API service indexing awesome lists of open source software.

https://github.com/wimpysworld/obs-studio-portable

Portable OBS Studio for Ubuntu bundled with 50 plugins
https://github.com/wimpysworld/obs-studio-portable

hacktoberfest linux obs obs-studio obsstudio plugins portable streaming ubuntu

Last synced: 7 days ago
JSON representation

Portable OBS Studio for Ubuntu bundled with 50 plugins

Awesome Lists containing this project

README

        


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](https://github.com/obsproject/obs-websocket) 5.x and 4.9.1-compat are both included
- [NewTek NDIβ„’ integration](https://github.com/obs-ndi/obs-ndi) and [Teleport](https://github.com/fzwoch/obs-teleport) support
- [SRT & RIST Protocol](https://obsproject.com/wiki/Streaming-With-SRT-Or-RIST-Protocols) 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](https://github.com/ublue-os/obs-studio-portable) for [Distrobox](https://distrobox.it/), 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`](https://launchpad.net/~obsproject/+archive/ubuntu/obs-studio), [Flatpak](https://flathub.org/apps/com.obsproject.Studio), or [Snap](https://snapcraft.io/obs-studio) installs of OBS Studio.

## Ubuntu

The installation process is simple:

- **[Download the tarball (and sha256 hash) of OBS Studio Portable](https://github.com/wimpysworld/obs-studio-portable/releases)** 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.

```bash
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](https://distrobox.it/) 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](https://universal-blue.org/) project.

- **[OBS Studio Portable for Linux](https://github.com/ublue-os/obs-studio-portable)**

**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.

```bash
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.

```bash
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.

```bash
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
```

4. From now on, launch OBS Studio Portable using the `obs-portable` launcher.

```bash
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`](https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#compatibility-notes) 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:

```bash
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:

```bash
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**](https://github.com/norihiro/obs-async-audio-filter) plugin; filter that aims to fix audio glitches caused by asynchronous audio.
- [**Audio Pan**](https://github.com/norihiro/obs-audio-pan-filter) plugin; controls stereo pan of audio sources.
- [**Local Vocal**](https://github.com/obs-ai/obs-localvocal) plugin; local speech and text AI processing routines and AI transcription.
- [**Mute Filter**](https://github.com/norihiro/obs-mute-filter) plugin; to mute audio from a source.
- [**PipeWire Audio Capture**](https://github.com/dimtpap/obs-pipewire-audio-capture) plugin; capture application audio from PipeWire.
- [**Scale to Sound**](https://github.com/Qufyy/obs-scale-to-sound) plugin; adds a filter that makes a source scale based on the audio levels of any audio source you choose
- [**Soundboard**](https://github.com/cg2121/obs-soundboard) plugin; adds a soundboard dock.
- [**Tuna**](https://github.com/univrsal/tuna) plugin; get song information from various sources.
- [**Waveform**](https://github.com/phandasm/waveform) plugin; audio spectral analysis.

## Automation πŸŽ›

- [**Advanced Scene Switcher**](https://github.com/WarmUpTill/SceneSwitcher) plugin; an automated scene switcher.
- [**Directory Watch Media**](https://github.com/exeldro/obs-dir-watch-media) plugin; filter you can add to a media source to load the oldest or newest file in a directory.
- [**Dummy Source**](https://github.com/norihiro/obs-command-source) plugin; provides a dummy source to execute arbitrary commands when a scene is switched.
- [**Source Switcher**](https://github.com/exeldro/obs-source-switcher) plugin; to switch between a list of sources.
- [**Transition Table**](https://github.com/exeldro/obs-transition-table) plugin; customize scene transitions.
- [**WebSockets**](https://github.com/Palakis/obs-websocket) plugin; remote-control OBS Studio through WebSockets.

## Effects ✨

- [**3D Effect**](https://github.com/exeldro/obs-3d-effect) plugin; 3D effect filter.
- [**Advanced Masks**](https://github.com/FiniteSingularity/obs-advanced-masks) plugin; Advanced Masking.
- [**Background Removal**](https://github.com/obs-ai/obs-backgroundremoval) plugin; portrait background removal, virtual green-screen and low-light enhancement
- [**Browser Transition**](https://github.com/exeldro/obs-browser-transition) plugin; show a browser source during scene transition.
- [**Composite Blur**](https://github.com/FiniteSingularity/obs-composite-blur) plugin; comprehensive blur plugin that provides several different blur algorithms, and proper compositing.
- [**Downstream Keyer**](https://github.com/exeldro/obs-downstream-keyer) plugin; add a Downstream Keyer dock.
- [**DVD Screensaver**](https://github.com/univrsal/dvds3) plugin; a DVD screen saver source type.
- [**Dynamic Delay**](https://github.com/exeldro/obs-dynamic-delay) plugin; filter for dynamic delaying a video source.
- [**Face Tracker**](https://github.com/norihiro/obs-face-tracker) plugin; face tracking plugin
- [**Freeze Filter**](https://github.com/exeldro/obs-freeze-filter) plugin; freeze a source using a filter.
- [**Gradient**](https://github.com/exeldro/obs-gradient-source) plugin; adding gradients as a source.
- [**Move Transition**](https://github.com/exeldro/obs-move-transition) plugin; move source to a new position during a scene transition.
- [**Multi Source Effect**](https://github.com/norihiro/obs-multisource-effect) plugin; provides a custom effect to render multiple sources.
- [**Pixel Art**](https://github.com/dspstanky/pixel-art) plugin; create retro-inspired pixel art visuals.
- [**Recursion Effect**](https://github.com/exeldro/obs-recursion-effect) plugin; recursion effect filter.
- [**Replay Source**](https://github.com/exeldro/obs-replay-source) plugin; slow motion replay async sources from memory.
- [**RGB Levels**](https://github.com/wimpysworld/obs-rgb-levels-filter) plugin; simple filter to adjust RGB levels.
- [**Scene as Transition**](https://github.com/andilippi/obs-scene-as-transition) plugin; use scenes as transitions.
- [**Shader Filter**](https://github.com/exeldro/obs-shaderfilter) plugin; for applying an arbitrary shader to a source.
- [**Stroke Glow Shadow**](https://github.com/FiniteSingularity/obs-stroke-glow-shadow) plugin; provides efficient Stroke, Glow, and Shadow effects on masked sources.
- [**Time Shift**](https://github.com/exeldro/obs-time-shift) plugin; time shift a source using a filter.
- [**Time Warp Scan**](https://github.com/exeldro/obs-time-warp-scan) plugin; a time warp scan filter.
- [**Vintage Filter**](https://github.com/cg2121/obs-vintage-filter) plugin; a filter to make source black & white or sepia.
- [**Zoom-to-Mouse**](https://github.com/BlankSourceCode/obs-zoom-to-mouse) script; to zoom a display-capture source to focus on the mouse.

## Encoding & Output 🎞

- [**Game Capture**](https://github.com/nowrep/obs-vkcapture) plugin; Vulkan/OpenGL game capture.
- [**GStreamer**](https://github.com/fzwoch/obs-gstreamer) plugin; feed GStreamer launch pipelines into OBS Studio.
- [**Multi RTMP**](https://github.com/sorayuki/obs-multi-rtmp) plugin; stream to multiple RTMP servers concurrently.
- [**NDI**](https://github.com/obs-ndi/obs-ndi) plugin; Network A/V in OBS Studio with NewTek's NDI technology.
- [**Source Record**](https://github.com/exeldro/obs-source-record) plugin; make sources available to record via a filter.
- [**Teleport**](https://github.com/fzwoch/obs-teleport) plugin; open NDI-like replacement. (*not NDI compatible*)
- [**VA-API**](https://github.com/exeldro/obs-transition-table) plugin; GStreamer-based VA-API encoder implementation.
- [**Vertical Canvas**](https://github.com/Aitum/obs-vertical-canvas) plugin; make content for TikTok, YouTube Shorts, Instagram Live, and more without the fuss.

## Tools πŸ› 

- [**Scene Notes Dock**](https://github.com/exeldro/obs-scene-notes-dock) plugin; create a Dock for showing and editing notes for the currently active scene.
- [**Source Clone**](https://github.com/exeldro/obs-source-clone) plugin; add source cloning
- [**Source Copy**](https://github.com/exeldro/obs-source-copy) plugin; adds copy-and-paste options to the tools menu.
- [**Source Dock**](https://github.com/exeldro/obs-source-dock) plugin; adds browser sources as custom docks.

## Text πŸ“

- [**Advanced Timer**](https://github.com/cg2121/obs-advanced-timer) script; a Lua script that sets a text source as a timer with advanced options.
- [**Countdown**](https://github.com/ashmanix/obs-plugin-countdown) plugin; creates a countdown timer.
- [**Markdown**](https://github.com/exeldro/obs-markdown) plugin; add Markdown sources
- [**Text PThread**](https://github.com/norihiro/obs-text-pthread) plugin; Rich text source plugin with many advanced features, including multi-language support, emoji support, vertical rendering and RTL support.
- [**URL Source**](https://github.com/obs-ai/obs-urlsource) plugin; fetches data from a URL (API), parses and displays live updates in the scene.

## Themes 🎨

- [**simplyGray**](https://obsproject.com/forum/resources/simplygray-dark-theme-with-customizable-highlight-color.1598/) theme; space efficient with customizable highlight color.
- [**Yami Resized**](https://obsproject.com/forum/resources/yami-resized.1611/) 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.

- [**Asynchronous Source Duplication**](https://github.com/norihiro/obs-async-source-duplication) - The Source Clone plugin does the same thing.
- [**Color Monitor**](https://github.com/norihiro/obs-color-monitor) - name collisions with other plugins.
- [**NvFBC**](https://gitlab.com/fzwoch/obs-nvfbc) - no longer functional since OBS Studio 28 due to the removal of GLX.
- [**RTSP Server**](https://github.com/iamscottxu/obs-rtspserver/) - introduced a large number of memory leaks.
- [**Scene Collection Manager**](https://github.com/exeldro/obs-scene-collection-manager) - can silently revert configurations to an older version.
- [**StreamFX**](https://github.com/Xaymar/obs-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**](https://github.com/FiniteSingularity/obs-advanced-masks) by [*FiniteSingularity*](https://github.com/FiniteSingularity).
- 3D Transform is replaced with [**3D Effects**](https://github.com/exeldro/obs-3d-effect) by [*Exeldro*](https://github.com/exeldro/).
- Blur is replaced with [**Composite Blur**](https://github.com/FiniteSingularity/obs-composite-blur) by [*FiniteSingularity*](https://github.com/FiniteSingularity).
- SDF Effects is replaced with [**Stroke, Glow, and Shadow**](https://github.com/FiniteSingularity/obs-stroke-glow-shadow) by [*FiniteSingularity*](https://github.com/FiniteSingularity).
- Shaders are replaced with [**Shader Filter**](https://github.com/exeldro/obs-shader-filter) by [*Exeldro*](https://github.com/exeldro/) and [**GStreamer**](https://github.com/fzwoch/obs-gstreamer) by [*fzwoch*](https://github.com/fzwoch).
- Source Mirror is replaced with [**Source Clone**](https://github.com/exeldro/obs-source-clone) by [*Exeldro*](https://github.com/exeldro/).
- The [**GStreamer**](https://github.com/fzwoch/obs-gstreamer) and [**VA-API**](https://github.com/fzwoch/obs-vaapi) plugins by [*fzwoch*](https://github.com/fzwoch/) offer advanced encoder tuning.

### To consider πŸ€”

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

- [Durchblick](https://git.vrsal.xyz/alex/Durchblick) - *needs testing, user reports indicate stability issues*
- [Clean Stream](https://github.com/obs-ai/obs-cleanstream) - *currently experimental*
- [Input Overlay](https://github.com/univrsal/input-overlay)
- [LiveSplit](https://github.com/LiveSplit/obs-livesplit-one)
- [Main View Source](https://github.com/norihiro/obs-main-view-source)
- [Output Filter](https://github.com/norihiro/obs-output-filter)
- [Source Record Async](https://github.com/norihiro/obs-source-record-async)
- [VNC](https://github.com/norihiro/obs-vnc) - *not compatible with the _current_ OBS Studio release*

#### gPhoto

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](https://github.com/Atterratio/obs-gphoto) - unmaintained and doesn't build against current OBS.
- [Forked obs-gphoto 0.4.0](https://github.com/adlerweb/obs-gphoto) - unmaintained, updated for imagemagick7, I was using this with OBS 27.
- [Forked obs-gphoto 0.3.0](https://github.com/mika314/obs-gphoto) - looks like build-system updates to work with OBS 28, but I haven't tested it.
- [Forked obs-gphoto 0.3.0](https://github.com/christophehenry/obs-gphoto) - looks like build-system and code updates to work with OBS 29, but I haven't tested it.

### 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//`

## 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:

```bash
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:

```bash
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](https://syncthing.net/) 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`](./build-auto.sh) being the main entry point.

The actual build script, [`obs-build.sh`](builder/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:

```text
+-- 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

- https://obsproject.com/wiki/Build-Instructions-For-Linux
- https://github.com/snapcrafters/obs-studio
- https://launchpad.net/~obsproject