In the spirit of POSSE, accessibility, and a general love of tinkering, when I started doing streaming I wanted to set things up to stream to peertube, youtube, twitch, and as many other places as I wanted. I had to setup three tools to do this, OBS, a plugin called obs-multi-rtmp, and a (optional but very, very useful and highly reccomended) server running nginx-rtmp So the steps in a nutshell are: 1. Install/Build OBS: https://obsproject.com/wiki/install-instructions#linux 2. Add the multi-rtmp-plugin: https://github.com/sorayuki/obs-multi-rtmp 3. Optional: Setup Nginx to take some pressure off your streaming computer: https://github.com/arut/nginx-rtmp-module Settings these tools up in a way that streamed to those three services was more of a project then I thought it would be (I setup ngnxrtmp first but a bug prevented it from multicasting to peertube, which is the place I wanted to stream to the most) So for posterity here is a quick rundown of the process I used to stream to multiple places. Feel free to edit this if you find spelling errors or just generally hate I am going to assume you are using a fresh uptaded and empty linux machine running either debian 10 or debian 11, since thats what these notes assume and I am just copy pasting right now till I clean up the notes. install nvidia stuffz https://wiki.debian.org/NvidiaGraphicsDrivers#Debian_11_.22Bullseye.22 sudo nano /etc/apt/sources.list copy and paste and add: contrib non-free sudo apt update sudo apt upgrade # update nvidia stuffz sudo apt install nvidia-detect sudo apt install nvidia-driver firmware-misc-nonfree # restart # build obs # https://obsproject.com/wiki/install-instructions#debian-based-build-directions sudo apt install ffmpeg ffmpeg-doc sudo apt install v4l2loopback-dkms v4l2loopback-utils sudo apt install wget sudo apt-get install build-essential cmake git libmbedtls-dev libasound2-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libcurl4-openssl-dev libfdk-aac-dev libfontconfig-dev libfreetype6-dev libglvnd-dev libjack-jackd2-dev libjansson-dev libluajit-5.1-dev libpulse-dev libqt5x11extras5-dev libspeexdsp-dev libswresample-dev libswscale-dev libudev-dev libv4l-dev libvlc-dev libwayland-dev libx11-dev libx264-dev libxcb-shm0-dev libxcb-xinerama0-delibxcomposite-dev libxinerama-dev pkg-config python3-dev qtbase5-dev qtbase5-private-dev libqt5svg5-dev swig libxcb-randr0-dev libxcb-xfixes0-dev libx11-xcb-dev libxcb1-dev libxss-dev qtwayland5 libgles2-mesa libgles2-mesa-dev libpci-dev wget https://cdn-fastly.obsproject.com/downloads/cef_binary_4638_linux64.tar.bz2 tar -xjf ./cef_binary_4638_linux64.tar.bz2 git clone --recursive https://github.com/obsproject/obs-studio.git cd obs-studio mkdir build && cd build cmake -DUNIX_STRUCTURE=1 -DENABLE_PIPEWIRE=OFF -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_BROWSER=ON -DCEF_ROOT_DIR="../../cef_binary_4638_linux64" .. make -j$(nproc) sudo make install # test OBS obs --verbal # install plugin # https://help.streamingvideoprovider.com/en/articles/5177605-linux-guide-send-multi-bitrate-resolutions-to-enable-adaptive-streaming-for-obs-open-broadcaster-software-in-debian-arch-based-linux-distributions sudo apt install -y mesa-common-dev qtbase5-dev qtdeclarative5-dev cd git clone https://github.com/sorayuki/obs-multi-rtmp.git cd obs-multi-rtmp nano ./ci/install_ubuntu.sh ## edit file so it looks right. remove the weird ubuntu stuffs ## make it so it looks like below: --- #!/usr/bin/bash set -eux : "${OBS_INCLUDE_DIR:=/usr/include/obs}" : "${OBS_API_SRC_URL:=https://raw.githubusercontent.com/obsproject/obs-studio/#OBS_VER#/UI/obs-frontend-api/obs-frontend-api.h}" #sudo add-apt-repository -y ppa:obsproject/obs-studio #sudo apt-get update #sudo apt-get install -y mesa-common-dev obs-studio qtbase5-dev qtdeclarative5-dev obs_ver=$(obs -V) obs_ver=${obs_ver//-/ } obs_ver=($obs_ver) obs_ver=${obs_ver[2]} curl -fsSLo /tmp/obs-frontend-api.h "${OBS_API_SRC_URL//#OBS_VER#/$obs_ver}" sudo mkdir -p "$OBS_INCLUDE_DIR/UI/obs-frontend-api" sudo mv /tmp/obs-frontend-api.h "$OBS_INCLUDE_DIR/UI/obs-frontend-api" --- ## resume by running ubuntu scrip ./ci/install_ubuntu.sh INSTALL=1 ./build_linux.sh ## open obs test