On 9/17/20, kaliko <kal...@azylum.org> wrote: > Hi James > > On 16/09/2020 à 19:28, James Klaas wrote : >> […] >> root@myhost:~# service mpd stop >> root@myhost:~# service mpd start >> root@myhost:~# curl http://192.168.144.122:8000 >> curl: (7) Failed to connect to 192.168.144.122 port 8000: Connection >> refused >> >> I tried other commands you mentioned: >> >> […] >> root@myhost:/etc/cron.weekly# lsof -Pan -p 10880 -i >> COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME >> mpd 10880 mpd 4u IPv6 114131524 0t0 TCP *:6600 (LISTEN) >> >> root@myhost:/etc/cron.weekly# ss -antlp | grep mpd >> LISTEN 0 5 *:6600 >> *:* users:(("mpd",pid=10880,fd=4),("systemd",pid=1,fd=108)) >> >> I greped for mpd since the list of services is quite large. I wanted >> to check there was nothing conflicting on port 8000: >> >> root@myhost:~# ss -antlp | grep 8000 > > Well it looks like MPD is listening on :6600 only (is it playing > something?). > >> I don't see anything odd in the logs, when set to verbose: >> >> Sep 14 16:12 : zeroconf: No global port, disabling zeroconf >> Sep 14 16:12 : state_file: Loading state file /var/lib/mpd/state >> Sep 14 16:13 : client: [0] opened from 192.168.47.122:57198 >> Sep 14 16:13 : client: [0] malformed command "GET / HTTP/1.1" >> Sep 14 16:13 : client: [0] closed >> Sep 14 16:20 : client: [1] opened from local >> Sep 14 16:20 : client: [1] process command "outputs" >> Sep 14 16:20 : client: [1] command returned 0 >> Sep 14 16:20 : client: [1] closed > > >> I tried adding port 8000 to /lib/systemd/system/mpd.socket under the >> "[Socket]" section and ran "systemctl daemon-reload". But that seems >> to only expose the socket to port 8000. >> >> Is another section needed in /lib/systemd/system/mpd.socket to open up >> 8000 to the httpd server in mpd? > > Systemd socket activation is meant to launch MPD "on demand" when a client > tries to > connect on port 6600. IMO, you don't need to add 8000 here. > > HTTP output is set in the conf, something like: > > ---- /etc/mpd.conf -------8<------------------- > > audio_output { > type "httpd" > port "8000" > enabled "yes" > ... > } > > ------------------------->8------------------- > > Also, you need to start playing something for MPD to listen on the HTTPD > port. > > Please paste your MPD config as well. > > k. > >
Hrm. I didn't have 'enabled "yes"' as an option. I added that, but it didn't make a difference. So, you say > Also, you need to start playing something for MPD to listen on the HTTPD port but I can't even get there. Unless something has changed the way I start things up is to run mpc add http://192.168.47.122:8000 mpc play Maybe I'm missing something simple. Perhaps we're getting somewhere here though. When I attempt to play on the host machine or specifying the host machine nothing seems to happen. mpc play on the local host or mpc -h 192.168.47.122 play doesn't seem to do anything. Here are the verbose logs from mpd when attempt to "play": Sep 17 10:48 : client: [0] opened from local Sep 17 10:48 : client: [0] process command "play" Sep 17 10:48 : client: [0] command returned 0 Sep 17 10:48 : client: [0] process command list Sep 17 10:48 : client: process command "status" Sep 17 10:48 : client: command returned 0 Sep 17 10:48 : client: process command "currentsong" Sep 17 10:48 : client: command returned 0 Sep 17 10:48 : client: [0] process command list returned 0 Sep 17 10:48 : client: [0] closed Sep 17 10:49 : client: [1] opened from local Sep 17 10:49 : client: [1] process command list Sep 17 10:49 : client: process command "status" Sep 17 10:49 : client: command returned 0 Sep 17 10:49 : client: process command "currentsong" Sep 17 10:49 : client: command returned 0 Sep 17 10:49 : client: [1] process command list returned 0 Sep 17 10:49 : client: [1] closed Here's the output from "mpc stats", so I know there are songs to play: Artists: 317 Albums: 393 Songs: 3289 Play Time: 0 days, 0:00:00 Uptime: 0 days, 0:02:05 DB Updated: Thu Sep 17 10:41:23 2020 DB Play Time: 28 days, 17:57:48 Here's my mpd.conf file: # An example configuration file for MPD. # Read the user manual for documentation: http://www.musicpd.org/doc/user/ # or /usr/share/doc/mpd/user-manual.html # Files and directories ####################################################### # # This setting controls the top directory which MPD will search to discover the # available audio files and add them to the daemon's online database. This # setting defaults to the XDG directory, otherwise the music directory will be # be disabled and audio files will only be accepted over ipc socket (using # file:// protocol) or streaming files over an accepted protocol. # #music_directory "/var/lib/mpd/music" music_directory "/var/lib/mythtv/music" # # This setting sets the MPD internal playlist directory. The purpose of this # directory is storage for playlists created by MPD. The server will use # playlist files not created by the server but only if they are in the MPD # format. This setting defaults to playlist saving being disabled. # playlist_directory "/var/lib/mpd/playlists" # # This setting sets the location of the MPD database. This file is used to # load the database at server start up and store the database while the # server is not up. This setting defaults to disabled which will allow # MPD to accept files over ipc socket (using file:// protocol) or streaming # files over an accepted protocol. # db_file "/var/lib/mpd/tag_cache" # # These settings are the locations for the daemon log files for the daemon. # These logs are great for troubleshooting, depending on your log_level # settings. # # The special value "syslog" makes MPD use the local syslog daemon. This # setting defaults to logging to syslog, otherwise logging is disabled. # log_file "/var/log/mpd/mpd.log" # # This setting sets the location of the file which stores the process ID # for use of mpd --kill and some init scripts. This setting is disabled by # default and the pid file will not be stored. # pid_file "/run/mpd/pid" # # This setting sets the location of the file which contains information about # most variables to get MPD back into the same general shape it was in before # it was brought down. This setting is disabled by default and the server # state will be reset on server start up. # state_file "/var/lib/mpd/state" # # The location of the sticker database. This is a database which # manages dynamic information attached to songs. # sticker_file "/var/lib/mpd/sticker.sql" # ############################################################################### # General music daemon options ################################################ # # This setting specifies the user that MPD will run as. MPD should never run as # root and you may use this setting to make MPD change its user ID after # initialization. This setting is disabled by default and MPD is run as the # current user. # user "mpd" # # This setting specifies the group that MPD will run as. If not specified # primary group of user specified with "user" setting will be used (if set). # This is useful if MPD needs to be a member of group such as "audio" to # have permission to use sound card. # #group "nogroup" # # This setting sets the address for the daemon to listen on. Careful attention # should be paid if this is assigned to anything other then the default, any. # This setting can deny access to control of the daemon. Choose any if you want # to have mpd listen on every address. Not effective if systemd socket # activation is in use. # # For network #bind_to_address "localhost" bind_to_address "any" # # And for Unix Socket #bind_to_address "/run/mpd/socket" # # This setting is the TCP port that is desired for the daemon to get assigned # to. # port "6600" # # This setting controls the type of information which is logged. Available # setting arguments are "default", "secure" or "verbose". The "verbose" setting # argument is recommended for troubleshooting, though can quickly stretch # available resources on limited hardware storage. # log_level "verbose" # # If you have a problem with your MP3s ending abruptly it is recommended that # you set this argument to "no" to attempt to fix the problem. If this solves # the problem, it is highly recommended to fix the MP3 files with vbrfix # (available as vbrfix in the debian archive), at which # point gapless MP3 playback can be enabled. # #gapless_mp3_playback "yes" # # Setting "restore_paused" to "yes" puts MPD into pause mode instead # of starting playback after startup. # #restore_paused "no" # # This setting enables MPD to create playlists in a format usable by other # music players. # #save_absolute_paths_in_playlists "no" # # This setting defines a list of tag types that will be extracted during the # audio file discovery process. The complete list of possible values can be # found in the mpd.conf man page. #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" # # This setting enables automatic update of MPD's database when files in # music_directory are changed. # #auto_update "yes" # # Limit the depth of the directories being watched, 0 means only watch # the music directory itself. There is no limit by default. # #auto_update_depth "3" # ############################################################################### # Symbolic link behavior ###################################################### # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links outside of the configured music_directory. # #follow_outside_symlinks "yes" # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links inside of the configured music_directory. # #follow_inside_symlinks "yes" # ############################################################################### # Zeroconf / Avahi Service Discovery ########################################## # # If this setting is set to "yes", service information will be published with # Zeroconf / Avahi. # #zeroconf_enabled "yes" # # The argument to this setting will be the Zeroconf / Avahi unique name for # this MPD server on the network. # #zeroconf_name "Music Player" # ############################################################################### # Permissions ################################################################# # # If this setting is set, MPD will require password authorization. The password # can setting can be specified multiple times for different password profiles. # #password "password@read,add,control,admin" # # This setting specifies the permissions a user has who has not yet logged in. # #default_permissions "read,add,control,admin" # ############################################################################### # Database ####################################################################### # #database { # plugin "proxy" # host "other.mpd.host" # port "6600" #} # Input ####################################################################### # #input { # plugin "curl" # proxy "proxy.isp.com:8080" # proxy_user "user" # proxy_password "password" #} # ############################################################################### # Audio Output ################################################################ # # MPD supports various audio output types, as well as playing through multiple # audio outputs at the same time, through multiple audio_output settings # blocks. Setting this block is optional, though the server will only attempt # autodetection for one sound card. # # An example of an ALSA output: # #audio_output { # type "alsa" # name "My ALSA Device" # device "hw:0,0" # optional # mixer_type "hardware" # 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 # mixer_type "hardware" # optional # mixer_device "/dev/mixer" # optional # mixer_control "PCM" # optional #} # # An example of a shout output (for streaming to Icecast): # #audio_output { # type "shout" # encoding "ogg" # optional # name "My Shout Stream" # host "localhost" # port "8000" # mount "/mpd.ogg" # password "hackme" # quality "5.0" # bitrate "128" # format "44100:16:1" # protocol "icecast2" # optional # user "source" # optional # description "My Stream Description" # optional # url "http://example.com" # optional # genre "jazz" # optional # public "no" # optional # timeout "2" # optional # mixer_type "software" # optional #} # # An example of a recorder output: # #audio_output { # type "recorder" # name "My recorder" # encoder "vorbis" # optional, vorbis or lame # path "/var/lib/mpd/recorder/mpd.ogg" ## quality "5.0" # do not define if bitrate is defined # bitrate "128" # do not define if quality is defined # format "44100:16:1" #} # # An example of a httpd output (built-in HTTP streaming server): # audio_output { type "httpd" name "My HTTP Stream" encoder "vorbis" # optional, vorbis or lame port "8000" bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 # quality "5.0" # do not define if bitrate is defined bitrate "128" # do not define if quality is defined format "44100:16:1" enabled "yes" # max_clients "0" # optional 0=no limit } # # An example of a pulseaudio output (streaming to a remote pulseaudio server) # Please see README.Debian if you want mpd to play through the pulseaudio # daemon started as part of your graphical desktop session! # #audio_output { # type "pulse" # name "My Pulse Output" # server "remote_server" # optional # sink "remote_server_sink" # optional #} # # An example of a winmm output (Windows multimedia API). # #audio_output { # type "winmm" # name "My WinMM output" # device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional # or # device "0" # optional # mixer_type "hardware" # optional #} # # An example of an openal output. # #audio_output { # type "openal" # name "My OpenAL output" # device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional #} # ## Example "pipe" output: # #audio_output { # type "pipe" # name "my pipe" # command "aplay -f cd 2>/dev/null" ## Or if you're want to use AudioCompress # command "AudioCompress -m | aplay -f cd 2>/dev/null" ## Or to send raw PCM stream through PCM: # command "nc example.org 8765" # format "44100:16:2" #} # ## An example of a null output (for no audio output): # #audio_output { # type "null" # name "My Null Output" # mixer_type "none" # optional #} # # If MPD has been compiled with libsamplerate support, this setting specifies # the sample rate converter to use. Possible values can be found in the # mpd.conf man page or the libsamplerate documentation. By default, this is # setting is disabled. # #samplerate_converter "Fastest Sinc Interpolator" # ############################################################################### # Normalization automatic volume adjustments ################################## # # This setting specifies the type of ReplayGain to use. This setting can have # the argument "off", "album", "track" or "auto". "auto" is a special mode that # chooses between "track" and "album" depending on the current state of # random playback. If random playback is enabled then "track" mode is used. # See <http://www.replaygain.org> for more details about ReplayGain. # This setting is off by default. # #replaygain "album" # # This setting sets the pre-amp used for files that have ReplayGain tags. By # default this setting is disabled. # #replaygain_preamp "0" # # This setting sets the pre-amp used for files that do NOT have ReplayGain tags. # By default this setting is disabled. # #replaygain_missing_preamp "0" # # This setting enables or disables ReplayGain limiting. # MPD calculates actual amplification based on the ReplayGain tags # and replaygain_preamp / replaygain_missing_preamp setting. # If replaygain_limit is enabled MPD will never amplify audio signal # above its original level. If replaygain_limit is disabled such amplification # might occur. By default this setting is enabled. # #replaygain_limit "yes" # # This setting enables on-the-fly normalization volume adjustment. This will # result in the volume of all playing audio to be adjusted so the output has # equal "loudness". This setting is disabled by default. # #volume_normalization "no" # ############################################################################### # Character Encoding ########################################################## # # If file or directory names do not display correctly for your locale then you # may need to modify this setting. # filesystem_charset "UTF-8" # # This setting controls the encoding that ID3v1 tags should be converted from. # #id3v1_encoding "UTF-8" # ############################################################################### # SIDPlay decoder ############################################################# # # songlength_database: # Location of your songlengths file, as distributed with the HVSC. # The sidplay plugin checks this for matching MD5 fingerprints. # See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq # # default_songlength: # This is the default playing time in seconds for songs not in the # songlength database, or in case you're not using a database. # A value of 0 means play indefinitely. # # filter: # Turns the SID filter emulation on or off. # #decoder { # plugin "sidplay" # songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" # default_songlength "120" # filter "true" #} # ###############################################################################