MPD Server auf der Dreambox

Wir haben aktuell ein Problem mit dem Board und arbeiten an der Lösung...
  • Also ist die Album-Cover-Darstellung nichts mpd spezifisches, sondern du schreibst selbst ein Programm welches die Cover runterlädt und darstellt?

  • Genau, das einzig mpd-spezifische ist das Suchen des Verzeichnisses auf dem das Cover liegt. Dazu lese ich die mpd.conf aus und rufe den mpd-client auf. Runterladen von fehlenden Covern kommt irgendwann wenn das alles funktioniert.


    [EDIT]:


    Es ist geschafft! Mein kleines Plugin stellt das Cover des aktuellen Albums auf dem LCD dar. Die Cover müssen auf dem Verzeichnis des Albums liegen und "cover.jpg", "cover.png", "folder.jpg" oder "folder.png" heissen. Wenn kein Cover vorhanden ist, wird das Bild "no_coverArt.png" aus dem Unterverzeichnis des Plugins gezeigt.


    Wer es mal ausprobieren möchte:
    - beide angehängten Datein in das Verzeichnis /usr/lib/enigma2/python/Plugins/Extensions/MyPlugin kopieren
    - im o.g. Verzeichnis das Unterverzeichnis "images" erstellen und ein Bild (png) seiner Wahl mit Namen "no_coverArt.png" kopieren
    - restart enigma
    - das Plugin wird normal über das Erweiterungs-Menü aufgerufen.
    - mit "ok" wird das Plugin beendet


    Was noch fehlt ist der Aufruf über den WebStartStopService, so dass der Fernseher aus bleiben kann.

  • Code
    for string in mpdConfig:
     			if string[:8] == "pid_file":
     				if not fileExists(string[string.find('"')+1:string.rfind('"')]): 
    					self.session.open(MessageBox, _("MPD is not running"), type = MessageBox.TYPE_INFO, timeout = 10)
     					self.close()
     					break


    Interessante Art zu Prüfen ob mpd läuft... funktioniert die auch wenn mpd sich aufgehangen hat, oder abgestürzt ist? Ich hatte mal ein Beispiel gesehn wo es auch über die mpd.py getestet wurde, muss ich aber erstmal wieder finden. Hast du dies bezüglich irgendwelche Vor- /Nachteile entdeckt?


    Irgend so eine Prüfung brauch ich auch noch, damit der Player nicht Enigma2 zum Absturz bringt, wenn mpd nicht läuft :winking_face:


    Das Procedere mit den Covern ist ja doch recht aufwendig, kann ich auf die Schnelle auch nicht alles nachvollziehen. Bin mal gespannt wie es wird.

  • Hallo Axel,


    habe gerade mein vorheriges Post aktualisiert. Musste doch noch einmal quer durch den Code wühlen bis ich verstanden habe, wie das mit Pixmap und ePicload funktioniert. Jetzt läuft es und mir gefällt es. Bin mal gespannt, ob es anderen auch gefällt. Kannst es gerne in Dein Plugin übernehmen.


    Die Prüfung musste ich auch noch umbauen. Klappt jetzt auch.

  • Ich benutze als Client für mpd die iOS-App MPoD. Dort kann man WebServices hinterlegen, die bei "Play" bzw. "Stop" ausgeführt werden. Da sind die WebServices von Dr.Bests WebStartStopService eingetragen, so dass mpd ohne eingeschalteten Fernseher laufen kann.

    Ich habe das WebStartStopService Plugin von Dr.Best jetzt ergänzt. Folgende neue Features sind implementiert:


    MEHRMALIGES STOPPEN: Das mehrmalige Stoppen des laufenden Services bereitet keine Probleme mehr. Wenn der Service bereits gestoppt wurde, wird er nicht nochmal angehalten.


    COVER-ART im LCD: Nach Stoppen des laufenden Services beginnt die CoverArt-Darstellung im LCD! Die Cover werden aus dem Album-Verzeichnis geladen. Es werden Dateien mit Namen "cover.png", "cover.jpg", "folder.png", "folger.jpg" unterstützt. Wird kein Cover-Art gefunden, wird das Default-Bild angezeigt.


    BEENDEN per FERNBEDIENUNG: mpd kann auch durch Drücken der Tasten <ok> oder <cancel> beendet werden. Der ursprüngliche Service wird dann wieder gezeigt.


    Zur Installation: Die Datein in das WebStartStopService Verzeichnis (/usr/lib/enigma2/python/Plugins/Extensions/WebStartStopService) entpacken. Bitte darauf achten, dass die *pyc Datein aus dem Verzeichnis gelöscht werden, falls die Version von Dr. Best vorinstalliert ist.


    Viel Spass

  • Möchte mit dem Droid MPD Client einen MPD Server auf der dm8000 (release-dm8000-3.2.2+GP3) nutzen. Noch ist mir nicht ganz klar was ich alle brauche, um den MPD Server nutzen bzw. starten/stoppen zu können.


    Folgendes ist schon passiert
    aus dreamMPD_v0.3r0.tar:
    /dreamMPD/ nach: /usr/lib/enigma2/python/Plugins/Extensions/dreamMPD/


    aus mpd_0.16.8.zip:
    /usr/bin/mpd nach: /usr/bin/
    /etc/init.d/mpd nach: /etc/init.d/mpd
    /etc/mpd.conf nach: /etc/mpd.conf


    chmod +x /etc/init.d/mpd
    chmod +x /usr/bin/mpd


    > /etc/init.d/mpd start
    Starting music player daemon: mpd.
    /usr/bin/mpd: error while loading shared libraries: libavahi-glib.so.1: cannot open shared object file: No such file or directory


    Ist das der richtige Weg? Wie komme ich weiter?


    Danke Tom

    Wir haben alle den gleichen Himmel, aber nicht alle den gleichen Horizont. *** DM8000 - OE2.0+GP3.2

    Einmal editiert, zuletzt von tomde ()

  • dreamMPD brauchst Du nur, um MPD über den Fernseher zu steuern - willst Du ja nicht, brauchst das also schon mal nicht zu installieren.


    Am besten installierst Du MPD mit dem mpd***ipk Paket, das axelr gebaut hat. (Beitrag auf Seite 4: MPD_0.16.8 als IPKG). Da sollten die Abhängigkeiten automatisch aufgelöst werden.


    Dann solltest Du in der mpd.conf die Ausgabe auf OSS umstellen, da ALSA Abbrüche erzeugt. Leider müssen bei der DM8000 einige Pakete nachinstalliert werden. Findest Du auch hier im Thread, musst halt ein wenig lesen.


    mpd läuft unabhängig von enigma, so dass sich die Audioausgabe überlagert, wenn der laufende enigma-Service (TV, Radio) nicht abgestellt wird. Dazu gibt es das WebStartStopService. Du kannst das auch vom o.g. Beitrag nehmen, oder das von mir modifizierte. Im iOS-MPD-Client MPOD kann man den WebStartStopService einbinden, so dass bei Start von mpd der aktuelle Service angehalten wird, bzw. wieder startet. Vielleicht geht das mit Droid MPD Client. Ansonsten per Hand über den Browser.

  • Danke, mkempes.
    Habe vom feed-rel_32 die Pakete:
    - libsqlite3-0_3.6.23.1-r0_mipsel.ipk
    - libavahi-glib1_0.6.25-r2_mipsel.ipk
    und dann hier aus dem Thread:
    - mpd_0.16.8_mipsel.ipk
    - wsss_1.0_mipsel.ipk
    installiert und in mpd.cfg den oss - audio output aktiviert.


    Ein:
    /usr/bin/mpd &
    liefert ein: Expected '}' before end-of-file
    Was kann das sein?


    PS.: dreamMPD werde ich bestimmt auch mal ausprobieren, bekomme aber greenscreen, vermutlich weil MPD-Server (noch) nicht läuft.

    Wir haben alle den gleichen Himmel, aber nicht alle den gleichen Horizont. *** DM8000 - OE2.0+GP3.2

    Einmal editiert, zuletzt von tomde ()

  • tomde: ich tippe das liegt an der mpd.conf. Poste mal die Datei, ich schau mal rein.


    PS: Du brauchst mpd nicht als Hintergrundprozess starten. Das ist ein Daemon, läuft also automatisch im Hintergrund.

  • Danke für den Tipp, hab die mpd.conf bereinigt und mpd -v gestartet.

    Code
    audio_output {
    	type		"oss"
    	name		"dm8000oss"
    	device		"/dev/dsp"	# optional
    	format		"44100:16:2"	# optional
    	mixer_type      "software"	# optional: alsa/software/hardware
    	mixer_device	"/dev/mixer"	# optional
    	mixer_control	"PCM"		# optional
    }


    Trotzdem bringt Droid MPD Client: Error opening OSS device

    Code
    ...
    Jun 06 22:44 : output: Failed to open "dm8000oss" [oss]: Error opening OSS device "/dev/dsp": No such file or directory
    Jun 06 22:44 : player_thread: problems opening audio device while playing "test1.mp3"

    mit dreamMPD siehts ähnlich aus.


    Mit testweise output alsa:

    Code
    audio_output {
    	type		"alsa"
    	name		"dm8000alsa"
    	device		"hw:0,0"	# optional
    	format		"44100:16:2"	# optional
    	mixer_type      "software"	# optional
    }

    zeigt das Log keine Fehler, ich höre aber auch nichts.

    Wir haben alle den gleichen Himmel, aber nicht alle den gleichen Horizont. *** DM8000 - OE2.0+GP3.2

    2 Mal editiert, zuletzt von tomde ()

  • Mit Alsa bricht mpd dauernd ab. Das brauchst Du nicht weiter versuchen.


    Die DM8000 hat die OSS-Pakate nicht an Bord. Du musst sie nach-installieren. Das hatte ich in meiner Mail oben geschrieben. Schau mal in diesem Thread nach, welche Pakete das sind und wo Du sie bekommst. Schnurzelpurzel hat das auch geschafft, der hilft Dir sicher gerne.


    Im Anhang meine mpd.conf - Verzeichnisse müssen natürlich angepasst werden.

  • Hier ein neues Release meines WebStartStopServices-Mod.


    Neue Features betreffen die Fernbedienung, d.h. mpd kann auch rudimentär mit der Fernbedienung gesteuert werden. Die Tastaturbelegung ist wie folgt:


    - ok, cancel: Beenden von mpd, alter Service startet
    - previous, next, play, pause, stop: selbsterklärend


    Installation wie gehabt:
    Die Datein in das WebStartStopService Verzeichnis (/usr/lib/enigma2/python/Plugins/Extensions/WebStartStopService) entpacken. Bitte darauf achten, dass die *pyc Datein aus dem Verzeichnis gelöscht werden, falls die Version von Dr. Best vorinstalliert ist.


    Getestet für DM800se!

  • die "-dev"-packages bringen bei der Installation haufenweise "unsatisfied recommendation"


    ist die Frage ob die 2 -dev-Pakete benötigt werden, dann muss ich sicher auch die Empfehlungen installieren...??


    Für mein 3.2.2release image hier im feed noch 2 oss Kernel-Module gefunden:


    Code
    kernel-module-snd-mixer-oss_2.6.18-r19.0_dm8000.ipk
    kernel-module-snd-pcm-oss_2.6.18-r19.0_dm8000.ipk


    Deren Installation und das einbinden:

    Code
    modprobe snd-mixer-oss 
    modprobe snd-pcm-oss


    brachte aber keine Veränderung...


    wenn ich die Zeile in mpd.conf:

    Code
    device		"/dev/dsp"


    auskommentiere kommt:
    output: line 220: error trying to open default OSS device
    nehme ich sie rein:
    output: Failed to open "dm8000oss" [oss]: Error opening OSS device "/dev/dsp": No such file or directory


    > opkg list_installed | grep -i oss


    gst-plugin-oss4audio - 0.10.30-r0.1
    gst-plugin-oss4audio-dev - 0.10.30-r0.1
    gst-plugin-ossaudio - 0.10.30-r0.1
    gst-plugin-ossaudio-dev - 0.10.30-r0.1
    kernel-module-snd-mixer-oss - 2.6.18-r19.0
    kernel-module-snd-pcm-oss - 2.6.18-r19.0


    Was liefert der list-Befehl bei jemandem wo oss funktioniert?

    Wir haben alle den gleichen Himmel, aber nicht alle den gleichen Horizont. *** DM8000 - OE2.0+GP3.2

    2 Mal editiert, zuletzt von tomde ()

  • Die dev-pakete sind m.W. nicht notwendig und mit den anderen vier Paketen sollte oss laufen. Hast Du nach der Installation ein Reboot gemacht?

  • ja reboot mehrfach.


    Installationen vom feed sind fehlerfrei gelaufen:
    opkg install libavahi-glib1_0.6.25-r2_mipsel.ipk
    opkg install libsqlite3-0_3.6.23.1-r0_mipsel.ipk
    opkg install gst-plugin-ossaudio_0.10.30-r0.1_mipsel.ipk
    opkg install gst-plugin-oss4audio_0.10.30-r0.1_mipsel.ipk
    opkg install kernel-module-snd-mixer-oss_2.6.18-r19.0_dm8000.ipk
    opkg install kernel-module-snd-pcm-oss_2.6.18-r19.0_dm8000.ipk


    Bin mir nicht sicher wie das Einbinden der Kernelmodule geht:
    > modprobe -v kernel-module-snd-pcm-oss
    modprobe: module kernel-module-snd-pcm-oss not found in modules.dep
    > modprobe -v kernel-module-snd-mixer-oss
    modprobe: module kernel-module-snd-mixer-oss not found in modules.dep
    ???


    Das mpd.log sieht gut aus bis ich im Droid MPD Client Play drücke:
    Jun 08 22:09 : avahi: Service group changed to state 1
    Jun 08 22:09 : avahi: Service group is REGISTERING
    Jun 08 22:09 : avahi: Service group changed to state 2
    Jun 08 22:09 : avahi: Service 'Music Player' successfully established.
    Jun 08 22:09 : client: [0] command returned 0
    Jun 08 22:09 : client: [0] process command "play"
    Jun 08 22:09 : playlist: play 5:"1.mp3"
    Jun 08 22:09 : decoder_thread: clearing mixramp tags
    Jun 08 22:09 : decoder_control: mixramp_start = NULL
    Jun 08 22:09 : decoder_control: mixramp_prev_end = NULL
    Jun 08 22:09 : client: [0] command returned 0
    Jun 08 22:09 : playlist: queue song 6:"2.mp3"
    Jun 08 22:09 : client: [0] process command "status"
    Jun 08 22:09 : client: [0] command returned 0
    Jun 08 22:09 : decoder: audio_format=44100:24:2, seekable=true
    Jun 08 22:09 : output: Failed to open "dm8000oss" [oss]: Error opening OSS device "/dev/dsp": No such file or directory

    Wir haben alle den gleichen Himmel, aber nicht alle den gleichen Horizont. *** DM8000 - OE2.0+GP3.2

    2 Mal editiert, zuletzt von tomde ()

  • da sind die oss pakete nicht richtig installiert, die in den alsa paketen sind






    opkg install alsa-dev
    opkg install libao-alsa
    opkg install alsa-lib
    opkg install alsa-server

  • Hmm, die Fragen werden leider nicht weniger :winking_face: libao-alsa habe ich nirgends gefunden, weder im feed noch über die Oberfläche. Die anderen 3 habe ich installiert:


    > opkg list_installed | grep -iE "alsa|oss"


    alsa-conf - 1.0.20-r3
    alsa-conf-base - 1.0.20-r3
    alsa-dev - 1.0.20-r3
    alsa-lib - 1.0.20-r3
    alsa-server - 1.0.20-r3
    gst-plugin-alsa - 0.10.35-r0.0
    gst-plugin-oss4audio - 0.10.30-r0.1
    gst-plugin-ossaudio - 0.10.30-r0.1
    kernel-module-snd-mixer-oss - 2.6.18-r19.0
    kernel-module-snd-pcm-oss - 2.6.18-r19.0


    A) Werden die folgenden alsa Pakete aus dem Feed nicht benötigt? :


    alsa-lib-dbg_1.0.20-r3_mipsel.ipk
    alsa-lib-dev_1.0.20-r3_mipsel.ipk
    alsa-lib-static_1.0.20-r3_mipsel.ipk


    Dann "alsa" in der mpd.conf konfiguriert:



    Server startet.


    B) Bei Play kommen immerhin, aber nur kurz 1 oder 2 Sekunden des Songs, meist abgehackt - danach ist aber wieder Stille..?? Übrigens ist der TV per HDMI angeschlossen.


    C) Ein "http://IP/stopService" meldet im Exporer "stop+" zurück und das TV-Bild steht, das ist wohl so korrekt, aber irgendwann startet e2 einfach neu, manchmal auch mit greenscreen...??
    D) Geht das stoppen auch über einen Befehl in der Kommandozeile?


    Habe alle OSS-Module wieder deinstalliert aber auch keine Verbesserung erzielt, nehme Ideen zu A,B,C oder D für meine dm8000 gerne entgegen :winking_face:


    Vielleicht hilft's auch weiter, wenn jemand mal von seinem funktionierenden System die 2 Befehlsausgaben posten:

    Code
    opkg list_installed | grep -iE "alsa|oss"
    cat /etc/mpd.conf | grep -v '^#' | grep -v "^ *$"

    Wir haben alle den gleichen Himmel, aber nicht alle den gleichen Horizont. *** DM8000 - OE2.0+GP3.2

    7 Mal editiert, zuletzt von tomde ()

  • Ich hatte mal wieder etwas Zeit an dreamMPD zu arbeiten. Die größte Neuerung ist, dass sich dreamMPD über ein Webinterface starten lässt und damit die Funktion des WebStartStop Skriptes übernehmen kann. Damit es nicht zu Konflikten mit dem alten Skript kommt, habe ich die Adresse auf "BOXIP/startMPDmode" geändert. Die Möglichkeit dreamMPD über den blue-button zu starten besteht weiterhin.


    Ansonsten habe ich die Actionmap angepasst das die "previous Song" Funktion nicht zum Beenden des Programms führt. Ferner musste ich aus unbekannten Gründen die GUI verkleinern weil sie nicht mehr auf meinen Bildschirm passte.


    Wenn man jetzt dreamMPD statt des StartStop-Skriptes verwendet kann man jederzeit auch mit der Fernbedienung MPD steuern oder auf dem Fernsehr die Infos sehen. Ein "Start-Service-Skript" gibt es allerdings nicht. DreamMPD kann nur mit der Fernbedienung beendet werden. Wers mit einem Webinterface beenden möchte sollte sich den Link zu "Exit" taste der Webfernbedienung
    suchen.
    Viel Spaß beim Testen!


    Gruß Axel

  • Hallo zusammen,


    ist es möglich mpd auch auf einer 2.0 Box zum installieren.Ich betreibe eine dm500hd mit 4GB Flash Expander und opendreambox 2.0


    wenn ich versuche die hier angegebenen files zu oinstallieren bekomme ich Fehlermeldungen offenbar werden mips23el pakete erwartet.

  • Nachdem ich erkannt habe dass im OE2.0 die Dreambox mit Bordmitteln zum DLNA Renderer wird, ist meiner Meinung nach die Diskussion über MPD obsolet.


    Der DLNA/Upnp Renderer funktioniert mit Musik, Bildern, Videos, Spielfilmen etc. und hat kein Problem mit dem unterdrücken des TV-Tons.Es gibt genug Media Controller auf PC, Mac iOS und Andriod Plattformen um die Dreambox zu steuern.


    Mein Setup besteht aus einem Sysnology NAS mit aktiviertem DLNA Medienserver und einer dm500hd bei der die Pakete
    enigma2-plugin-systemplugins-upnp
    und
    enigma2-plugin-demoplugins-upnpmediarendererdemo
    installiert sind


    Das ganze steuere ich über die iOS App 8player.
    Das sollte mit allen DLNA fähigen Medienservern laufen. Für die Synology NAS Geräte muss dazu der Medienserver aktiviert sein.


    Es gibt auch nativen Support für Besitzer eines Synology NAS. Dann sollte statt des Medienservers die Audio- und die Video-Station aktiviert werden.
    Diese und ihre iOS und Android Apps können dann die Dreambox ebenfalls als Ausgabegerät verwenden. (DS Video erst ab DSM 4.2)