| | |
| | | |
| | | # Calypso |
| | | |
| | | 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. |
| | | Calypso arbeitet als Empfänger von HTTP-Signalen und setzt diese in Kommandos an den [mpv Player](https://mpv.io/) 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/). |
| | | Weitere Infos zu Calypso auf der [Produktseite](https://uhilger.de/data/pg/calypso/). |
| | | |
| | | ## Nutzungsvoraussetzungen |
| | | |
| | |
| | | mkdir classes |
| | | mkdir dist |
| | | |
| | | $JDK/bin/javac -d classes src/de/uhilger/calypso/*.java src/de/uhilger/calypso/handler/*.java |
| | | $JDK/bin/javac -d classes src/de/uhilger/calypso/*.java src/de/uhilger/calypso/actor/*.java src/de/uhilger/calypso/http/*.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 |
| | | ``` |
| | | |
| | | 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 |
| | | ``` |
| | | |
| | | 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 |
| | | ``` |