| | |
| | | |
| | | # AV-Direktor |
| | | # Calypso |
| | | |
| | | Der AV-Direktor 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 des AV-Direktor 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 |
| | |
| | | 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 |
| | | |
| | | ## Media-Quellen einrichen |
| | | 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. |
| | | |
| | | Der AV-Direktor kann in zwei Betriebsarten gestartet werden: |
| | | ## Programm herstellen |
| | | |
| | | 1. NFS-Client |
| | | 1. HTTP-Client |
| | | |
| | | ### NFS-Client |
| | | |
| | | Mit dem Parameter `nfs-prefix` spielt der AV-Direktor Media-Inhalte aus Quellen ab, die über das Network File System (NFS) eingebunden sind. |
| | | Zur Herstellung des Programmes werden mit Hilfe der wie zuvor beschrieben geladenen Teile die folgenden Kommandos ausgeführt (Beispiel für Linux): |
| | | |
| | | ``` |
| | | java -jar av-director.jar nfs-prefix="/media/mc" port=9090 |
| | | cd $CALYPSO |
| | | mkdir classes |
| | | mkdir dist |
| | | |
| | | $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 |
| | | ``` |
| | | |
| | | 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 der AV-Direktor beispielsweise mit folgendem URL aufgerufen: |
| | | Das fertig verwendbare Programm liegt anschließend unter `$CALYPSO/dist/calypso.jar`. |
| | | |
| | | ``` |
| | | http://rpi4-wz:9090/avd/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 des AV-Direktors 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. |
| | | |
| | | ``` |
| | | 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 den AV-Direktor als HTTP-Client. |
| | | |
| | | ``` |
| | | java -jar av-director.jar port=9090 |
| | | ``` |
| | | |
| | | |
| | | Wird der Parameter `nfs-prefix` beim Start des AV-Direktors 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 |
| | | ``` |
| | | |
| | | 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 vom AV-Direktor bereitgestellt. |
| | | |
| | | /avd/play + |
| | | /avd/seek + |
| | | /avd/pause + |
| | | /avd/stop + |
| | | /avd/ping + |
| | | /avd/server/stop |
| | | |
| | | ### play |
| | | |
| | | Text |
| | | |
| | | ### seek |
| | | |
| | | Text |
| | | |
| | | ### pause |
| | | |
| | | Test |
| | | |
| | | ### stop |
| | | |
| | | Text |
| | | |
| | | ### ping |
| | | |
| | | Text |
| | | |
| | | ### server/stop |
| | | |
| | | Text |
| | | |
| | | ## AV-Direktor als Dienst einrichten |
| | | |
| | | Das Verteilpaket des AV-Direktors enthält eine Beispieldatei namens `avd.service`. Diese verweist auf das ebenfalls im Verteilpaket enthaltene Beispiel-Startskript namens `start`. Nach Anpassung der Pfade in `avd.service` kann die Datei wie in folgendem Beispiel in das passende Systemverzeichnis des Raspberry Pi kopiert werden. |
| | | |
| | | ``` |
| | | cd /home/pi/prg/av-direktor |
| | | sudo cp avd.service /etc/systemd/system/avd.service |
| | | ``` |
| | | |
| | | ### Dienst starten |
| | | |
| | | Mit folgendem Kommando kann der Dienst probehalber gestartet werden. |
| | | |
| | | ``` |
| | | sudo systemctl start avd.service |
| | | ``` |
| | | |
| | | ### Dienst stoppen |
| | | |
| | | Der laufende Dienst kann mit folgendem Signal via HTTP veranlasst werden, sich zu beenden. |
| | | |
| | | ``` |
| | | http://mein-raspi:9090/avd/server/stop |
| | | ``` |
| | | |
| | | Ueber systemd kann stattdessen der Prozess wie folgt 'hart' beendet werden. |
| | | |
| | | ``` |
| | | sudo systemctl stop avd.service |
| | | ``` |
| | | |
| | | ### Dienst dauerhaft aktivieren |
| | | |
| | | Der folgende Befehl bewirkt, dass der Dienst nach einem Neustart des Raspberry Pi automatisch startet. |
| | | |
| | | ``` |
| | | sudo systemctl enable avd.service |
| | | ``` |
| | | |
| | | ### Dienst deaktivieren |
| | | |
| | | ``` |
| | | sudo systemctl disable avd.service |
| | | ``` |
| | | |
| | | ### Status des Dienstes pruefen |
| | | |
| | | ``` |
| | | sudo systemctl status avd |
| | | ``` |