GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen Sie Ihren eigenen Video-Streaming-Server mit Linux

Live-Video-Streaming ist unglaublich beliebt – und es wächst weiter. Plattformen wie Twitch von Amazon und YouTube von Google haben Millionen von Nutzern, die unzählige Stunden Live- und aufgezeichnete Medien streamen und konsumieren. Diese Dienste können oft kostenlos genutzt werden, erfordern jedoch, dass Sie ein Konto haben und Ihre Inhalte im Allgemeinen hinter Anzeigen halten. Einige Leute brauchen ihre Videos nicht, um der Masse zugänglich zu sein, oder wollen einfach mehr Kontrolle über ihre Inhalte haben. Glücklicherweise kann mit der Leistungsfähigkeit von Open-Source-Software jeder einen Live-Streaming-Server einrichten.

Erste Schritte

In dieser Anleitung erkläre ich, wie Sie einen einfachen Live-Streaming-Server mit einem Linux- oder BSD-Betriebssystem einrichten.

Dies führt zwangsläufig zur Frage nach den Systemanforderungen. Diese können variieren, da beim Live-Streaming viele Variablen beteiligt sind, wie zum Beispiel:

  • Streamqualität: Möchten Sie in High Definition streamen oder wird Standard Definition Ihren Anforderungen entsprechen?
  • Zuschauerzahl: Wie viele Zuschauer erwartest du für deine Videos?
  • Speicherung: Planen Sie, gespeicherte Kopien Ihres Videostreams aufzubewahren?
  • Zugriff: Wird Ihr Stream privat oder für die ganze Welt zugänglich sein?

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Es gibt keine festen Regeln, wenn es um Systemanforderungen geht, daher empfehle ich Ihnen, zu experimentieren und herauszufinden, was für Ihre Bedürfnisse am besten funktioniert. Ich habe meinen Server auf einer virtuellen Maschine mit 4 GB RAM, einer 20-GB-Festplatte und einem einzelnen Intel i7-Prozessorkern installiert.

Dieses Projekt verwendet das Real-Time Messaging Protocol (RTMP), um Audio- und Video-Streaming zu verarbeiten. Es sind andere Protokolle verfügbar, aber ich habe mich für RTMP entschieden, weil es breite Unterstützung bietet. Da offene Standards wie WebRTC kompatibler werden, würde ich diesen Weg empfehlen.

Es ist auch sehr wichtig zu wissen, dass "live" nicht immer sofort bedeutet. Ein Videostream muss codiert, übertragen, gepuffert und angezeigt werden, was häufig zu Verzögerungen führt. Die Verzögerung kann je nach Art des von Ihnen erstellten Streams und seinen Attributen verkürzt oder verlängert werden.

Einrichten eines Linux-Servers

Sie können viele verschiedene Linux-Distributionen verwenden, aber ich bevorzuge Ubuntu, also habe ich die Ubuntu Server Edition für mein Betriebssystem heruntergeladen. Wenn Sie es vorziehen, dass Ihr Server eine grafische Benutzeroberfläche (GUI) hat, können Sie Ubuntu Desktop oder eine seiner vielen Varianten verwenden. Dann habe ich das Ubuntu-Installationsprogramm auf meinem Computer oder meiner virtuellen Maschine gestartet und die Einstellungen ausgewählt, die am besten zu meiner Umgebung passen. Unten sind die Schritte aufgeführt, die ich unternommen habe.

Hinweis:Da dies ein Server ist, möchten Sie wahrscheinlich einige statische Netzwerkeinstellungen festlegen.

Nachdem das Installationsprogramm beendet und Ihr System neu gestartet wurde, werden Sie mit einem schönen neuen Ubuntu-System begrüßt. Installieren Sie wie bei jedem neu installierten Betriebssystem alle verfügbaren Updates:

sudo apt update
sudo apt upgrade

