Dieses Tutorial versucht, dies zu lösen, indem es Ihnen zeigt, wie Sie einen persönlichen Live-Streaming-Server einrichten, der Nginx, einen leistungsstarken und leichten Webserver und Reverse-Proxy sowie das RTMP-Protokoll nutzt.
Bevor wir fortfahren, stellen Sie sicher:
- Sie verwenden einen Ubuntu- oder Debian-Server
- Zugriff auf Ihren Server über SSH
- Root-Benutzer- oder Sudo-Berechtigungen
Lass uns loslegen.
Was ist Nginx?
Wie oben erwähnt, ist Nginx ein schneller und leichter Open-Source-Webserver und Reverse-Proxy, der verwendet wird, um einfache statische Websites oder massive Anwendungen zu bedienen. Nginx ist ein leistungsstarker Webserver mit unglaublicher Geschwindigkeit und Sicherheit. Dank seines geringen Gewichts ist es eine sehr effiziente Wahl für Streaming-Dienste und Datenverkehr mit massivem Datenverkehr.
Weitere Informationen zu Nginx finden Sie in der folgenden Ressource:
https://nginx.org/de/docs/
Was ist Nginx RTMP?
Nginx RTMP ist ein leistungsstarkes Open-Source-Modul für den Nginx-Webserver. Es ermöglicht das RTMP-Protokoll, HTTP Live Streaming (HLS) und Dynamic Adaptive Streaming over HTTP (DASH).
Weitere Informationen zu HLS und DASH finden Sie auf der Ressourcenseite:
https://www.Wolkenflare.com/learning/video/was-ist-mpeg-dash/
Nachdem Sie nun wissen, was Nginx und Nginx RTMP sind, lassen Sie uns den Server einrichten:
Auf Server konfigurieren
Der erste Schritt besteht darin, Zugriff auf den Server zu erhalten. Stellen Sie sicher, dass SSH zu Ihrem Server aktiviert ist und Sie die Schlüssel für eine einfachere Anmeldung hinzugefügt haben.
ssh [email protected][email protected]:~$
Sobald wir Zugriff auf den Server haben, können wir mit der Installation der erforderlichen Pakete und Bibliotheken beginnen. Stellen Sie zunächst sicher, dass Ihr Server auf dem neuesten Stand ist:
sudo apt-get updatesudo apt-get upgrade -y
Erforderliche Software installieren
Um den Streaming-Server einzurichten, müssen wir Nginx aus der Quelle erstellen und das RTMP-Modul aktivieren. Dazu verwenden wir build-essentials und andere Pakete. Verwenden Sie den folgenden Befehl apt, um alle Abhängigkeiten zu installieren install.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devDer nächste Schritt besteht darin, Nginx mit aktiviertem RTMP-Modul zu kompilieren und zu installieren. Um organisiert zu bleiben, erstellen Sie ein Verzeichnis für den Prozess.
mkdir ~/Makecd ~/machen/
Klonen Sie als nächstes das nginx-RTMP-Modul:
git-Klon git://github.com/arut/nginx-rtmp-module.gitJetzt müssen wir nginx herunterladen.
Gehen Sie zu http://nginx.org/de/download.html und wählen Sie Ihre Download-Option aus.
wget http://nginx.org/download/nginx-1.19.8.Teer.gztar xzf nginx-1.19.8.Teer.gz
cd nginx-1.19.8
Der letzte Schritt in diesem Abschnitt besteht darin, Nginx mit aktiviertem RMTP-Modul zu kompilieren. Verwenden Sie die folgenden Befehle:
sudo ./configure --with-http_ssl_module --add-module=… /nginx-rtmp-modulesudo machen
sudo machen installieren
Live-Streaming einrichten
Um die RTMP-Unterstützung zu aktivieren, müssen wir die nginx-Konfigurationsdatei bearbeiten und den RTMP-Block angeben.
sudo nano /usr/local/nginx/conf/nginx.confGeben Sie den RTMP-Unterstützungsblock wie folgt ein:
rtmpServer
hören 1935;
Ping 30s;
Bewerbung live
weiter leben;
verschachteln an;
hls an;
hls_Pfad /tmp/hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type application/octet-stream;
Server
hören 80;
Standort /tv
root /tmp/hls;
Typen
Anwendung/vnd.Apfel.mpegurl-m3u8;
Video/mp2t-TS;
text/html-html;
In der obigen Konfiguration aktivieren wir das RTMP-Modul und HLS. Lesen Sie die Dokumentation, um zu erfahren, wie Sie DASH aktivieren enable.
Sobald Sie die Konfiguration haben, speichern Sie die Datei und starten Sie den Nginx-Dienst.
sudo /usr/local/nginx/sbin/nginxStreamen starten
Sobald Sie alles richtig konfiguriert haben, können Sie mit dem Streaming mit FFmpeg beginnen - es ist am einfachsten. Sie können auch andere Tools wie OBS Studio konfigurieren, aber ich werde das in diesem Tutorial nicht behandeln.
Verwenden Sie den FFmpeg-Befehl als:
sudo ffmpeg -re -i sample-mp4-file.mp4 -c kopieren -f hls rtmp://localhost/live/streamSpielen Sie den Stream mit FFplay oder VLC Media Player auf der Ressource ab.
ffplay rtmp://IP/live/streamSobald der Stream ausgeführt wird, können Sie den Dienst einem externen Netzwerk zugänglich machen.
HINWEIS: Stellen Sie sicher, dass Sie Ihren Server gesichert haben, bevor Sie den öffentlichen Zugriff erlauben.
Fazit
In diesem Tutorial wurde beschrieben, wie Sie einen Streaming-Server mit Nginx und dem Nginx RTMP-Modul einrichten. Denken Sie daran, dass bei der Einrichtung eines Streaming-Dienstes viele Gänge erforderlich sind, und Sie können ihn an Ihre Bedürfnisse anpassen.
Betrachten Sie die folgenden Ressourcen, um mehr zu erfahren.
- https://ffmpeg.org/ffmpeg.html
- https://ffmpeg.org/ffplay.html
- https://ffmpeg.org/ffmpeg-Formate.html
- https://obsproject.com/docs/
- https://wiki.Videolan.org/Dokumentation:Streaming_HowTo