RTMP Live Streaming von HDMI Receiver/Game Console/TV Setup Box

Einleitung

Nehmen wir an, man möchte aus einer HDMI Quelle aus das Signal Streamen, damit man von überall aus per RTMP auf den Stream zugreifen kann. Die HDMI Quelle kann ein DVB Receiver, PS4, Setup Box oder andere Geräte sein, wichtig ist das das Ausgehende HDMI Signal auf 720p eingestellt wird. Einige Geräte haben ein HDCP Schutz, somit kann das Signal nicht weiterverarbeitet werden, um den Schutz zu entfernen ist ein HDMI Splitter nötig. Das Signal vom HDMI Splitter aus muss dann durch eine HDMI Capture Karte aufgezeichnet werden, dazu ist ein PC nötig, in dieser Anleitung hier ist es ein Windows 7 PC mit eingebauter Avermedia Broadcast HD. Es gibt auch andere Capture Karten, wichtig ist das die Capture Karte mit Adobe Flash Live Encoder kompatibel ist und ein Eingangssignal von 720p unterstützt. Mit Adobe Flash Live Encoder kann dann der HDMI Input weiterverarbeitet werden, man kann den Input direkt auf der Festplatte speichern oder wie in dieser Anleitung hier weiter Streamen. Um das weiter Streamen zu realisieren benötigt man ein RTMP Server, der den RTMP Stream vom Adobe Flash Live Encoder empfangen kann, in dieser Anleitung wird dafür ein Debian Server genutzt. Hier eine bildliche Übersicht:

Voraussetzungen

  • Windows 7 PC mit eingebauter HDMI Capture Karte (zum Beispiel Avermedia Broadcast HD, die Caputre Card muss mit Adobe Flash Live Encoder kompatibel sein und ein Input von 720p unterstützen)
  • Debian Linux Server
  • Receiver mit HDMI Ausgang
  • HDMI Splitter um einen evtl. HDCP Schutz zu umgehen (zu finden auf Amazon)
  • Adobe Flash Live Encoder (Download: Adobe.com)
  • nginx mit RTMP Module

Installation

Adobe Flash Live Encoder

Auf einem Windows PC mit der eingebauter Capture Karte Adobe Flash Live Encoder installieren, kann von hier heruntergeladen werden.

nginx

Auf dem Debian Linux Server nginx mit dem RTMP Modul installieren, ins Verzeichnis usr/src wechseln:

cd /usr/src

Die nginx Quellcode Datei herunterladen:

wget http://nginx.org/download/nginx-1.6.1.tar.gz

Das nginx RTMP Quellcode Modul herunterladen:

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

Die zip Datei entpacken:

unzip master.zip

Die tar.gz Datei entpacken:

tar xfvz nginx-1.6.1.tar.gz

In Das nginx Verzeichnis wechseln:

cd nginx-1.6.1

Konfiguration für nginx vorbereiten

./configure --add-module=../nginx-rtmp-module-master

nginx kompilieren

make

nginx installieren

make install

Das nginx init Skript herunterladen und installieren:

wget -O /etc/init.d/nginx https://raw.githubusercontent.com/Fleshgrinder/nginx-sysvinit-script/master/nginx

Berechtigung für das init Skript setzen:

chmod +x /etc/init.d/nginx

Konfiguration

nginx

In der Hauptkonfiguration von nginx zu unterst in der Konfigurationsdatei folgendes hinzufügen

 	
vi /usr/local/nginx/conf/nginx.conf
include /usr/local/nginx/conf/rtmp.conf;

RTMP Konfiguration erstellen:

 	
vi /usr/local/nginx/conf/rtmp.conf
rtmp {
        server {
                listen 0.0.0.0:1935;
                application live {
                        live on;
                }
        }
}

nginx starten:

 	
/etc/init.d/nginx start

Der nginx Dienst ist jetzt bereit Stream mittels RTMP auf Port 1935 zu empfangen, die Empfangsadresse ist rtmp://<ip debian server>/live.

Receiver / PS4 / Setup-Box

Sicherstellen das das ausgehenge HDMI Signal auf 720p eingestellt ist.

Flash Media Live Encoder

Folgende Einstellung für 720p verwenden, bei FMS URL die RTMP Adresse eingeben: rtmp://<ip debian server>/live bei Stream der Stream Name: mystream

Somit wird der Stream zum RTMP Server gesendet, der Stream kann man danach per rtmp://<ip debian server>/live//mystream aufrufen.


Sie haben weitere Fragen zu dieser Anleitung und möchten gerne mehr Informationen oder brauchen Unterstützung? Wir helfen Ihnen gerne, unsere Kontaktdaten finden Sie hier: https://df-informatik.ch/kontakt/