From 9d228068dd17e0f470a9255feaf80d1c90569e86 Mon Sep 17 00:00:00 2001 From: ulrich Date: Sun, 25 Apr 2021 12:55:18 +0000 Subject: [PATCH] Doku erweitert --- README.md | 194 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 190 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 86b6378..81ec699 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,192 @@ -# AV-Direktor +# Calypso -Eine Anwendung zur Steuerung des Mediaplayers -[OMXPlayer](https://www.raspberrypi.org/documentation/raspbian/applications/omxplayer.md) -auf einem Raspberry Pi über HTTP. +Calypso arbeitet als Empfänger von HTTP-Signalen und setzt diese in Kommandos an den [OMXPlayer](https://www.raspberrypi.org/documentation/raspbian/applications/omxplayer.md) um. Auf diese Weise kann ein Raspberry Pi als Abspieler von anderen Geräten aus fernbedient werden, am Pi selbst ist keine Bedienung erforderlich. + +Weitere Infos zu Calypso auf der [Produktseite](https://uhilger.de/data/ulrich/prg/calypso/). + +## Nutzungsvoraussetzungen + +Zur Ausführung von Calypso wird eine Java-Ablaufumgebung (Java Runtime Environment, JRE) benötigt. Auf der Kommandozeile des Raspberry Pi kann mit dem folgenden Kommando ermittelt werden ob das JRE vorhanden ist. + +``` +java -version +``` + +Wenn eine Antwort wie z.B. + +``` +openjdk version "11.0.9.1" 2020-11-04 +OpenJDK Runtime Environment (build 11.0.9.1+1-post-Raspbian-1deb10u2) +OpenJDK Server VM (build 11.0.9.1+1-post-Raspbian-1deb10u2, mixed mode) +``` + +erscheint, ist das JRE vorhanden. Andernfalls kann es mit folgendem Kommando installiert werden: + +``` +sudo apt-get update +sudo apt-get install default-jdk +``` + +## Calypso erhalten + +Der Quellcode von Calypso wird von hier an einen frei wählbaren lokalen Ablageort [heruntergeladen](/gitblit/zip/?r=Calypso.git&format=zip) und entpackt. In der hier folgenden weiteren Beschreibung wird das so entstandene Verzeichnis `Calypso` einschließlich des absoluten Pfades dorthin `$CALYPSO` genannt. Anstelle von `$CALYPSO` würde man also beispielweise `/home/fred/Calypso` notieren, wenn in das persönliche Verzeichnis des Benutzers `fred` heruntergealden und entpackt wurde. + +## Programm herstellen + +Zur Herstellung des Programmes werden mit Hilfe der wie zuvor beschrieben geladenen Teile die folgenden Kommandos ausgeführt (Beispiel für Linux): + +``` +cd $CALYPSO +mkdir classes +mkdir dist + +$JDK/bin/javac -d classes src/de/uhilger/calypso/*.java src/de/uhilger/calypso/handler/*.java + +$JDK/bin/jar -cf dist/calypso.jar -C classes . +rm -r classes +``` + +Das fertig verwendbare Programm liegt anschließend unter `$CALYPSO/dist/calypso.jar`. + +## Media-Quellen einrichen + +Calypso kann in zwei Betriebsarten gestartet werden: + +1. NFS-Client +1. HTTP-Client + +### NFS-Client + +Mit dem Parameter `nfs-prefix` spielt Calypso Media-Inhalte aus Quellen ab, die über das Network File System (NFS) eingebunden sind. + +``` +java -jar calypso.jar nfs-prefix="/media/mc" port=9090 +``` + +In dieser Betriebsart wird dem Inhalt, der beim Abspielen über den Parameter `title` angegeben wird, der Präfix aus dem Parameter `nfs-prefix` vorangestellt. Wird Calypso beispielsweise mit folgendem URL aufgerufen: + +``` +http://rpi4-wz:9090/calypso/play?title=/Filme/H/heat.m4v&th=60&ti=60&o=local +``` + +wird die Datei `/media/mc/Filme/H/heat.m4v` abgespielt. + +#### Betriebsart NFS-Client einrichten + +Zur Verwendung Calypsos in der Betriebsart NFS-Client muss der Raspberry Pi die Softwarepakete für den NFS-Client installiert haben. Zudem muss auf dem Raspberry Pi in der Datei `/etc/fstab` ein Eintrag gemacht werden, der die entsprechende Quelle angibt, z.B. + +``` +mein-media-server:/media/extssd/mc /media/mc nfs rw 0 0 +``` + +Welche Quellen für einen solchen Eintrag verfügbar sind lässt sich auf dem Raspberry Pi mit folgendem Kommando sehen. + +``` +showmount -e mein-media-server +``` + +Die Maschine `mein-media-server` in den obigen Beispielen muss dafür als NFS-Server eingerichtet sein und Inhalte entsprechend via NFS freigeben. + +### HTTP-Client + +Das folgende Kommando startet Calypso als HTTP-Client. + +``` +java -jar calypso.jar port=9090 +``` + + +Wird der Parameter `nfs-prefix` beim Start Calypsos weggelassen, werden im Parameter `titel` Uniform Resource Locators (URLs) zu Media-Quellen erwartet wie z.B. in + +``` +http://mein-raspi:9090/calypso/play?title=http://mein-media-server:8080/tango/media/Filme/H/heat.m4v&th=60&ti=60&o=local +``` + +Für das Abspielen über HTTP muss der Raspberry Pi nicht als NFS-Client eingerichtet werden. Der Media-Server muss dann das Streaming über HTTP implementieren. + +## Steuerbefehle + +Die folgenden Service-Endpunkte werden von Calypso bereitgestellt. + +/calypso/play + +/calypso/seek + +/calypso/pause + +/calypso/stop + +/calypso/ping + +/calypso/server/stop + +### play + +Text + +### seek + +Text + +### pause + +Test + +### stop + +Text + +### ping + +Text + +### server/stop + +Text + +## Calypso als Dienst einrichten + +Das Verteilpaket Calypsos enthält eine Beispieldatei namens `calypso.service`. Diese verweist auf das ebenfalls im Verteilpaket enthaltene Beispiel-Startskript namens `start`. Nach Anpassung der Pfade in `calypso.service` kann die Datei wie in folgendem Beispiel in das passende Systemverzeichnis des Raspberry Pi kopiert werden. + +``` +cd /home/pi/prg/calypso +sudo cp calypso.service /etc/systemd/system/calypso.service +``` + +### Dienst starten + +Mit folgendem Kommando kann der Dienst probehalber gestartet werden. + +``` +sudo systemctl start calypso.service +``` + +### Dienst stoppen + +Der laufende Dienst kann mit folgendem Signal via HTTP veranlasst werden, sich zu beenden. + +``` +http://mein-raspi:9090/calypso/server/stop +``` + +Ueber systemd kann stattdessen der Prozess wie folgt 'hart' beendet werden. + +``` +sudo systemctl stop calypso.service +``` + +### Dienst dauerhaft aktivieren + +Der folgende Befehl bewirkt, dass der Dienst nach einem Neustart des Raspberry Pi automatisch startet. + +``` +sudo systemctl enable calypso.service +``` + +### Dienst deaktivieren + +``` +sudo systemctl disable calypso.service +``` + +### Status des Dienstes pruefen + +``` +sudo systemctl status calypso +``` -- Gitblit v1.9.3