Écoutez sa musique à distance en streaming avec MPD

le 29/08/2011 dans Linux #Linux#mpd#réseau#ssh

Le serveur de lecture de musique MPD que nous avons présenté dans un précédent article permet de diffuser le flux audio de sortie non seulement localement mais également en streaming via le protocole HTTP, et ce de manière native depuis la version 0.15. Nous allons voir dans cet article comment configurer MPD pour mettre en place cette sortie HTTP, comment accéder au flux audio et comment gérer la musique lue à distance.

Activation de la sortie HTTP et accéder localement au flux

Pour activer la sortie audio, il faut modifier la configuration de MPD et donc éditer le fichier /etc/mpd.conf :

$ sudo nano /etc/mpd.conf

Dans ce fichier, repérez la section « Audio Output » dans laquelle vous devriez trouver ces lignes :

# 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"    
#}

Il vous suffit simplement de décommenter les lignes 3 à 11 présentées ci-dessus et de relancer MPD, en utilisant soit la commande :

$ sudo service mpd restart

soit celle-ci :

$ sudo /etc/init.d/mpd restart

Ensuite, lancez ncmpc ou ncmpcpp et rendez-vous dans le huitième « onglet » (Shift+_) et vérifier que la sortie HTTP, par défaut nommée « My HTTP Stream », est activée (l'activation et la désactivation des sorties se fait avec la touche Entrée). Désactivez la sortie locale, c'est-à-dire celle utilisant alsa, oss ou pulse, et lancez la lecture (vous devez ne pas entendre de son). Ensuite, dans votre navigateur, rendez-vous à l'une des adresses suivantes :

http://localhost:8000/
http://127.0.0.1:8000/

Vous devriez alors voir un petit lecteur audio et la lecture doit démarrer quelques secondes après le chargement de la page :

mpd stream

Notez que vous pouvez également utiliser n'importe quel lecteur acceptant des flux réseaux, comme VLC, dans lequel vous voyez les informations du morceau joué :

mpd stream vlc

Accéder au flux à distance

Sur votre réseau local

Pour accéder au flux de streaming diffusé par MPD depuis l'ordinateur où ce-dernier est installé, que l'on appellera désormais serveur, depuis un autre poste (désormais client) de votre réseau local, il vous suffit depuis le poste client d'ouvrir le flux avec votre navigateur Web ou VLC (ou autre lecteur audio prenant en charge des flux réseaux) en utilisant une URL de ce type

http://IP_SERVEUR:8000

Pour connaître l'adresse IP de votre serveur, soit vous lancez la commande :

$ ifconfig

sur le serveur, soit vous utilisez l'utilitaire nmap depuis le poste client. Pour installer nmap :

$ sudo aptitude install nmap

La commande suivante (à adapter selon votre réseau bien sûr)

$ sudo nmap -sP 192.168.1.0/24

permet de connaître l'ensemble des hôtes disponibles ainsi que leur adresse IP.

Depuis n'importe où

La démarche est la même si ce n'est qu'il faut connaître l'IP publique de notre serveur ce qui n'est pas évident d'autant plus si notre fournisseur d'accès nous attribue une adresse dynamiquement. Pour faciliter les choses, il convient de passer par un nom de domaine qui pointe vers notre serveur, ce que nous avons vu dans un article précédent : DynDNS et ddclient : accéder à son ordinateur depuis n'importe où.

Il faudra sans aucun doute ajouter une règle de translation de port dans la configuration de votre routeur, ce que nous évoquons dans cet article.

Gérer les listes de lecture à distance

Pouvoir écouter sa musique à distance est très sympathique mais c'est encore mieux de pouvoir gérer, selon ses envies, ce que l'on écoute. Pour cela, l'une des solutions consiste à se connecter via SSH du poste client au serveur (cf. l'article Accéder à distance à son ordinateur sous Ubuntu depuis Windows via SSH) et à utiliser ncmpc ou ncmpcpp.