App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
undisclosed
2023-01-02 aaed2d146028ba1488a7ba7c7e924192b9df8394
README.md
@@ -1,11 +1,13 @@
# Calypso
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.
Calypso arbeitet als Empfänger von HTTP-Signalen und setzt diese in Kommandos an den [VideoLAN Player](https://www.videolan.org/vlc/) 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/pg/calypso/).
## Nutzungsvoraussetzungen
Zur Ausführung von Calypso wird eine Java-Ablaufumgebung (Java Runtime Environment, JRE) benötigt, wie sie beim Raspberry Pi OS in der Variante 'full' bereits vorinstalliert ist. Auf der Kommandozeile des Raspberry Pi kann mit dem folgenden Kommando ermittelt werden ob das JRE vorhanden ist.
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
@@ -22,10 +24,30 @@
erscheint, ist das JRE vorhanden. Andernfalls kann es mit folgendem Kommando installiert werden:
```
sudo apt update
sudo apt install default-jdk
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
@@ -39,20 +61,20 @@
Mit dem Parameter `nfs-prefix` spielt Calypso Media-Inhalte aus Quellen ab, die über das Network File System (NFS) eingebunden sind. 
```
java -jar av-director.jar nfs-prefix="/media/mc" port=9090
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/avd/play?title=/Filme/H/heat.m4v&th=60&ti=60&o=local
http://rpi4-wz:9090/calypso/play?title=/Filme/H/heat.m4v
```
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, wie sie z.B. im Raspberry Pi OS in der Variante 'full' bereits enthalten sind. Zudem muss auf dem Raspberry Pi in der Datei `/etc/fstab` ein Eintrag gemacht werden, der die entsprechende Quelle angibt, z.B.
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
@@ -71,14 +93,14 @@
Das folgende Kommando startet Calypso als HTTP-Client.
```
java -jar av-director.jar port=9090
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/avd/play?title=http://mein-media-server:8080/mediacenter/Filme/H/heat.m4v&th=60&ti=60&o=local
http://mein-raspi:9090/calypso/play?title=http://mein-media-server:8080/tango/media/Filme/H/heat.m4v
```
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.
@@ -87,12 +109,12 @@
Die folgenden Service-Endpunkte werden von Calypso bereitgestellt.
/avd/play +
/avd/seek +
/avd/pause +
/avd/stop +
/avd/ping +
/avd/server/stop
/calypso/play +
/calypso/seek +
/calypso/pause +
/calypso/stop +
/calypso/ping +
/calypso/server/stop
### play