Wie man einen Video-Streaming-Server mit Nginx-RTMP unter Ubuntu 22.04 einrichtet

RTMP, auch „Real-Time Messaging Protocol“ genannt, ist eine Datenübertragungstechnologie, die Live-Online-Video-Streaming unterstützt. Sie wird verwendet, um Videodateien von einem Encoder zu einer Online-Videoplattform zu übertragen. RTMP nutzt TCP für die Übertragung und verwendet ein Drei-Wege-Handshake für den Datentransport. RTMP wird bei vielen verschiedenen Arten von Medien eingesetzt, z. B. bei Live-Fernsehübertragungen, Video-Streaming und Internet-Telefondiensten.

Funktionen

  • Produziere hochwertige Live-Videos ohne Pufferung
  • Einfach zu installieren und zu konfigurieren.
  • Kompatibel mit den meisten Live-Streaming-Programmen und Videodiensten.

Diese Anleitung zeigt dir, wie du einen Video-Streaming-Server mit Nginx-RTMP auf einem Ubuntu 22.04-Server einrichtest.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein Root-Passwort ist für deinen Server eingerichtet.

Nginx-Webserver installieren

Bevor du beginnst, muss der Nginx-Webserver auf deinem Server installiert sein. Wenn er nicht installiert ist, kannst du ihn mit dem folgenden Befehl installieren.

apt install nginx -y

Nachdem du das Nginx-Paket installiert hast, starte den Nginx-Dienst und aktiviere ihn so, dass er bei einem Neustart des Systems startet.

systemctl start nginx
systemctl enable nginx

Du kannst den Status des Nginx-Dienstes mit dem folgenden Befehl überprüfen.

systemctl status nginx

Du erhältst die folgende Ausgabe.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-01-09 14:54:55 UTC; 28s ago
       Docs: man:nginx(8)
    Process: 43294 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
   Main PID: 43005 (nginx)
      Tasks: 3 (limit: 4575)
     Memory: 8.5M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??43005 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??43295 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??43296 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jan 09 14:54:55 vultr systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 09 14:54:55 vultr systemd[1]: Started A high performance web server and a reverse proxy server.
Jan 09 14:55:04 vultr systemd[1]: Reloading A high performance web server and a reverse proxy server...
Jan 09 14:55:04 vultr systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Nginx-RTMP installieren und konfigurieren

Standardmäßig ist das Nginx-RTMP-Paket im Ubuntu-Standard-Repository enthalten. Du kannst es mit dem folgenden Befehl installieren.

apt install libnginx-mod-rtmp -y

Sobald das Paket Nginx-RTMP installiert ist, bearbeite die Hauptkonfigurationsdatei von Nginx und definiere deinen Stream.

nano /etc/nginx/nginx.conf

Füge die folgenden Zeilen am Ende der Datei hinzu:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish all;               

                application live {
                        live on;
                        record off;
                }
        }
}

Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Konfigurationsfehler.

nginx -t

Du solltest die folgende Ausgabe sehen.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte schließlich den Nginx-Dienst neu, um die Änderungen zu übernehmen.

systemctl restart nginx

Jetzt ist Nginx-RTMP installiert und lauscht auf Port 1935. Du kannst dies mit dem folgenden Befehl überprüfen.

ss -antpl | grep 1935

Du solltest die folgende Ausgabe sehen.

LISTEN 0      511          0.0.0.0:1935      0.0.0.0:*    users:(("nginx",pid=43388,fd=8),("nginx",pid=43387,fd=8),("nginx",pid=43386,fd=8))

Video an den RTMP-Server senden

Als Nächstes musst du ein Beispielvideo von YouTube herunterladen und es mit FFmpeg an deinen RTMP-Server senden.

Installiere zunächst das Paket youtube-dl ad FFmpeg mit dem folgenden Befehl.

apt install python3-pip ffmpeg -y
pip install youtube-dl

Als Nächstes lädst du ein beliebiges Video von YouTube mit dem Kommandozeilenprogramm youtube-dl herunter.

youtube-dl https://www.youtube.com/watch?v=oNEwEQ0uU1Y

Sobald das Video auf dein System heruntergeladen ist, kannst du das heruntergeladene Video mit dem Befehl FFmpeg an den RTMP-Server senden.

ffmpeg -re -i "How to Install Ubuntu 22.04 LTS-oNEwEQ0uU1Y.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://your-server-ip/live/stream &

Jetzt wird das heruntergeladene Video an rtmp://dein-server-ip/live/stream gesendet.

Video zum VLC Player streamen

In diesem Abschnitt zeigen wir dir, wie du dein Video vom RTMP-Server auf die VLC-Player-Software streamen kannst.

Logge dich zunächst in dein Desktop-System ein und öffne den VLC-Player. Dann klickst du auf Medien => Netzwerk-Stream öffnen. Du solltest den folgenden Bildschirm sehen.

Gib die URL deines RTMP-Servers ein und klicke auf die Schaltfläche Abspielen. Wenn alles funktioniert, solltest du dein Video auf dem folgenden Bildschirm sehen.

RTMP-Statistiken für die Überwachung konfigurieren

Jetzt ist dein RTMP-Server installiert und funktioniert. Jetzt musst du die RTMP-Statistikseite konfigurieren, um dein Streaming zu überwachen.

Erstelle zunächst mit dem folgenden Befehl ein Verzeichnis, in dem du die RTMP-Statistikdatei speichern kannst.

mkdir /var/www/html/rtmp

Kopiere dann die RTMP-Statistikdatei in das erstellte Verzeichnis.

cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl /var/www/html/rtmp/stat.xsl

Als Nächstes bearbeitest du die Standardkonfigurationsdatei von Nginx für den virtuellen Host.

nano /etc/nginx/sites-available/default

Entferne alle Standardzeilen und füge die folgenden Zeilen hinzu:

server {
    listen 8080;
    server_name  _;

    # rtmp stat
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root /var/www/html/rtmp;
    }

    # rtmp control
    location /control {
        rtmp_control all;
    }
}

Speichere und schließe die Datei, wenn du fertig bist. Starte dann den Nginx-Dienst neu, um die Änderungen zu übernehmen.

systemctl restart nginx

Zugriff auf die RTMP-Stat-Seite

Öffne nun deinen Webbrowser und rufe die RTMP-Statistikseite über die URL http://your-server-ip:8080/stat auf. Du solltest die RTMP-Statistiken auf dem folgenden Bildschirm sehen.

Du musst die Seite jedes Mal aktualisieren, wenn du ein Video streamst und beobachten, wie sich die Stream-Statistiken ändern.

Fazit

In diesem Beitrag wurde erklärt, wie du einen Video-Streaming-Server mit Nginx-RTMP unter Ubuntu 22.04 einrichtest. Außerdem haben wir den RTMP-Server mit dem VLC-Player getestet. Jetzt kannst du jedes beliebige Video auf den RTMP-Server streamen und mit jedem unterstützten Media Player darauf zugreifen. Wenn du Fragen hast, kannst du mich gerne fragen.

Das könnte dich auch interessieren …