Giter VIP home page Giter VIP logo

obs-studio-portable's Introduction

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

obs-studio-portable's People

Contributors

flexiondotorg avatar iotku avatar lucyllewy avatar dependabot[bot] avatar kimmalmo avatar

obs-studio-portable's Issues

AJA Support

Currently AJA support is DISABLED as it was interfering with the build

Possibly relevant info here: obsproject/obs-studio#10037

Relevent logs:

+ tee /root/obs-30/build/cmake-obs-.log
-- Configuring done (4.6s)
CMake Error in UI/frontend-plugins/aja-output-ui/CMakeLists.txt:
  Imported target "AJA::LibAJANTV2" includes non-existent path

    "/usr/local/libajantv2/ajaanc"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.



CMake Error in plugins/aja/CMakeLists.txt:
  Imported target "AJA::LibAJANTV2" includes non-existent path

    "/usr/local/libajantv2/ajaanc"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.



CMake Error in plugins/aja/CMakeLists.txt:
  Imported target "AJA::LibAJANTV2" includes non-existent path

    "/usr/local/libajantv2/ajaanc"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.



CMake Error in UI/frontend-plugins/aja-output-ui/CMakeLists.txt:
  Imported target "AJA::LibAJANTV2" includes non-existent path

    "/usr/local/libajantv2/ajaanc"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.````

Update Plugins

So far the only plugin that is updated (and enabled) is the vkcapture plugin.

Should I get it working and not abandon this fork I would like to bring the other plugins upto a current state for OBS 32

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.