HTTP Server von MPD nicht erreichbar

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 23.11.2016 12:43:48

Hi Leute,

installiere mir gerade auf der PI einen MPD Server. Eigentlich kein unüberwindbares Vorhaben, aber ich kann den HTTP Server vom MPD einfach nicht erreichen.

hier der Code diesbezüglich:

Code: Alles auswählen

audio_output {
        type            "httpd"
        name            "MPD-HTTP Stream"
        encoder         "vorbis"                # optional, vorbis or lame
        port            "8888"
#       quality         "5.0"                   # do not define if bitrate is defined
        bitrate         "128"                   # do not define if quality is defined
        format          "44100:16:1"
}
Ich dachte dann das es daran liegt, das etwas nur auf localhost geBINDet wird. Das habe ich dann auch weg gemacht:

Code: Alles auswählen

bind_to_address "0.0.0.0"
Dann dachte ich OK muss die Firewall sein, ausgeschaltet aber der webserver kommt trotzdem nicht unter IP:Port8888 gelaufen. Jemand ne Idee?

man grüßt

DeletedUserReAsG

Re: HTTP Server von MPD nicht erreichbar

Beitrag von DeletedUserReAsG » 23.11.2016 12:47:07

netstat? Logs?

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 23.11.2016 12:58:09

Problem glaube ich jetzt erkannt, netstat erzählt mir das MPD unter IPV6 arbeitet:

Code: Alles auswählen

tcp6       0      0 :::8888                 :::*                    LISTEN      25394/mpd
Das sieht man ja daran das dort tcp6 anstatt nur tcp steht. So jetzt müsste es doch in der mpd.conf wahrsch. ein Schalter geben wo ich ihm sage nur IPv4.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: HTTP Server von MPD nicht erreichbar

Beitrag von smutbert » 23.11.2016 13:57:54

Wenn du in der mpd.conf mit der ipv4-IP festlegst auf welche Interfaces er sich binden soll, etwa

Code: Alles auswählen

bind_to_address "127.0.0.1"
bind_to_address "192.168.1.13"
dann sollte ipv6 nicht mehr stören (können).

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 23.11.2016 14:24:47

Hallo smutbert,

die Aussage von dir ist erstmal total richtig! Nur wenn ich jetzt mit netstat schaue, will mein webserver 8888 garnicht mehr hoch kommen, sondern nur noch der 6600

sudo netstat -apn|grep mpd

Code: Alles auswählen

tcp        0      0 192.168.0.27:6600       0.0.0.0:*               LISTEN      29040/mpd
tcp        0     92 192.168.0.27:6600       192.168.1.200:6438      ESTABLISHED 29040/mpd
unix  3      [ ]         STREAM     CONNECTED     444743   29040/mpd
Das bind habe ich auf die Server-IP gesetzt.

Jetzt scheint das Problem innerhalb von mpd zu sein ;-(

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: HTTP Server von MPD nicht erreichbar

Beitrag von smutbert » 23.11.2016 15:00:10

könnte das vielleicht daran liegen, dass das Netzwerkinterface erst konfiguriert wird, nachdem mpd bereits gestartet ist? (»systemctl restart mpd« sollte alle Zweifel beseitigen)

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 23.11.2016 16:54:58

ne, habe jetzt sogar mal den ganzen server rebootet, MPD kennt nur seinen Port 6600, aber nicht den Webserver:

tcp 0 0 192.168.0.27:6600 0.0.0.0:* LISTEN 2143/mpd

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: HTTP Server von MPD nicht erreichbar

Beitrag von MSfree » 23.11.2016 17:45:13

kleinerspast hat geschrieben:ne, habe jetzt sogar mal den ganzen server rebootet, MPD kennt nur seinen Port 6600, aber nicht den Webserver:
Hast du überhaupt einen Webserver installiert, konfiguriert und gestartet?

Zumindest hat der mpd, den ich hier auf meinem Raspi habe, keinen eigenen Webserver. Port 6600 ist nur ein Port, mit dem mpd angesteuert werden kann, es ist jedoch kein Webserver.

Bei mir habe ich auf dem Raspi noch Apache2 installiert und dort das PHP-Interface, das man sich hier besorgen kann:
http://mpd.wikia.com/wiki/MPDamp

Damit läßt sich mpd dann per Browser ansteuern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: HTTP Server von MPD nicht erreichbar

Beitrag von smutbert » 23.11.2016 19:47:00

Da geht es nur um einen Stream, der von mpd per http zur Verfügung gestellt wird - das sollte mpd also schon alleine können:
https://www.musicpd.org/doc/user/output_plugins.html hat geschrieben:httpd

The httpd plugin creates a HTTP server, similar to ShoutCast / IceCast. HTTP streaming clients like mplayer, VLC, and mpv can connect to it

[…]
Hier habe ich das bind_to_address übrigens noch einmal als Option des Outputplugins gefunden. Hast du das mit bind_to_address auch innerhalb der Definition des output-Plugins versucht?

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: HTTP Server von MPD nicht erreichbar

Beitrag von dufty2 » 23.11.2016 20:55:48

Yo, smutbert hat das schon richtig erfasst, das geht ohne apache ;)
Musste allerdings auch ein Weilchen rumspielen bis das Teil lief:
In "audio_output"
type "httpd"
auch
bind_to_address "127.0.0.1"
einstellen, playliste erstellen (z. B. via "mpc") und dann sollte der HTTP-stream funktionokeln:

