Stürzt Ihr Live-Stream jedes Mal ab? Wenn ja, müssen Sie einen zuverlässigen Weg finden, Ihren Stream zu hosten. Aber wenn Sie sich teure Optionen nicht leisten können, keine Sorge! NGINX RTMP wird den Tag retten. NGINX RTMP ist ein zuverlässiges Open-Source-Modul, Sie wissen also, was das bedeutet – es ist KOSTENLOS!
In diesem Tutorial erfahren Sie, wie Sie einen NGINX-RTMP-Server einrichten, damit Sie mit Ihrer Website einen zuverlässigen Live-Stream einrichten können.
Bereit? Lesen Sie weiter und beginnen Sie mit der Einrichtung eines Live-Streams!
Voraussetzungen
Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Linux-Server – Diese Demo verwendet Ubuntu 20.04 LTS, aber Sie können jede andere Linux-Distribution mit NGINX verwenden.
- NGINX auf dem Linux-Server installiert.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
- Für den Betrieb eines Livestream-Servers erforderliche Mindestressourcen – 2 GB RAM, 2 CPU-Kerne und 20 GB HDD.
Diese Werte sind nur Vorschläge. Die genauen Werte hängen von Ihrem tatsächlichen Verkehrsbedarf ab. Je mehr Datenverkehr Sie haben, desto leistungsfähigere Server benötigen Sie, um Ihr Live-Video zu hosten und zu streamen. In einer Entwicklungsumgebung reicht ein NGINX RTMP-Server mit 2 CPUs und 2 GB RAM zum Testen aus.
Konfigurieren eines RTMP-Servers
Nachdem die Voraussetzungen erfüllt sind, können Sie nun mit der Installation und Konfiguration Ihres RTMP-Servers fortfahren. Sie installieren zuerst ein NGINX-Modul, um Ihren NGINX-Server in einen RTMP-Server umzuwandeln, und konfigurieren dann die NGINX-Konfigurationsdatei, um Live-Streams für Benutzer zu aktivieren.
1. Öffnen Sie Ihr Terminal und führen Sie apt update
aus Befehl, um alle Ihre Pakete zu aktualisieren. Dieser Befehl synchronisiert Ihre Paketdatenbank mit der neuesten Datenbank von Ubuntu.
sudo apt update -y
2. Führen Sie als Nächstes den folgenden Befehl aus, um einen RTMP-Server auf Ihrem Linux-Server zu installieren.
Die libnginx-mod-rtmp
module ist ein NGINX-Modul, das Ihren NGINX-Server in einen RTMP-Server umwandelt. Dieses Modul ermöglicht es NGINX, mit Adobe Flash Player zu kommunizieren, sodass Sie Ihr Live-Video oder -Audio streamen können, und wird offiziell von seinem Entwicklungsteam unterstützt.
sudo apt install libnginx-mod-rtmp -y
3. Öffnen Sie die /etc/nginx/nginx.conf Datei in Ihrem bevorzugten Editor, um Ihr RTMP-Live-Programm zu konfigurieren. Die nginx.conf Datei ist eine NGINX-Konfigurationsdatei, die mehrere Anweisungen oder Blöcke enthält, um das Verhalten des NGINX-Dienstes zu definieren.
4. Füllen Sie abschließend die nginx.conf aus Datei mit dem folgenden Code, speichern Sie die Änderungen und beenden Sie den Editor.
Der folgende Code weist NGINX an, als RTMP-Server zu fungieren und Live-Streams für Ihre Benutzer zu aktivieren.
# This block of code tells NGINX to act as an RTMP server.
rtmp {
server {
# Sets the port the server will listen on.
listen 1935;
# The size of each chunk of data that will be sent.
# Flash Player will freeze if the chunk is too small,
# which can cause a buffer-underflow condition.
chunk_size 4096;
# The IP addresses are allowed to publish content to the server.
# Allow only the localhost to publish content on NGINX RTMP.
allow publish 127.0.0.1;
# Deny publishing for everyone else.
deny publish all;
# Defines a named application called "live"
application live {
# Tells NGINX to enable live streams for your users.
live on;
# This line tells NGINX to disable recording. If this line is not included,
# NGINX will keep recording and save your stream forever to your disk.
record off;
}
}
}
Sichern des Netzwerks durch Einrichten einer Firewall
Sie haben Ihren NGINX RTMP-Server bereits konfiguriert, aber Sie müssen Ihr Netzwerk sichern und den Datenverkehrsfluss kontrollieren. Wie? Durch Einrichten einer Firewall, Uncomplicated Firewall (UFW), die die Standard-Firewall in Ubuntu ist.
Wenn Sie Ihren NGINX RTMP-Server hinter einer Firewall platzieren, müssen Sie zulassen, dass der NGINX RTMP-Serverport offen ist. Da Sie Ihren NGINX-RTMP-Server so konfiguriert haben, dass er auf Port 1935
lauscht , lassen Sie diesen Port durch Ihre Firewall zu.
1. Führen Sie den folgenden Befehl aus, um eine Firewallregel hinzuzufügen, die Port 1935
öffnet auf Ihrer Firewall. Diese Firewallregel lässt Ihren NGINX-RTMP-Serverport 1935
zu für alle eingehenden und ausgehenden Anfragen erreichbar sein.
sudo ufw allow 1935/tcp
2. Führen Sie als Nächstes den folgenden Befehl aus, um Ihre Firewall zu deaktivieren und erneut zu aktivieren. Dieser Befehl startet die Firewall grundsätzlich neu, damit alle Änderungen an der Firewall wirksam werden.
sudo ufw disable && sudo ufw enable
3. Führen Sie schließlich den folgenden Befehl aus, um den Status Ihrer Firewall zu überprüfen und zu überprüfen, ob Port 1935
ist von allen IP-Adressen erreichbar (Anywhere ).
sudo ufw status
Streaming von Videos mit FFmpeg
Ihr NFINX RTMP-Server ist jetzt aktiv, also ist es an der Zeit, FFmpeg zu verwenden, um ein Beispielvideo zu erstellen und es über Ihren NGINX RTMP-Server zu streamen. FFmpeg ist eine Komplettlösung zum Aufnehmen, Konvertieren und Streamen von Audio und Video in vielen verschiedenen Anwendungen wie VLC, OMXPlayer, VobSub usw.
Sie testen das Video-Streaming auf Ihrem Server und können jedes kleine Video zum Streamen verwenden.
1. Führen Sie apt install
aus Befehl unten, um die erforderlichen Abhängigkeiten zu installieren, damit FFmpeg ordnungsgemäß ausgeführt werden kann.
Der folgende Befehl installiert Folgendes:
libpcre3
– Eine Regex-Bibliothek, die vom ffmpeg-Toolkit verwendet wird, um reguläre Ausdrücke zu analysieren und zu kompilieren.libpcre3-dev
– Dieses Paket enthält die Entwicklungsheader des libpcre3-Pakets.libssl-dev
– Die OpenSSL-Verschlüsselungsbibliothek, die zum Erstellen von SSL/TLS-Verbindungen in Ihrem RTMP-Server verwendet wird.zlib1g-dev
:Die zlib-Bibliothek ist eine Komprimierungs- und Dekomprimierungsbibliothek, die die Übertragung von Audio- und Videodateien über das Internet beschleunigt.
sudo apt install -y libpcre3 libpcre3-dev libssl-dev zlib1g-dev
2. Führen Sie als Nächstes den folgenden Befehl aus, um ffmpeg
zu installieren auf Ihrem Server.
sudo apt install ffmpeg -y
3. Führen Sie zuletzt ffmpeg
aus Befehl, um Folgendes auszuführen und einen neuen Live-Stream zu erstellen:
- Eingabe lesen (
re
) aus der Quelldatei (i
) mit der ursprünglichen Framerate. Achten Sie darauf,video.mp4
zu ersetzen mit dem Pfad und Dateinamen Ihres Videos. - Kopieren Sie das Videoformat wörtlich (
c:v copy
) und codieren Sie den Audio-n-AAC-Codec (c:a aac
). - Setzen Sie die Audioabtastrate auf 44100 Hz (
ar 44100
). Wenn die Abtastrate Ihres Videos unter diesem Wert liegt (44100 Hz), führt FFmpeg eine Interpolation durch, um die Abtastrate zu erhöhen. - Audiokanäle auf einen Kanal (Mono) einstellen (
ac 1
) und das Videoformat, das FFmpeg streamen wird (-f flv
). - Stellen Sie Ihr RTMP-Live-Programm ein (
rtmp://localhost/live/streamname.flv
), die Sie im Abschnitt „Konfigurieren eines RTMP-Servers“ (Schritt vier) konfiguriert haben. Sie könnenstreamname.flv
ändern auf einen beliebigen Namen.
ffmpeg -re -i "video.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://139.180.203.6:1935/live/streamname.flv
Wie Sie unten sehen, ist der ffmpeg
Befehl druckt den Rahmen pro Sekunde erkennt, die Bitrate , und die fps des neu erstellten RTMP-Livestreams.
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, wie Sie Ihren NGINX-RTMP-Server einrichten und Live-Streams auf Ihrem Server aktivieren, indem Sie die NGINX-Konfigurationsdatei ändern. Sie haben auch das Einrichten eines Video-Livestreams mit dem FFmpeg-Tool über Ihren NGINX-RTMP-Server angesprochen.
Sie haben gerade festgestellt, dass die Einrichtung eines Livestreams Sie nicht jeden Cent kosten muss. Warum integrieren Sie Ihren Stream an dieser Stelle nicht mit dem HTML5-Element