Problème MPD + icecast

Bonjour, j’ai un problème avec la mise en place de mon serveur musical. Je voudrais pouvoir écouter ma musique à distance.

Mon /etc/mpd.conf:

[code]# An example configuration file for MPD

See the mpd.conf man page for a more detailed description of each parameter.

Files and directories

music_directory "/home/house/Musique"
playlist_directory "/home/house/Musique/Playlists"
db_file "/home/house/.mpd/tag_cache"
log_file "/home/house/.mpd/mpd.log"
pid_file "/home/house/.mpd/pid"
state_file “/home/house/.mpd/state”

user “house”

For network

bind_to_address “localhost”

And for Unix Socket

bind_to_address “/var/run/mpd/socket”

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 “default”

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 from http://www.willwap.co.uk/Programs/vbrfix.php), at which

point gapless MP3 playback can be enabled.

#gapless_mp3_playback “yes”

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. Optionally, ‘comment’ can be added to this

list.

#metadata_to_use “artist,album,title,track,name,genre,date,composer,performer,disc”

###############################################################################

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”

###############################################################################

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.

See http://mpd.wikia.com/wiki/Configuration#Audio_Outputs for examples of

other audio outputs.

An example of an ALSA output:

audio_output {
type "alsa"
name "Sound Card"
options "dev=dmixer"
device “plug:dmix” # 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

#}

An example of a shout output (for streaming to Icecast):

audio_output {
type "shout"
encoding “ogg” # optional
name "My Web Radio"
host "MON ADRESSE DYDNS"
port "8000"
mount "/mnt.ogg"
password "MON_MDP"
quality “5.0”

bitrate “128”

format		"44100:16:2"
protocol	"icecast2"		# optional
user		"source"		# optional
description	"My Stream Radio"	# optional
genre		"rock/blues"			# optional
public		"yes"			# optional
timeout		"2"			# optional

}

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”

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 pulseaudio output (streaming to a remote pulseaudio server)

#audio_output {

type “pulse”

name “My Pulse Output”

server “remote_server” # optional

sink “remote_server_sink” # 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”

#}

This setting will change all decoded audio to be converted to the specified

format before being passed to the audio outputs. By default, this setting is

disabled.

#audio_output_format “44100:16:2”

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”

###############################################################################

Volume control mixer

These are the global volume control settings. By default, this setting will

be detected to the available audio output device, with preference going to

hardware mixing. Hardware and software mixers for individual audio_output

sections cannot yet be mixed.

An example for controlling an ALSA, OSS or Pulseaudio mixer; If this

setting is used other sound applications will be affected by the volume

being controlled by MPD.

#mixer_type “hardware”

An example for controlling all mixers through software. This will control

all controls, even if the mixer is not supported by the device and will not

affect any other sound producing applications.

mixer_type “software”

This example will not allow MPD to touch the mixer at all and will disable

all volume controls.

#mixer_type “disabled”

###############################################################################

Normalization automatic volume adjustments

This setting specifies the type of ReplayGain to use. This setting can have

the argument “album” or “track”. See http://www.replaygain.org for more

details. This setting is disabled 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 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 “yes”

###############################################################################

MPD Internal Buffering

This setting adjusts the size of internal decoded audio buffering. Changing

this may have undesired effects. Don’t change this if you don’t know what you

are doing.

#audio_buffer_size “2048”

This setting controls the percentage of the buffer which is filled before

beginning to play. Increasing this reduces the chance of audio file skipping,

at the cost of increased time prior to audio playback.

#buffer_before_play “10%”

###############################################################################

Resource Limitations

These settings are various limitations to prevent MPD from using too many

resources. Generally, these settings should be minimized to prevent security

risks, depending on the operating resources.

#connection_timeout “60”
#max_connections “10”
#max_playlist_length “16384”
#max_command_list_size “2048”
#max_output_buffer_size “8192”

###############################################################################

Character Encoding

If file or directory names do not display correctly for your locale then you

may need to modify this setting. After modification of this setting mpd

–create-db must be run to change the database.

filesystem_charset “UTF-8”

This setting controls the encoding that ID3v1 tags should be converted from.

id3v1_encoding “UTF-8”

###############################################################################[/code]

Mon /etc/icecast2/icecast.xml

[code]

5
2
5
524288
30
15
10

1

65535

<authentication>
    <!-- Sources log in with username 'source' -->
    <source-password>MON_MDP</source-password>
    <!-- Relays log in username 'relay' -->
    <relay-password>MON_MDP</relay-password>

    <!-- Admin logs in with the username given below -->
    <admin-user>admin</admin-user>
    <admin-password>MON_MDP</admin-password>
</authentication>

<!-- set the mountpoint for a shoutcast source to use, the default if not
     specified is /stream but you can change it here if an alternative is
     wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->

<!-- Uncomment this if you want directory listings -->
<!--
<directory>
    <yp-url-timeout>15</yp-url-timeout>
    <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
 -->

<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<hostname>MON ADRESSE DYDNS</hostname>

<!-- You may have multiple <listener> elements -->
<listen-socket>
    <port>8000</port>
    <!-- <bind-address>127.0.0.1</bind-address> -->
    <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>
<!--
<listen-socket>
    <port>8001</port>
</listen-socket>
-->

<!--<master-server>127.0.0.1</master-server>-->
<!--<master-server-port>8001</master-server-port>-->
<!--<master-update-interval>120</master-update-interval>-->
<!--<master-password>hackme</master-password>-->

<!-- setting this makes all relays on-demand unless overridden, this is
     useful for master relays which do not have <relay> definitions here.
     The default is 0 -->
<!--<relays-on-demand>1</relays-on-demand>-->

<!--
<relay>
    <server>127.0.0.1</server>
    <port>8001</port>
    <mount>/example.ogg</mount>
    <local-mount>/different.ogg</local-mount>
    <on-demand>0</on-demand>

    <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
-->

<!-- Only define a <mount> section if you want to use advanced options,
     like alternative usernames or passwords
<mount>
    <mount-name>/example-complex.ogg</mount-name>

    <username>othersource</username>
    <password>hackmemore</password>

    <max-listeners>1</max-listeners>
    <dump-file>/tmp/dump-example1.ogg</dump-file>
    <burst-size>65536</burst-size>
    <fallback-mount>/example2.ogg</fallback-mount>
    <fallback-override>1</fallback-override>
    <fallback-when-full>1</fallback-when-full>
    <intro>/example_intro.ogg</intro>
    <hidden>1</hidden>
    <no-yp>1</no-yp>
    <authentication type="htpasswd">
            <option name="filename" value="myauth"/>
            <option name="allow_duplicate_users" value="0"/>
    </authentication>
    <on-connect>/home/icecast/bin/stream-start</on-connect>
    <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>

<mount>
    <mount-name>/auth_example.ogg</mount-name>
    <authentication type="url">
        <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
        <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
        <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
        <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
    </authentication>
</mount>

-->

<fileserve>1</fileserve>

<paths>
	<!-- basedir is only used if chroot is enabled -->
    <basedir>/usr/share/icecast2</basedir>

    <!-- Note that if <chroot> is turned on below, these paths must both
         be relative to the new root, not the original root -->
    <logdir>/var/log/icecast2</logdir>
    <webroot>/usr/share/icecast2/web</webroot>
    <adminroot>/usr/share/icecast2/admin</adminroot>
    <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> -->

    <!-- Aliases: treat requests for 'source' path as being for 'dest' path
         May be made specific to a port or bound address using the "port"
         and "bind-address" attributes.
      -->
    <!--
    <alias source="/foo" dest="/bar"/>
      -->
    <!-- Aliases: can also be used for simple redirections as well,
         this example will redirect all requests for http://server:port/ to
         the status page
      -->
    <alias source="/" dest="/status.xsl"/>
</paths>

<logging>
    <accesslog>access.log</accesslog>
    <errorlog>error.log</errorlog>
    <!-- <playlistlog>playlist.log</playlistlog> -->
  	<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
  	<logsize>10000</logsize> <!-- Max size of a logfile -->
    <!-- If logarchive is enabled (1), then when logsize is reached
         the logfile will be moved to [error|access|playlist].log.DATESTAMP,
         otherwise it will be moved to [error|access|playlist].log.old.
         Default is non-archive mode (i.e. overwrite)
    -->
    <!-- <logarchive>1</logarchive> -->
</logging>

<security>
    <chroot>0</chroot>
    <!--
    <changeowner>
        <user>nobody</user>
        <group>nogroup</group>
    </changeowner>
    -->
</security>

[/code]

Avec cette configuration, mpd ne fonctionne pas, pas de musique (en faite j’ai de la musique 5 secondes toutes les 15,20 minutes).
127.0.0.1:8000/ fonctionne, je peut m’y connecter. Mais je n’arrive pas à me connecter avec mon adresse dydns (MON ADRESSE DYDNS:8000).

Si je change la partie “host” dans mpd.conf et que je met 127.0.0.1 à la place de mon adresse dyndns tous fonctionne très bien.

Un extrait du log:
Nov 12 22:52 : output: Failed to open “My Web Radio” [shout]: problem opening connection to shout server MON ADRESSE DYDNS:8000: Couldn’t connect

Mon adresse dydns marche, si je la tape sous firefox, je tombe sur la page de config de mon routeur.

Voila si vous avez des pistes je suis preneur.

Salut

  • je pense que tu dois mettre 127.0.0.1 dans mpd.conf car icecast est en local aussi.
  • Tu peux joindre la page de ton routeur via ton adresse dyndns (c’est qui en passant assez dangereux) mais as tu ouvert le port 8000 sur le routeur et l’as tu redirigé vers ton pc (qui doit avec un ip fixe du coup) ?
  • Avec certains routeur, tu ne pas pas tester ton adresse dyndns à l’intérieur du réseau (c-a-d faire une boucle).
    Demande à un ami de tester.
  • Couplé avec pitchfork c’est un système génial !

hello
euh sinon si c est un répertoire distant monter avec fstab ou un mount :slightly_smiling: de cette manière sa deviens local :slightly_smiling:

ssh,nfs,samba