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