Please note that viewing attachments of hyphae is not supported in history for now. Get Mycomarkup source of this revision

🌻ServicesStreamMulticasting

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: obsproject.com/wiki/install-instructions#linux
2. Add the multi-rtmp-plugin: github.com/sorayuki/obs-multi-rtmp
3. Optional: Setup Nginx to take some pressure off your streaming computer: 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

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

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 cdn-fastly.obsproject.com/downloads/cef_binary_4638_linux64.tar.bz2
tar -xjf ./cef_binary_4638_linux64.tar.bz2
git clone --recursive 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

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