Diffuser votre bibliothèque musicale en stream
J’ai personnellement un portable (ou plutôt 2, passons…) et un serveur. Le portable me sert pour surfer, t’chatter, blogger, bosser (accessoirement) et plein d’autre trucs comme tout le monde. Cependant je ne me vois pas avec toutes mes données directement dessus, premièrement d’un point de vu sécurité (comment faire si il tombe du 25ème étage sous les roues d’un semi-remorque…) mais aussi parce que avoir des données sur mon portables ça ne me permet d’y avoir accès que lorsque celui-ci est à coté de moi… et seulement pour moi. Dans cette optique et pour pouvoir mettre en pratique et expérimenter certaines chose en rapport avec mes études, j’ai mis en place un serveur sur lequel j’ai quelques services, dont un serveur de stockage (la base quand on se monte un serveur). Dans les données stockés, j’ai bien évidemment la musique que j’ai chèrement payé et ‘numérisé’ afin d’y avoir accès de tout mes postes simplement.
Cependant avoir votre musique sur un serveur chez vous et rien sur votre portable, ça vous donne des séances de projets tuteurés à l’université assez moroses. J’ai bien essayé un petite connexion SSH pour récupérer quelques pistes via scp, mais le tout est pas très rapide et pas très utilisable. À partir de là, une idée qui me trottais dans la tête depuis quelques temps m’a semblé devenir indispensable…
L’idée c’est d’implémenter un service de stream sur mon serveur qui diffuserai à la demande et de façon très restreinte la musique que j’ai. Après quelques recherches, j’ai trouvé une solution qui me convenait assez bien, à savoir MPD (que j’utilise déjà quand je suis en local) pour lire la musique sur le serveur, commandé par une interface web grâce à pitckfork, le flux produit par MPD étant dirigé sur Icecast2 afin d’y être transformé en flux stream. Ce flux reste en local car je ne souhaite pas que n’importe qui écoute en même temps que moi. Il sera donc nécessaire d’établir une connexion ssh avec redirection de port pour y avoir accès.
Après la parlotte, passons à la pratique. Je vous laisse installer MPD, Pitchwork (ou autre, Pitchwork n’est pas la seul interface web pour MPD mais cependant je la trouve assez réussi) et Icecast suivant les distributions que vous avez. Je ne m’intéresserai qu’à la configuration de MPD et Icecast2.
MPD :
Dans /etc/mpd.conf hormis la configuration par défault qui consite à indiquer l’emplacement de votre musique, des playlist, de l’utilisateur pour lequel MPD est lancé etc… ce qui nous intéresse est ce qui se trouve sous la bannière :
################ SHOUT STREAMING ################
Je vous met à la suite la configuration pour l’un de mes flux (j’ai configuré MPD pour avoir un flux ‘haute qualité’ et un ‘moyenne qualité’ ) Le détail est en dessous
audio_output {
type « shout »
name « Thot’s HQ stream »
host « localhost »
port « 8000″
mount « /hq.ogg »
password « abcdefgh »
quality « 5.0″
# bitrate « 128″
format « 44100:16:1″
#
# Optional Paramters
user « source »
description « Flux Haute Qualitée »
genre « All »
}
audio_output{ } est obligatoire et indique la configuration d’une sortie audio (vous vous en seriez doutés) celle-ci peut etre pour une sortie physique ou comme ici vers un fichier, spécifié par l’argument ‘ type « shout » ‘.
Viens ensuite le nom que vous voulez lui donner, celui-là même qui apparaîtra dans Icecast. Host et port définissent où est envoyé le flux de sortie, en l’occurence sur le même hôte vers le port 8000.
Mount défini le ‘point de montage’ c’est à dire l’emplacement ou sera disponible ce flux Dans notre cas : http://localhost:8000/hq.ogg
Le mot de passe qui suit est celui qui servira entre MPD et Icecast. Notez le, il vous sera redemandé par la suite.
Viennent ensuite quelques paramètres de qualités que je vous laisse analyser, le paramètre ‘user’ qui définit le nom utilisé pour se connecter à Icecast et en ‘optional parameters’ des infos qui seront affichés en rapport au stream diffusé.
Pour MPD ça sera tout, si vous souhaitez plus de renseignement, n’hésitez pas à consulter la page MPD sur ubuntu-fr.org
Passons à Icecast :
Le fichier de configuration est au format XML et se trouve dans /etc/icecast2/icecast.xml
Je ne vous détail pas tout les paramètres, ils sont très nombreux et pas tous intéressants. Ce qui nous occupe se trouve entre les balises <authentification> :
<source-password>abcdefgh</source-password>
C’est ici qu’il faut placer le mot de passe spécifié dans mpd.conf
<admin-user>admin</admin-user>
<admin-password>change_me</admin-password>
Ces deux paramètre servent pour accéder à la partie admin de l’interface web.
Vérifiez aussi la balise suivante et la configuration pour une utilisation basique devrait être suffisante.
<hostname>localhost</hostname>
Il ne vous reste plus qu’à redémarrer mpd et icecast après quoi vous pourrer lancer la diffusion avec mpd (via pitchfork) et écouter ce qui en résulte avec VLC par exemple en choisissant la lecture d’un flux réseau pour lequel vous indiquerez donc :
http://ip_du_serveur:8000/nom_du_flux.ogg
Je ne saurais que vous conseiller de ne pas ouvrir ce port sur internet et, lorsque vous souhaiterez en profiter depuis l’extérieur, d’ouvrir une session ssh avec redirection de ce port pour une plus grande sécurité.
Si vous avez des soucis d’installation ou de configuration, je suis dispo.