Code: Alles auswählen

$ mpv http://localhost:8888/a.m3u

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 23.11.2016 21:02:05

Geil, bin bis zum WE unterwegs, werde dann mal testen! Besten Dank - melde mich am Sa oder So wieder ;-)

BTW an dufty2: Könntest du mir bis zum WE mal den entscheidenen Eintrag aus deiner mpd.conf hier posten? Mir ist vor allem noch nicht klar wie (mit welchem Befehl genau) du auch diese playlist erzeugst...

Danke sehr!

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: HTTP Server von MPD nicht erreichbar

Beitrag von dufty2 » 24.11.2016 05:16:24

Code: Alles auswählen

# apt-get install mpc mpd
<in /etc/mpd.conf den audio_output/httpd auskommentieren>
# systemctl restart mpd.service
# cp "Chopin - Prelude Op. 28 No. 16.mp4" /var/lib/mpd/music
$ mpc update
$ mpc ls | mpc add
$ mpc save a
$ mpc play
$ mpv http://127.0.0.1:8000/a.m3c

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 06.01.2017 12:18:33

Sodele,
heute noch Urlaub und daher die Zeit sinnvoll genutzt. Funktioniert nun fast alles nur noch nicht die Soundausgabe (aber ich kann immerhin im MPD Client schon die Musik sehen und anklicken).
Eben die USB Soundkarte reingesteckt:

Code: Alles auswählen

[3783730.351704] usb 5-1: new full-speed USB device number 2 using sw-ohci
[3783730.532749] usb 5-1: New USB device found, idVendor=0d8c, idProduct=0014
[3783730.538859] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[3783730.542297] usb 5-1: Product: USB Audio Device
[3783730.546824] usb 5-1: Manufacturer: C-Media Electronics Inc.
[3783730.571444] input: C-Media Electronics Inc. USB Audio Device as /devices/platform/sw-ohci.2/usb5/5-1/5-1:1.3/input/input2
[3783730.584420] generic-usb 0003:0D8C:0014.0001: input,hidraw0: USB HID v1.00 Device [C-Media Electronics Inc. USB Audio Device] on usb-sw-ohci-1/input3
[3783731.131615] usbcore: registered new interface driver snd-usb-audio
Man sieht sie auch schon:

Code: Alles auswählen

**** List of PLAYBACK Hardware Devices ****
card 0: sunxicodec [sunxi-CODEC], device 0: M1 PCM [sunxi PCM]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Jetzt ist nur die Frage, wie muss ich diese HW nun in der mpd Konfig angeben, damit Sound klappt?

Code: Alles auswählen

audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "plughw:1,1"    # optional
        format          "44100:16:2"    # optional
        mixer_device    "default"       # optional
        mixer_control   "PCM"           # optional
        mixer_index     "0"             # optional
}
#
# An example of an OSS output:
#
audio_output {
        type            "oss"
        name            "My OSS Device"
        device          "/dev/dsp"      # optional
        format          "44100:16:2"    # optional
        mixer_device    "/dev/mixer"    # optional
        mixer_control   "PCM"           # optional
}
Danke sehr!

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: HTTP Server von MPD nicht erreichbar

