RTMP-Server

Version 17, 2023-05-30, hb9pae


Server-Status


Video-Streams

Mit dem VLC-Player koennen folgende Video-Streams abgerufen werden


Kurzbeschreibung

Dieses Programmpaket steuert ein digitales Amteurfunk-TV Relais (DATV) mit einen DATV Umsetzer.

Einleitung

Funkamateure senden ihre ATV-Signale ueber Internet zum Umsetzer, dieser empfaengt die Signale und sendet Bild- und Tondaten auf einer Amateurfunkfrequenz wieder aus. Gleichzeitig verteilt der RTPM-Server die empfangenen Streamdaten ueber seine Internetadressen wieder an weitere Empfaenger. Das vorliegende Programm laeuft auf einem Raspberry PI Model 4.

Funktionsbeschreibung

Der RTMP-Server wartet auf einen RTMP-Datenstream (Video und Audio). Wird eine gueltiger Datenstream resp. Streamschluesssel erkannt, wird die PTT aktiviert und der Datenstream (Video & Audio) auf dem HDMI-Anschluss ausgegeben. Parallel wird der Datenstream zum Download ueber die eigene Ethernet-Schnittstelle ausgegeben. Das Audio-Signal wird zusaetzlich noch auf der Soundkarte ausgegeben. Im Idle-Mode (kein RTMP-Datenstream) werden auf der HDMI-Schnittstelle Testbilder ausgegeben.


Programm-Komponenten

Zur Steuerung dient eine Python Programm, das je nach Status die einzelnen Subprozesse startet oder stopt.

  1. RTMP-Server Als RTMP-Server dient der NGINX-Webserver mit dem Zusatzmodul "nginx-rtmp-module" Erkennt der RTMP-Server gueltige Stream-Daten schreibt er den Streamschluessel unter /run/shm/nginx. Der RTMP-Server stellt die Streamdaten unter rtmp://localhost/live/STREAMSCHLUESSEL zur Verfuegung.

  2. IDLE-MODE Bedingung: Streamschluessel (/run/shm/nginx) nicht vorhanden. Ausgabe der Testbiler aus dem Verzeichnis "Testbilder" an die HDMI-Schnittstelle Intervall 30 Sekunden. Format: JPG ode PNG. Filename beliebig, Suffix ".JPG" Process: playTestPict, fbi - Linux framebuffer imageviewer

  3. RTMP-Mode Bedingung: Streamschluessel (String, normalerweise Rufzeichen des Funkamteurs) Wird ein Streamschluessel erkannt, beendet die Logik den IDLE-Mode und wechselt in den RTMP-Mode. Die vom RTMP-Server empfangenen Stream-Daten werden in einen FIFO-Buffer geschrieben. Process: rtmpdump - toolkit for RTMP streams Der Process OMX-Player liest die Daten aus dem FIFO-Buffer aus und sendet diese Stream- Daten an die HDMI Schnittstelle.

  4. RTMP-Test MODE Bedingung: Streamschluessel numerisch 1, 2, 3 oder 4 Test Mode:

Logfile

Star- / Stop der Betriebsmodes oder Fehlermeldungen werden in das Logfile geschrieben. LOG: /var/www/stream.log oder http:///streamlog.php

Streamstatus

Der Streamstatus ist unter http://IP-ADRESSE/stats.xls verfuegbar.

Betrieb

Das Programm laeuft im Hintergrund und wird durch den Systemdienst systemd aufgerufen: sudo systemctl enable controlstream Autostart erlauben Mit einem Reboot wird das Programm automatisch gestartet.

Publizieren mit OBS Studio

Zum Publizieren des DATV-Datenstreams kann OBS (Open Broadcast Studio) verwendet werden. Konfiguration OBS: Neben der Serveradresse (rtmp://10.10.10.1/live) muss auch das eigene Rufzeichen als Streamschluessel eingetragen werden.

DATV-Stream empfangen (VLC Player)

Mit dem VLC Player kann der aktuelle Datenstream empfangen und angezeigt werden.

Test Modes

Folgende Test Modes stehen zur Verfuegung. Die Selektion der Test erfolgt mit dem OBS Streamschlussel:

Abruf Video mit VLC

Anstelle des Live-Streams koennen mit VLC folgende Videosequenzen abgerufen werden:

  • rtmp://vod/sample.flv Play Flash Video
  • rtmp:///vod2/1.mp4 Play MP4 Video 1
  • rtmp:///vod2/2.mp4 Play MP4 Video 2
  • rtmp:///vod2/3.mp4 Play MP4 Video 3
  • rtmp:///vod2/4.mp4 Play MP4 Video 4
  • Referenzen