Diffuser sa musique avec MPD sous DSM 7.0

Pourquoi ne pas profiter de la musique stockée sur votre NAS pour la diffuser en streaming chez vous ?

J’avais présenté il y a quelques temps déjà une solution avec IceCast / EZStream pour la diffusion audio, sachant que celle-ci était limitée au niveau des formats audio reconnus (limitation venant d’EZStream). L’alternative étant de remplacer EZStream par FFMPEG pour obtenir des formats audio reconnus plus nombreux.

Une autre solution consiste à utiliser MPD « Music Player Daemon » dont je vais présenter la configuration et l’utilisation pour DSM 7.0. Il s’agit d’un portage réalisé pour les NAS Synology. Accrochez vos ceintures.

Etant donné qu’on n’est pas encore sur la sortie officielle de DSM 7.0, je rappelle que le paquet présenté ici est à considérer comme une version béta, même s’il reste fonctionnel.

Deux configurations seront présentées :

  • L’usage de MPD seul (il inclut une option de diffusion avec serveur HTTP intégré)
  • L’usage de MPD couplé à IceCast (ce dernier servant de serveur de diffusion)

Installation de MPD

Ajoutez le centre de paquets DigitalBox DSM 7 Repo à votre NAS en indiquant l’URL http://digital.box.free.fr/dsm7 :

La liste des paquets disponibles devrait apparaitre dans « Communauté » :

Si MPD a été porté pour votre modèle de NAS, il devrait apparaitre.

Lancez l’installation du paquet et acceptez le message ci-dessous :

Il faut ensuite indiquer quelques paramètres :

  • Music folder : il s’agit du chemin sur votre NAS contenant vos fichiers musicaux
  • NAS IP address : adresse IP locale de votre NAS
  • MPD port : le port d’écoute pour le serveur MPD (6600 par défaut)

Dans l’écran suivant, décochez l’option « Lancer après l’installation » :

Votre serveur MPD est dorénavant installé. Il reste quelques éléments de configuration à apporter.

Configuration

Le serveur MPD s’exécute sous votre NAS via l’utilisateur « sc-mpd ».

Il faut donc donner à cet utilisateur les droits pour accéder à votre dossier musical.

Pour cela, allez dans « File Station » et faites un clic droit « Propriétés » sur votre dossier :

Allez dans « permissions » puis attribuez tous les droits « Lire » comme ci-dessous :

Validez vos changements et avant de sauvegarder, pensez à cliquer sur « Appliquer à ce dossier, ces sous-dossiers et ces fichiers » :

De manière à indiquer à MPD de lancer un serveur HTTP pour diffuser les fichiers audio, connectez-vous en SSH à votre NAS pour modifier le fichier « mpd.conf » :

cd /var/packages/mpd/
sudo vi home/mpd.conf

Puis décommentez les lignes correspondant à la section « audio_ouput » pour le type « httpd » comme ci-dessous :

#
# An example of a httpd output (built-in HTTP streaming server):
#
audio_output {
    type        "httpd"
    name        "NAS 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"
    max_clients "0"         # optional 0=no limit
}
#

Pensez également à commentez les lignes ci-dessous si vous ne faites pas de diffusion vers un serveur IceCast (cela sera vu dans un deuxième temps) :

# Shout output for streaming to Icecast:
#
#audio_output {
#   type        "shout"
#   name        "Shout Stream Radio"
#   encoder     "vorbis"        # optional
#   host        "localhost"
#   port        "8000"
#   mount       "/radio.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
#}

Sauvegardez vos modifications faites dans ce fichier.

Retournez dans le centre de paquets et lancez le serveur MPD :

Vous devriez voir le statut changer :

Notez que lors du premier démarrage du serveur MPD, celui-ci consulte le dossier de votre musique pour alimenter sa base de données interne. Cela prend quelques minutes.

Si vous souhaitez savoir si MPD constitue toujours la liste de vos fichiers musicaux, en vous connectant en SSH à votre NAS, tapez les commandes ci-dessous :

sudo tail -f /var/packages/mpd/home/.mpd/log

Si la liste n’évolue plus, c’est que MPD a fini sa lecture de vos fichiers audio!

Enfin notez quelques éléments de configuration dans le fichier « mpd.conf » modifié précédemment :

  • music_directory : le chemin d’accès à vos fichiers audio (indiqué au moment de l’installation)
  • playlist_directory : le dossier où se trouveront stockées vos playlists (si vous en créez)
  • db_file : la base de données interne de MPD
  • log_file : le fichier de log
music_directory     "/volume1/music/iTunes Media/"
playlist_directory      "~/.mpd/playlists"
db_file         "~/.mpd/database"
log_file            "~/.mpd/log"

Votre serveur MPD est maintenant fonctionnel !

Voyons voir comment l’utiliser.

Utilisation

Tout d’abord il est possible consulter votre serveur en ligne de commande via le client « mpc ».

Si vous êtes sous Mac et que vous avez déjà utilisé « homebrew », installez « mpc » via la commande :

brew install mpc 

Le commande ci-dessous permet de connaitre les statistiques de votre serveur MPD (indiquez après « host » l’adresse IP locale de votre NAS) :

mpc --host=192.168.1.79 stats             
Artists:   1648
Albums:     699
Songs:     6853

Play Time:    0 days, 0:00:00
Uptime:       0 days, 0:06:57
DB Updated:   Thu Mar 18 20:17:20 2021
DB Play Time: 40 days, 13:43:22

Ici ll y a un peu plus de 6000 chansons 🙂

Enfin il est possible d’interroger le serveur sur un nom d’album ou encore d’artiste :

mpc --host=192.168.1.79 search Album Hyper

