Also ist die Album-Cover-Darstellung nichts mpd spezifisches, sondern du schreibst selbst ein Programm welches die Cover runterlädt und darstellt?
MPD Server auf der Dreambox
Wir haben aktuell ein Problem mit dem Board und arbeiten an der Lösung...
-
-
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 beendetWas 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
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.confchmod +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 directoryIst das der richtige Weg? Wie komme ich weiter?
Danke Tom
-
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.
-
-
Danke für den Tipp, hab die mpd.conf bereinigt und mpd -v gestartet.
Codeaudio_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:
Codeaudio_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.
-
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ärendInstallation 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"
Code
Alles anzeigengst-plugin-ossaudio-dev: unsatisfied recommendation for gstreamer-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libmikmod-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for liboil-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libogg-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libvorbisidec-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libvorbis-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libmad-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libid3tag-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libsoup-2.4-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for flac-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libmatroska-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libcdio-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for gst-plugins-base-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libgstaudio-0.10-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libgstinterfaces-0.10-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for gobject-2.0-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for gmodule-2.0-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for gthread-2.0-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libc6-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libxml2-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libz-dev gst-plugin-ossaudio-dev: unsatisfied recommendation for libglib-2.0-dev
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:
Codekernel-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:
brachte aber keine Veränderung...wenn ich die Zeile in mpd.conf:
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.0Was liefert der list-Befehl bei jemandem wo oss funktioniert?
-
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.ipkBin 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 -
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 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.0A) 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.ipkDann "alsa" in der mpd.conf konfiguriert:
Code
Alles anzeigenmusic_directory "/media/hdd/mp3" playlist_directory "/media/cf/mpd/playlists" db_file "/media/cf/mpd/mpd.db" log_file "/media/cf/mpd/mpd.log" pid_file "/media/cf/mpd/mpd.pid" state_file "/media/cf/mpd/mpdstate" bind_to_address "any" port "6600" input { plugin "curl" } audio_output { type "alsa" name "dm8000alsa" device "hw:0,0" # optional format "44100:16:2" # optional mixer_type "software" # optional } filesystem_charset "UTF-8"
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
Vielleicht hilft's auch weiter, wenn jemand mal von seinem funktionierenden System die 2 Befehlsausgaben posten:
-
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 sindDas 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)