Forum Linux.debian/ubuntu Mpd et icecast

Posté par (page perso) .
Tags : aucun
0
30
août
2009
Bonsoir,
Je suis en cours de configuration d'un serveur de streaming (Ubuntu 8.04 en machine virtuelle) avec mpd et icecast, Cette machine n'a pas de carte son et visiblement cela pose un souci pour mpd (ou icecast?) pour lancer une musique, lorsqu'avec un client graphique sur un autre poste du réseau ou ncmpc sur le serveur je fais 'play', il affiche le titre 1 seconde comme s'il le lançait puis s'arrête aussitôt.
J'ai suivi ce tuto: http://blog.effraie.org/post/2006/11/06/MPD-et-icecast2-Webr(...)
Il ne semble pas y avoir de problème de mot de passe, la connexion avec les clients se fait très bien, je suppose mais ne sais pas comment vérifier que la connexion entre mpd et icecast se passe bien aussi (il y a également un mot de passe et rien de particulier dans les logs d'icecast)

Voici ce que j'ai dans errors.log de mpd:
Aug 29 23:42 : problems opening audio device while playing "Wortex - Braindamage Scream.mp3"

pour chaque redémarrage de mpd visiblement.
mpd.log donne ceci:
Aug 29 23:59 : Avahi: Service name collision, renaming service to 'Music Player #2'
Aug 29 23:59 : Avahi: Service 'Music Player #2' successfully established.

Cela n'a pas l'air de trop le déranger cependant.

Je souhaiterai savoir si vous auriez d'autres pistes de recherche ou la solution pour pouvoir enfin lancer la lecture
Merci !
  • # mpd.conf + mpc

    Posté par . Évalué à 1.

    Salut,

    N'as tu bien que l'audio_output "shout" dans ton /etc/mpd.conf ?
    Et si oui, est-ce que tu pourrais nous le donner (en virant le mot de passe)?
    Et peut-être aussi lancer le daemon en mode debug

    Autre chose, avec le client mpc, tu peux activer/désactiver avec les options enable/disable
    Exemple chez moi:
    moi@monpc ~% mpc disable 1
    Output 1 (My ALSA Device) is disabled
    Output 2 (My Shout Stream) is enabled
    moi@monpc ~%
    • [^] # Re: mpd.conf + mpc

      Posté par (page perso) . Évalué à 1.

      Je vais revérifier les sorties, mais j'avais fait l'erreur la première fois, donc je devrais avoir corrigé ça en principe.

      Je n'avais effectivement pas pensé à tester avec mpc, je vais voir ça.

      Pour lancer le démon en mode débug tu fais comment ? J'ai vu le paramètre pour les logs dans le fichier de conf avec trois valeurs, default, secure, verbose, est-ce ça ?

      Voilà le mpd.conf
      # An example configuration file for MPD

      ######################## REQUIRED PATHS ########################
      music_directory "/home/vmadmin/musique"
      playlist_directory "/var/lib/mpd/playlists"
      db_file "/var/lib/mpd/tag_cache"
      log_file "/var/log/mpd/mpd.log"
      error_file "/var/log/mpd/errors.log"
      pid_file "/var/run/mpd/pid"
      ################################################################


      ######################## OPTIONAL PATHS ########################
      #
      #
      state_file "/var/lib/mpd/state"
      #
      ################################################################


      ######################## DAEMON OPTIONS ########################
      #
      # If started as root, MPD will drop root privileges and run as
      # this user instead. Otherwise, MPD will run as the user it was
      # started by. If left unspecified, MPD will not drop root
      # privileges at all (not recommended).
      #
      user "mpd"
      #
      # The address and port to listen on.
      #
      bind_to_address "192.168.0.25"
      port "6600"
      #
      # Controls the amount of information that is logged. Can be
      # "default", "secure", or "verbose".
      #
      log_level "secure"
      #
      ################################################################


      ########################## PERMISSIONS #########################
      #
      # MPD can require that users specify a password before using it.
      # You may specify one ore more here, along with what users who
      # log in with that password are allowed to do.
      #
      password "YYYYYYYY@read,add,control,admin"
      #password "pass@read"
      #
      # Specifies what permissions a user who has not logged in with a
      # password has. By default, all users have full access to MPD
      # if no password is specified above, or no access if one or
      # more passwords are specified.
      #
      default_permissions "read"
      #
      ################################################################


      ########################## AUDIO OUTPUT ########################
      #
      # MPD supports many audio output types, as well as playing
      # through multiple audio outputs at the same time. You can
      # specify one or more here. If you don't specify any, MPD will
      # automatically scan for a usable audio output.
      #
      # 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 "My ALSA Device"
      # device "hw:0,0" # optional
      # format "44100:16:2" # optional
      #}
      #
      # An example of an OSS output:
      #
      #audio_output {
      # type "oss"
      # name "My OSS Device"
      # device "/dev/dsp" # optional
      # format "44100:16:2" # optional
      #}
      #
      # An example of a shout output (for streaming to Icecast):
      #
      audio_output {
      type "shout"
      name "Radio"
      host "epy.dyndns.com"
      port "8000"
      mount "/mpd.ogg"
      password "XXXXXXXX"
      quality "5.0"
      bitrate "256"
      format "44100:16:1"
      user "source" # optional
      description "Radio" # optional
      genre "Varié" # optional
      public "yes" # optional
      }
      #
      # Force all decoded audio to be converted to this format before
      # being passed to the audio outputs.
      #
      #audio_output_format "44100:16:2"
      #
      ################################################################


      ############################# MIXER ############################
      #
      # MPD needs to know what mixer settings to change when you
      # adjust the volume. If you don't specify one here, MPD will
      # pick one based on which ones it was compiled with support for.
      #
      # An example for controlling an ALSA mixer:
      #
      #mixer_type "alsa"
      #mixer_device "default"
      #mixer_control "PCM"
      #
      # An example for controlling an OSS mixer:
      #
      #mixer_type "oss"
      #mixer_device "/dev/mixer"
      #mixer_control "PCM"
      #
      # If you want MPD to adjust the volume of audio sent to the
      # audio outputs, you can tell it to use the software mixer:
      #
      #mixer_type "software"
      #
      ################################################################


      ######################### NORMALIZATION ########################
      #
      # Specifies the type of ReplayGain to use. Can be "album" or
      # "track". ReplayGain will not be used if not specified. See
      # <http://www.replaygain.org> for more details.
      #
      replaygain "album"
      #
      # Sets the pre-amp used for files that have ReplayGain tags.
      #
      #replaygain_preamp "0"
      #
      # Enable on the fly volume normalization. This will cause the
      # volume of all songs played to be adjusted so that they sound
      # as though they are of equal loudness.
      #
      volume_normalization "yes"
      #
      ################################################################


      ########################### BUFFERING ##########################
      #
      # The size of the buffer containing decoded audio. You probably
      # shouldn't change this.
      #
      audio_buffer_size "2048"
      #
      # How much of the buffer to fill before beginning to play.
      #
      #buffer_before_play "0%"
      #
      # Similar options for the HTTP stream buffer. If you hear
      # skipping while playing HTTP streams, you may wish to increase
      # these.
      #
      #http_buffer_size "128"
      #http_prebuffer_size "25%"
      #
      ################################################################


      ########################### HTTP PROXY #########################
      #
      # Specifies the HTTP proxy to use for playing HTTP streams.
      #
      #http_proxy_host "proxy.isp.com"
      #http_proxy_port "8080"
      #http_proxy_user "user"
      #http_proxy_password "password"
      #
      ################################################################


      ############################# LIMITS ###########################
      #
      # These are various limits to prevent MPD from using too many
      # resources. You should only change them if they start
      # restricting your usage of MPD.
      #
      connection_timeout "60"
      max_connections "5"
      max_playlist_length "16384"
      max_command_list_size "2048"
      max_output_buffer_size "8192"
      #
      ################################################################


      ###################### CHARACTER ENCODINGS #####################
      #
      # If file or directory names do not display correctly, then you
      # may need to change this. In most cases it should be either
      # "ISO-8859-1" or "UTF-8". You must recreate your database
      # after changing this (use mpd --create-db).
      #
      filesystem_charset "UTF-8"
      #
      # The encoding that ID3v1 tags should be converted from.
      #
      id3v1_encoding "UTF-8"
      #
      ################################################################


      ######################### OTHER OPTIONS ########################
      #
      # The metadata types MPD will recognize.
      #
      #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
      #
      # Enable this if you wish to use your MPD created playlists in
      # other music players.
      #
      #save_absolute_paths_in_playlists "no"
      #
      ################################################################
      J'ai retiré un peu de blabla.

      Merci pour ton aide :) Je vais tester avec mpc de suite
    • [^] # Re: mpd.conf + mpc

      Posté par (page perso) . Évalué à 1.

      Voilà la réponse avec mpc
      $ mpc outputs
      Output 1 (Radio Epy) is enabled
      donc c'est bon il n'y a bien que la sortie shout de définie
      • [^] # Re: mpd.conf + mpc

        Posté par . Évalué à 2.

        Il ne faut pas mettre quality et bitrate en même temps, c est soit l'un soit l'autre

        Si c est pas ca:
        oui, c est bien log_level "verbose" pour le debug
        Sinon tu peux le lancer depuis une console en tapant:
        mpd --no-daemon --verbose --stdout

        A propos de ton fichier de conf, je commencerais par enlever tout ce qui n est pas essentiel comme:
        password "YYYYYYYY@read,add,control,admin"
        replaygain "album"
        volume_normalization "yes"
        audio_buffer_size "2048"
        connection_timeout "60"

        Bon courage
        • [^] # Re: mpd.conf + mpc

          Posté par (page perso) . Évalué à 2.

          Pour quality et bitrate je l'ai corrigé entre temps parce qu'il me faisait une erreur effectivement. Je vais tester, en mode verbose j'ai retrouvé les mêmes erreurs que dans mon premier message principalement, "error opening audio device"
          Je continues les recherches.
          Merci.
        • [^] # Re: mpd.conf + mpc

          Posté par (page perso) . Évalué à 2.

          Après avoir testé ce que tu m'a dit, j'ai eu cette erreur (je l'avais déjà eue avant, mais oubliée entre temps)
          unable to open oss mixer "/dev/mixer"
          using software volume
          Ce qui me surprend c'est que les mixer sont commentés dans le fichier de conf, il doit donc prendre une valeur par défaut.

          Quel 'mixer' est-ce que je dois mettre dans mon cas, je croyais que ça n'était utile que pour la sortie sur une carte son ?
          • [^] # Re: mpd.conf + mpc

            Posté par . Évalué à 2.

            je pense que le mieux dans ton cas est de mettre software

            Je changerais ça aussi (je me méfie des accents...)
            genre "Varié" # optional
            • [^] # Re: mpd.conf + mpc

              Posté par (page perso) . Évalué à 2.

              J'ai refais plein d'essais, il n'y a visiblement plus d'erreurs dans les logs ni au démarrage en mode standalone la sortie est toujours ok
              Les clients se connectent sans problèmes, mais la musique ne se lance pas.
              Il n'y a plus que cette erreur que j'ai depuis le départ dans /var/log/mpd/errors.log
              Aug 30 19:46 : problems opening audio device while playing "Autres/David TMX/David TMX - Argh !/David TMX - Je n'sais dire que du mal des autres.ogg"

              Retour à la case départ :(

              Si je ne me trompe pas, il n'y a là aucune erreur avec icecast puisque l'erreur est la sortie de mpd et non la liaison entre les deux ou icecast lui même (qui ferait que je me connecte au serveur mais pas de son qui en sorte)

              Je viens de regarder il n'y a apparemment pas d'erreur dans les logs d'icecast

              [2009-08-30 19:53:00] INFO fserve/fserve_shutdown file serving thread stopped
              [2009-08-30 19:53:00] DBUG slave/slave_shutdown waiting for slave thread
              [2009-08-30 19:53:01] DBUG slave/_slave_thread shutting down current relays
              [2009-08-30 19:53:01] INFO slave/_slave_thread Slave thread shutdown complete
              [2009-08-30 19:53:01] INFO auth/auth_run_thread Authenication thread shutting $
              [2009-08-30 19:53:01] INFO auth/auth_shutdown Auth thread has terminated
              [2009-08-30 19:53:01] INFO yp/yp_shutdown YP thread down
              [2009-08-30 19:53:02] INFO stats/stats_shutdown stats thread finished
              [2009-08-30 19:53:04] INFO main/main Icecast 2.3.1 server started
              [2009-08-30 19:53:04] DBUG yp/yp_recheck_config Updating YP configuration
              [2009-08-30 19:53:04] INFO yp/yp_update_thread YP update thread started
              [2009-08-30 19:53:04] INFO auth/auth_run_thread Authentication thread started
              [2009-08-30 19:53:05] DBUG slave/_slave_thread checking master stream list
              • [^] # Re: mpd.conf + mpc

                Posté par . Évalué à 2.

                Peut-être qu'il considère icecast comme un device, c est ce qui s'en rapproche le plus dans ta config.
                Peux-tu copier ici ton icecast.xml?
                Sur quel host écoute-t-il? si c'est localhost ou epy.dyndns.com?
                • [^] # Re: mpd.conf + mpc

                  Posté par (page perso) . Évalué à 2.

                  Bon, j'avais fait un long message que je viens de perdre..

                  Icecast écoute sur epy.dyndns.com
                  J'ai eu un doute sachant que mon routeur ne me permet pas d'accéder à mon nom de domaine depuis le local (impossible d'établir une connexion quelque soit le service sur epy.dyndns.com depuis mes machines du réseau, je suis obligé de passer par les ip locales, j'ai donc fait un test pour la connexion entre mpd et icecast et ça réagit exactement pareil, quelque soit le hostname



                  10
                  2
                  5
                  <queue-size>524288</queue-size>
                  <client-timeout>30</client-timeout>
                  <header-timeout>15</header-timeout>
                  <source-timeout>10</source-timeout>

                  <burst-on-connect>0</burst-on-connect>

                  <burst-size>65535</burst-size>


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

                  <!-- Admin logs in with the username given below -->
                  <admin-user>adminis</admin-user>
                  <admin-password>TTTTTT</admin-password>
                  </authentication>
                  epy.dyndns.com
                  <listen-socket>
                  8000
                  <!-- <bind-address>127.0.0.1</bind-address> -->
                  </listen-socket>
                  Tout ce qui n'est pas copié ici est resté d'origine

                  Les pass sont bien identiques (j'ai tenté en omettant le password, mpd ne démarre pas, et avec mot de passes vides ça fait la même chose que d'hab, toujours l'erreur mpd)

                  _o_
                  • [^] # Re: mpd.conf + mpc

                    Posté par (page perso) . Évalué à 2.

                    Et c'est linuxfr qui m'a éjecté quelques balises dans le fichier, je l'avais parfaitement copié entre des balises pre, il y a des balises xml qui se sont barrées
                    • [^] # Re: mpd.conf + mpc

                      Posté par . Évalué à 1.

                      Il y a un user définie dans mpd.conf mais pas dans icecast.xml.
                      user "source" # optional

                      Tu ferais mieux de le commenter
                      • [^] # Re: mpd.conf + mpc

                        Posté par (page perso) . Évalué à 2.

                        En fait si, il y est, mais il peut avoir sauté à cause de linuxfr, il est dans la partie "authentication" c'est le nom de l'utilisateur "obligatoire" utilisé par icecast visiblement puisqu'on ne peut le changer:

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

                        Je vais quand même faire un test en le commentant, sait-on jamais :)

                        Merci encore pour ta ténacité à m'aider sur ce problème très étrange
  • # Presque résolu

    Posté par (page perso) . Évalué à 2.

    J'ai fini par trouver une partie de la solution, je suis tombé sur les versions bugguées de mpd et libshout, il a donc suffit d'ajouter une sortie audio bidon dans mpd
    audio_output {
    type "ao"
    driver "null"
    name "Dummy output"
    }
    Solution trouvée ici:
    http://forum.ubuntu-fr.org/viewtopic.php?id=35853
    dernier post: http://musicpd.org/mantis/view.php?id=1525

    Reste un souci relativement "gênant", il lit les titres à toute vitesse, en 10s il a parcouru un titre de 3 mins :/ Je n'ai pas mis le son mais j'ai les barres de progression sur sonata et ncmpc
    Plutôt étrange non ?
    Des idées ?
    (Pour le moment je ne peux pas mettre à jour le système, j'ai un manque de place important sur cette machine virtuelle donc je le ferai un peu plus tard)
    • [^] # Re: Presque résolu

      Posté par (page perso) . Évalué à 2.

      Une piste de plus grâce à ce commentaire:
      https://linuxfr.org/comments/1064305.html#1064305

      Il se pourrait que les codecs pour mp3 ne soient pas installés, mais dans ce cas ceux pour les ogg non plus puisqu'il se passe la même chose en lecture d'ogg

      Reste à trouver le paquet à installer pour que ça fonctionne, et sinon trouver une autre piste..

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.