Hervé/Hyper/01 Le Premier Jour Du Reste De Ma Nuit.m4a
Hervé/Hyper/02 Trésor.m4a
Hervé/Hyper/03 Cœur Poids Plume.m4a
Hervé/Hyper/04 Maelström.m4a
Hervé/Hyper/05 Si Bien Du Mal.m4a
Hervé/Hyper/06 Fureur De Vivre.m4a
Hervé/Hyper/07 Paréo Parade.m4a
Hervé/Hyper/08 Addenda.m4a
Hervé/Hyper/09 La Peur Des Mots.m4a
Hervé/Hyper/10 Des Airs De Toi.m4a
Hervé/Hyper/11 Bel Air.m4a

Ici le dernier album de l’artiste français Hervé.

Passons maintenant à un moyen plus graphique d’utiliser le serveur : ici le client « Persephone » sous Mac.

Vous pouvez utiliser n’importe quel autre client MPD en consultant la page « Clients for the Music Player Daemon » du site officiel.

Si – comme moi- vous êtes sous Mac, vous pouvez télécharger et installer le client « Persephone » via le lien : https://persephone.fm

Lancez l’application et allez dans le menu « Preferences » :

Indiquez l’adresse IP locale de votre NAS et le port 6600 qui est celui par défaut.

Ensuite lancez la connexion via le menu « Connect » :

Si tout se déroule bien, le client va vous permettre de consulter l’ensemble des titres audio de votre NAS et de constituer une liste de lecture :

Notez que « Persephone » est une version « alpha », c’est à dire que certaines fonctionnalités ne sont pas encore implémentées (comme celle de la recherche).

Pour ajouter un album au flux de diffusion MPD, sélectionnez l’album en question puis avec clic droit « Add album to queue » :

Sur la partie latérale gauche vous devriez voir l’ensemble des morceaux de l’album constituer la file de lecture :

Lancez la lecture de la file :

Si vous n’entendez rien c’est normal : ici le client permet de définir et contrôler le flux entrant vers MPD.

Pour la lecture (ie le flux sortant de MPD), vous pouvez lancer le navigateur Chrome et entrez l’adresse du flux audio http://192.168.1.79:8000 (adaptez en indiquant l’adresse IP locale de votre NAS) :

Si vous cliquez sur la lecture, alléluia, votre musique est maintenant audible !

Vous pouvez aussi écouter votre flux audio via VLC.

Pour cela, il suffit d’indiquer l’adresse dans « ouvrir un flux » :

Notez que le titre et l’artiste sont bien affichés :

En consultant les ressources utilisées par MPD, celles-ci restent limitées ce qui est plutôt une bonne chose :

Avec un seul client en écoute sur le flux, l’utilisation par MPD du processeur oscille entre 2-3% :

Notez aussi une très bonne chose : étant donné que MPD peut exploiter l’utilitaire audio/vidéo FFMPEG, les formats M4A achetés sur l’Apple Music sont reconnus et lisibles !

Ci-dessous un exemple de titre acheté que j’ai pu lire via le flux audio :

Mise en place avec IceCast

La seconde configuration consiste à laisser MPD alimenter un serveur IceCast en flux audio source. Si jamais vous utilisez déjà IceCast avec votre NAS, ce setup peut être intéressant.

Voici comment faire.

Installation du paquet

Comme vous avez déjà ajouté DigitalBox DSM7 Repo dans votre centre de paquets, IceCast est aussi accessible dans la section « Communauté ».

Pour le détail de l’installation, vous pouvez consulter un article précédent intitulé « Streaming audio sur NAS Synology« .

Configuration pour IceCast

Connectez-vous en SSH à votre NAS et éditez le fichier de configuration « mpd.conf » de MPD :

cd /var/packages/mpd/ 
sudo vi home/mpd.conf

Décommentez ensuite les lignes ci-dessous correspondant à la partie « audio_output » pour le type « shoot » :

# Shout output for streaming to Icecast:
#
audio_output {
   type        "shout"
   name        "Shout Stream Radio"
   encoder     "vorbis"        # optional
   host        "localhost"
   port        "8000"
   mount       "/radio.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
}

Arrêtez et redémarrez le serveur MPD.

Si tout se passe bien MPD va pouvoir communiquer avec IceCast son flux audio.

Ceci peut être vérifié avec la ligne de commande suivante :

tail -f /var/packages/mpd/var/mpd.log 

Starting mpd command /volume1/@appstore/mpd/bin/mpd /volume1/@apphome/mpd/mpd.conf 

S’il n’y a pas de message d’erreur c’est que votre serveur est bien configuré.

Utilisation avec IceCast

Pour que le flux soit bien initialisé pensez à vérifier que :

  • le serveur IceCast est bien démarré
  • le serveur MPD est démarré
  • le flux venant de MPD est bien démarré via un client MPD (tel que Persephone par exemple)

Ci-dessous le flux est bien alimenté puisque la lecture est en cours :

Ce qui est visible via l’interface de statut d’IceCast :

Notez que sous Chrome, vous pouvez en faire la lecture directement dans cet écran de statut d’IceCast.

Sous VLC, il s’agit d’un flux réseau tel que ci-dessous :

L’URL du flux est consultable via l’interface de statut de votre serveur IceCast (page « Server Status »).

Pour finir

Il serait intéressant de vérifier si cette solution peut-être étendue à des appareils audio de la maison.

Je pense notamment à la possibilité que le flux IceCast soit lisible par des appareils connectés, ce qui permettrait d’avoir une solution de streaming personnelle ouverte et personnalisable.

Si vous avez un retour d’expérience à ce sujet, n’hésitez pas à le mettre en commentaires.

Une réflexion sur “Diffuser sa musique avec MPD sous DSM 7.0

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s