Beitrag von smutbert » 06.01.2017 13:16:15

Die USB-Soundkarteaht die Nummer 1 erhalten und verfügt nur über ein Gerät (Nummer 0). man spricht es also zB über "hw:1,0" oder "plughw:1,0" an, letzteres oknvertiert automatisch in ein Format, das die Soundkarte verarbeiten kann und ist überflüssig, wenn du ohnehin eine Samplerate, -tiefe und Kanalzahl angibst, das zur Soundkarte passt. Nachdem 0 außerdem der default ist kann man die Angabe des Geräts auch weglassen ("hw:1") und schließlich greift man besser über die Namen statt über die Nummer zu, weil sich letztere auch ändern können. Ein passender Abschnitt könnte dann so aussehen:

Code: Alles auswählen

audio_output {
        type            "alsa"
        name            "USB-Soundkarte"
        device          "hw:Device"
        format          "44100:16:2"
        mixer_type      "hardware"
        mixer_device    "hw:Device"
#       mixer_control   "Speaker"
}
Ob du nun noch den Namen des passenden Lautstärkereglers scharf schalten musst, hängt von der Hardware bzw. dem Treiber ab, vielleicht heißt er auch PCM oder Master oder du ersparst dir alle mixer_* Zeilen bis auf eine, die mpd die Lautstärke in Software regeln lässt

Code: Alles auswählen

        mixer_type      "software"

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 06.01.2017 13:42:25

Hallo smutbert,

hört sich alles plausibel an, was du erklärst. Habe die Konfig mal so angepasst:

Code: Alles auswählen

audio_output {
        type            "alsa"
        name            "USB-Soundkarte"
        device          "hw:Device"     # optional
        format          "44100:16:2"    # optional
        mixer_device    "hw:Device"     # optional
        mixer_control   "Speaker"       # optional
        mixer_index     "0"             # optional
        mixer_tyler     "software"
}
Leider bleibt es immer noch ruhig ;-)
P.S. Falschaussage von mir- Hatte den Dienst noch nicht neugestartet.

Super, jetzt kann ich am PI selbst die Musik über den USB Soundkarte hören.

Letze Frage:
-----------------
Welche Konfig brauche ich nun im MPD damit ich die Musik auch an einem entfernten Netzwerk Rechner hören kann?
Zuletzt geändert von kleinerspast am 06.01.2017 13:50:17, insgesamt 2-mal geändert.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: HTTP Server von MPD nicht erreichbar

Beitrag von smutbert » 06.01.2017 13:45:01

Dann von vorne. Hörst du etwas bei?

Code: Alles auswählen

$ aplay -D plughw:Device /usr/share/sounds/alsa/Front_Left.wav

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: HTTP Server von MPD nicht erreichbar

Beitrag von kleinerspast » 06.01.2017 15:45:44

Hallo,

also am MPD Server selbst gerade getestet, höre nix und:

Code: Alles auswählen

ALSA lib pcm_hw.c:1401:(_snd_pcm_hw_open) Invalid value for card
aplay: main:682: audio open error: No such device

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: HTTP Server von MPD nicht erreichbar

Beitrag von smutbert » 06.01.2017 19:52:35

Nach deinem letzten Edit im vorigen Beitrag, its mir jetzt nicht ganz klar ob die Ausgabe mit mpd funktioniert oder nicht.
(Woher die aplay-Fehlermeldung rührt ist mir aber auch nicht klar - eigentlich kann ich mir fast nur einen Tippfehler vorstellen, entweder bei dir oder bei mir unbemerkt im Beitrag...)

Für die Wiedergabe über das Netzwerk gibt es viele Möglichkeiten. mpd kann selbst streamen, dann sollte es sich wie ein beliebiger Internetradiosender abspielen lassen, man kann das aber auch Pulseaudio überlassen oder den Audiodatenstrom an ein beliebiges anderes Programm weiterleiten, das dann das Streaming übernimmt.
Hier https://wiki.ubuntuusers.de/MPD/Server/ ... -Webserver unter "Eingebauter Webserver" wäre ein recht simples Beispiel mit dem man sich die Ausgabe von mpd über das Nerzwerk anhören kann.

Antworten