Dieser Streaming-Server verwendet den sehr leistungsstarken und vielseitigen Nginx-Webserver, daher müssen Sie ihn installieren:

sudo apt install nginx 

Dann benötigen Sie das RTMP-Modul, damit Nginx Ihren Medienstream verarbeiten kann:

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

Passen Sie die Konfiguration Ihres Webservers an, damit er Ihren Medienstream annehmen und liefern kann.

sudo nano /etc/nginx/nginx.conf 

Scrollen Sie zum Ende der Konfigurationsdatei und fügen Sie den folgenden Code hinzu:

 RTMP {
Server {
Hören Sie 1935;
chunk_size 4096;

Antrag live {
live auf;
Zeichnen Sie ab;
                                                                                                               

Speichern Sie die Konfiguration. Da ich ein Ketzer bin, verwende ich Nano zum Bearbeiten von Konfigurationsdateien. In Nano können Sie Ihre Konfiguration speichern, indem Sie Strg+X drücken , Y , und dann Enter.

Dies ist eine sehr minimale Konfiguration, die einen funktionierenden Streaming-Server erstellt. Sie werden diese Konfiguration später ergänzen, aber dies ist ein guter Ausgangspunkt.

Bevor Sie jedoch mit Ihrem ersten Stream beginnen können, müssen Sie Nginx mit seiner neuen Konfiguration neu starten:

sudo systemctl restart nginx 

Einen BSD-Server einrichten

Wenn Sie von der "Beastie"-Überzeugung sind, ist es auch teuflisch einfach, einen Streaming-Server zum Laufen zu bringen.

Besuchen Sie die FreeBSD-Website und laden Sie die neueste Version herunter. Starten Sie das FreeBSD-Installationsprogramm auf Ihrem Computer oder Ihrer virtuellen Maschine, gehen Sie die ersten Schritte durch und wählen Sie die Einstellungen, die am besten zu Ihrer Umgebung passen. Da dies ein Server ist, möchten Sie wahrscheinlich einige statische Netzwerkeinstellungen festlegen.

Nachdem das Installationsprogramm beendet und Ihr System neu gestartet wurde, sollten Sie ein glänzend neues FreeBSD-System haben. Wie bei jedem anderen neu installierten System möchten Sie wahrscheinlich alles aktualisieren (stellen Sie von diesem Schritt an sicher, dass Sie als root angemeldet sind):

pkg-Update
pkg-Upgrade

Ich installiere Nano zum Bearbeiten von Konfigurationsdateien:

pkg install nano 

Dieser Streaming-Server wird den sehr leistungsstarken und vielseitigen Nginx-Webserver verwenden. Sie können Nginx mithilfe der hervorragenden Ports erstellen System, das FreeBSD bietet.

Aktualisieren Sie zuerst Ihren Ports-Baum:

Portsnap abrufen
Portsnap-Extrakt

Navigieren Sie zum Nginx-Portverzeichnis:

cd /usr/ports/www/nginx 

Beginnen Sie mit dem Erstellen von Nginx, indem Sie Folgendes ausführen:

make install 

Sie sehen einen Bildschirm, in dem Sie gefragt werden, welche Module in Ihren Nginx-Build aufgenommen werden sollen. Für dieses Projekt müssen Sie das RTMP-Modul hinzufügen. Scrollen Sie nach unten, bis das RTMP-Modul ausgewählt ist, und drücken Sie die Leertaste . Drücken Sie dann Enter um mit dem Rest des Builds und der Installation fortzufahren.

Sobald Nginx die Installation abgeschlossen hat, ist es an der Zeit, es für Streaming-Zwecke zu konfigurieren.

Fügen Sie zuerst einen Eintrag in /etc/rc.conf hinzu um sicherzustellen, dass der Nginx-Server startet, wenn Ihr System hochfährt:

nano /etc/rc.conf 

Fügen Sie diesen Text zur Datei hinzu:

nginx_enable="YES" 

Erstellen Sie als Nächstes ein Webroot-Verzeichnis, von dem aus Nginx seinen Inhalt bereitstellt. Ich nenne meinen Stream :

cd /usr/local/www/
mkdir stream
chmod -R 755 stream/

Nachdem Sie Ihr Stream-Verzeichnis erstellt haben, konfigurieren Sie Nginx, indem Sie seine Konfigurationsdatei bearbeiten:

nano /usr/local/etc/nginx/nginx.conf 

Laden Sie Ihre Streaming-Module am Anfang der Datei:

load_module /usr/local/libexec/nginx/ngx_stream_module.so;
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

Unter dem Server ändern Sie den Webroot-Speicherort so, dass er mit dem zuvor erstellten übereinstimmt:

Speicherort / {
root /usr/local/www/stream
}

Fügen Sie schließlich Ihre RTMP-Einstellungen hinzu, damit Nginx weiß, wie es mit Ihren Medienstreams umgehen soll:

 RTMP {
Server {
Hören Sie 1935;
chunk_size 4096;

Antrag live {
live auf;
Zeichnen Sie ab;
                                                                                                               

Speichern Sie die Konfiguration. In Nano können Sie dies tun, indem Sie Strg+X drücken , Y , und dann Enter.

Wie Sie sehen können, ist dies eine sehr minimale Konfiguration, die einen funktionierenden Streaming-Server erstellt. Später werden Sie zu dieser Konfiguration etwas hinzufügen, aber das wird Ihnen einen großartigen Ausgangspunkt bieten.

Bevor Sie jedoch mit Ihrem ersten Stream beginnen können, müssen Sie Nginx mit seiner neuen Konfiguration neu starten:

service nginx restart 

Richten Sie Ihre Streaming-Software ein

Senden mit OBS

Nachdem Ihr Server nun bereit ist, Ihre Videostreams zu akzeptieren, ist es an der Zeit, Ihre Streaming-Software einzurichten. Dieses Tutorial verwendet das leistungsstarke Open Source Open Broadcast Studio (OBS).

Gehen Sie zur OBS-Website, suchen Sie den Build für Ihr Betriebssystem und installieren Sie ihn. Nach dem Start von OBS sollten Sie einen Erststart-Assistenten sehen, der Ihnen hilft, OBS mit den Einstellungen zu konfigurieren, die am besten zu Ihrer Hardware passen.

OBS erfasst nichts, weil Sie ihm keine Quelle angegeben haben. Für diese Anleitung erfassen Sie einfach Ihren Desktop für den Stream. Klicken Sie einfach auf das + Schaltfläche unter Quelle , wählen Sie Bildschirmaufnahme , und wählen Sie aus, welchen Desktop Sie erfassen möchten.

Klicken Sie auf OK und Sie sollten sehen, dass OBS Ihren Desktop spiegelt.

Jetzt ist es an der Zeit, Ihren neu konfigurierten Videostream an Ihren Server zu senden. Klicken Sie in OBS auf Datei> Einstellungen . Klicken Sie auf den Stream Abschnitt und legen Sie den Stream-Typ fest zum Benutzerdefinierten Streaming-Server .

Geben Sie im URL-Feld das Präfix rtmp:// ein gefolgt von der IP-Adresse Ihres Streaming-Servers, gefolgt von /live . Zum Beispiel rtmp://IP-ADDRESS/live .

Als Nächstes möchten Sie wahrscheinlich einen Stream-Schlüssel eingeben – eine spezielle Kennung, die zum Anzeigen Ihres Streams erforderlich ist. Geben Sie im Stream-Schlüssel einen beliebigen Schlüssel ein (den Sie sich merken können). Feld.

Klicken Sie auf Anwenden und dann OK .

Jetzt, da OBS so konfiguriert ist, dass es Ihren Stream an Ihren Server sendet, können Sie Ihren ersten Stream starten. Klicken Sie auf Streaming starten .

Wenn alles funktioniert hat, sollte sich die Schaltfläche zu Streaming beenden ändern und einige Bandbreitenmetriken werden unten in OBS angezeigt.

Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie die Stream-Einstellungen in OBS auf Rechtschreibfehler. Wenn alles gut aussieht, könnte es ein anderes Problem geben, das die Funktion verhindert.

Anzeigen Ihres Streams

Ein Live-Video nützt nichts, wenn niemand es ansieht, also sei dein erster Zuschauer!

Es gibt eine Vielzahl von Open-Source-Mediaplayern, die RTMP unterstützen, aber der bekannteste ist wahrscheinlich der VLC-Mediaplayer.

Nachdem Sie VLC installiert und gestartet haben, öffnen Sie Ihren Stream, indem Sie auf Medien klicken> Netzwerk-Stream öffnen . Geben Sie den Pfad zu Ihrem Stream ein, fügen Sie den Stream-Schlüssel hinzu, den Sie in OBS eingerichtet haben, und klicken Sie dann auf Play . Zum Beispiel rtmp://IP-ADDRESS/live/SECRET-KEY .

Sie sollten jetzt Ihren eigenen Live-Videostream sehen!

Wohin als nächstes?

Dies ist ein sehr einfaches Setup, das Sie vom Boden abheben wird. Hier sind zwei weitere Funktionen, die Sie wahrscheinlich verwenden möchten.

  • Zugriff einschränken: Der nächste Schritt, den Sie möglicherweise unternehmen möchten, besteht darin, den Zugriff auf Ihren Server einzuschränken, da die Standardkonfiguration jedem erlaubt, zum und vom Server zu streamen. Es gibt verschiedene Möglichkeiten, dies einzurichten, z. B. eine Betriebssystem-Firewall, eine .htaccess-Datei oder sogar die Verwendung der integrierten Zugriffskontrollen im RTMP-Modul.

  • Streams aufzeichnen: Diese einfache Nginx-Konfiguration wird Ihre Videos nur streamen und nicht speichern, aber das ist einfach hinzuzufügen. Richten Sie in der Nginx-Konfiguration im Abschnitt RTMP die Aufnahmeoptionen und den Ort ein, an dem Sie Ihre Videos speichern möchten. Stellen Sie sicher, dass der von Ihnen festgelegte Pfad existiert und Nginx darauf schreiben kann.

Anwendung live {
             live on;
             alle aufzeichnen;
             record_path /var/www/html/recordings;
             record_unique on;
}

Die Welt des Live-Streamings entwickelt sich ständig weiter, und wenn Sie an fortgeschritteneren Anwendungen interessiert sind, gibt es viele andere großartige Ressourcen, die Sie im Internet finden können. Viel Glück und viel Spaß beim Streamen!


Linux
  1. Zeigen Sie die Netzwerkverbindungen Ihres Linux-Servers mit netstat an

  2. Erstellen Sie mit Fluxion unter Kali Linux einen bösen Zwilling Ihres Netzwerks

  3. Erstellen Sie Ihren Cloud-Speicher mit ownCloud 6 auf Linux Mint 17

  4. So installieren Sie Nextcloud mit Docker auf Ihrem Linux-Server

  5. Sichern Sie Ihren Linux-Server mit Fail2Ban [Anfängerleitfaden]

So erstellen Sie Ihre eigene Linux-Distribution mit Yocto

Streama – Richten Sie in wenigen Minuten Ihren eigenen Streaming Media Server ein

ReaR:Sichern und stellen Sie Ihren Linux-Server vertrauensvoll wieder her

So erstellen Sie einen eigenen Video-Streaming-Server mit OBS Studio unter Linux

So erstellen Sie Ihren eigenen IPsec-VPN-Server unter Linux

DIY NAS Freenas Server - Erstellen Sie Ihr eigenes NAS mit Freenas