Hier eine kleine Anleitung für die Einrichtung eines Streamservers, wie wir im TTT nutzen.
Wir nutzen als Streamserver einen self build NGINX Webserver mit nginx-rtmp-module. Dieser dient dazu auf mehreren Plattformen gleichzeitig zu streamen, außerdem mit ffmpeg das transcodieren.
Der Streamingserver befindet sich auf potenter Hardware mit einem Debian 11 System.
Ein potentes Linux System (am besten Debian oder Ubuntu, dafür ist die Anleitung geschrieben)
Root Zugriff
einige Pakete installiert, dafür folgendern Befehl apt-get install unzip git zlib1g-dev wget build-essential libpcre3 libpcre3-dev libssl-dev -y
Es wird ein Verzeichnis benötigt wo alle Daten, die Config abgelegt werden.
Bei uns: /opt/streamingserver dafür einfach mkdir -p /opt/streamingserver/{build,config}
ausführen
Im Build Verzeichnis wird nun die NGINX Version gedownloadet. Wir verwenden die 1.24.0. Drauf achten die tar.gz zu verwenden. Entpacken mit tar xzf
Im Build Verzeichnis nun das nginx-rtmp Plugin aus git holen. git clone https://github.com/arut/nginx-rtmp-module.git
In das NGINX Verzeichnis wechseln (z.B. nginx-1.24.0) und dort NGINX deployen mit folgenden Befehl. Achtung: Dieser muss an die Gegebenheiten angepasst werden, da gerne fragen
./configure --add-module=../nginx-rtmp-module --with-debug --with-cc-opt="-Wimplicit-fallthrough=0" --prefix=/usr/local/streamingserver --sbin-path=/usr/local/sbin/streamingserver \ --conf-path=/opt/streamingserver/config/nginx.conf --error-log-path=/var/log/streamingserver/error.log --http-log-path=/var/log/streamingserver/access.log \ --pid-path=/opt/streamingserver/streamingserver.pid --lock-path=/opt/streamingserver/streamingserver.lock --user=streamingserver --group=streamingserver --build=streamingserver --without-http_rewrite_module
Danach noch folgende Befehle ausführen make
gefolgt von make install
Die Config für den NGINX anpassen (ein Beispiel findet ihr weiter unten)
Ggf. einen Service für den Streamingserver einrichten (ein Beispiel findet ihr weiter unten)
Wenn nicht vorhanden den User (welcher oben verwendet wird) anlegen. z.B. adduser --disabled-password streamingserver
Alle Daten dem entsprechenden User geben. chown -R streamingserver: /opt/streamingserver
Ggf. Firewall Freischaltung vornehmen.
Und zum Schluss das Ding starten und Testen
Wir nutzen zum transcodieren noch zusätzlich ffmpeg.
https://nginx.org/download
https://github.com/arut/nginx-rtmp-module
https://github.com/arut/nginx-rtmp-module/wiki/Installing-via-Build