Je vais aborder ici le streaming audio.
Ceci est donc un article à caractère technique. Je ne suis pas responsable de l'usage que vous en ferez, Un conseil : gardez une copie des fichiers de conf que je vous propose de modifier. Tout les logiciels utilisés sont libres, donc techniquement, tout est légal. A vous de voir pour la musique, cet aspect ne concerne que vous (et la SACEM^^).
Cas concret, vous voulez partager du son avec vos amis sur votre land dans SL (utilisation PRIVEE donc!!).


Ingrédients :
une ditrib linux (ben oué, c'est la section linux ici hein ? pour win32, demandez à google de vous aider :-p)
un accès internet (pas de commentaire svp)
Icecast2
MPD
Gmpc
de la boisson (café, bière, chocolat, lait fraise, etc...)


Concepts :
Le but du jeu, est d'envoyer un flux audio à un serveur (Icecast2 dans notre cas) afin que celui-ci le renvoie en direction de plusieurs clients et en simultané. Autrement dit, Icecast2 ne stocke rien, il n'enregistre rien il ne fait que renvoyer la musique sur tout les clients connectés.
Nous avons donc un serveur, il nous faut à présent une source à lui envoyer. Nous utiliserons MPD. Pourquoi ne pas utiliser Amarok ou autre logiciel audio et préférer MPD ? Car MPD est un lecteur de fichier audio en mode serveur qui est capable d'envoyer le stream vers la carte son ou un serveur Icecast, ou les deux, ou plusieurs cartes sons, ou vers un autre serveur MPD sur le réseau...
Bref! c'est très souple.MPD cey bien ! mais en mode console, donc pas sexy... Heureusement nous avons : GMPC ! C'est juste une interface graphique pour contrôler MPD. Il peux s'installer sur la même machine que MPD ou sur une autre, l'important c'est qu'il puisse se connecter à MPD.il permet pleins de trucs, gérer des playlists, statiques ou dynamiques, renvoyer un stream d'un radio web vers MPD, etc... c'est très souple aussi.


Installation :
Commencez par installer icecast2, mpd et gmpc (voir les docs respectives).
A savoir que Icecast2 dois être installé sur une machine qui DOIT être accessible depuis internet par tout les gens qui voudrons écouter votre zic. Donc pensez à avoir une connection suffisement musclée si vous l'installez sur votre pc perso.
Et pensez à ouvrir les ports necessaires, ainsi que configurer votre free/9/live/darty/jesaispasquoi-box pour autoriser les connections vers votre pc.
MPD et Gmpc seront installé sur le pc dit "source" (autrement dit, le pc qui contient les fichiers à streamer).
Par exemple, je loue une dedibox à Free ce qui rend le serveur accessible à tous, et je stream depuis mon pc portable. (bon ça coute des sous aussi, je sais ^^).

Donc vous avez votre serveur icecast2 d'installé et vos logiciels "clients" MPD et Gmpc installés aussi.
De façon tout à fait arbitraire, je décide que le serveur Icecast2 aura pour nom icecast2.mondomaine.fr

Configuration de Icecast2 :
Nous utiliserons le fichier de configuration Icecast suivant :
/etc/icecast2/icecast.xml
dont le contenu est :

 <icecast>
     <limits>
         <clients>10</clients>
         <sources>1</sources>
         <threadpool>5</threadpool>
         <queue-size>524288</queue-size>
         <client-timeout>30</client-timeout>
         <header-timeout>15</header-timeout>
         <source-timeout>10</source-timeout>
         <burst-on-connect>1</burst-on-connect>
         <burst-size>65535</burst-size>
     </limits>
     <authentication>
         <source-password>sourcepasswd</source-password>
         <relay-password>relaypasswd</relay-password>
         <admin-user>admin</admin-user>
         <admin-password>adminpasswd</admin-password>
     </authentication>
     <hostname>icecast2.mondomaine.fr</hostname>
     <listen-socket>
         <port>8000</port>
     </listen-socket>
     <listen-socket>
         <port>8001</port>
             <shoutcast-compat>1</shoutcast-compat>
     </listen-socket>
     <fileserve>1</fileserve>
     <shoutcast-mount>/live.nsv</shoutcast-mount>
     <fileserve>1</fileserve>
     <paths>
         <basedir>/usr/share/icecast2</basedir>
         <logdir>/var/log/icecast2</logdir>
         <webroot>/usr/share/icecast2/web</webroot>
         <adminroot>/usr/share/icecast2/admin</adminroot>
         <alias source="/" dest="/status.xsl"/>
     </paths>
     <logging>
         <accesslog>access.log</accesslog>
         <errorlog>error.log</errorlog>
         <loglevel>4</loglevel>
         <logsize>10000</logsize>
         <logarchive>1</logarchive>
     </logging>
     <security>
         <chroot>0</chroot>
         <changeowner>
             <user>icecast2</user>
             <group>icecast</group>
         </changeowner>
     </security>
 </icecast>


En gros, ce fichier configure Icecast2 pour 10 auditeurs, une source, un cache de 512Ko, le tout sur les ports 8000/8001 du serveur icecast2.mondomaine.fr, ça définit aussi le mot de passe pour la source à sourcepasswd et l'accès administrateur via l'identifiant admin et son mot de passe adminpasswd.
Et donc si Icecast2 est installé sur votre pc perso, pensez à ouvrir les ports 8000 et 8001 vers internet sinon, vos auditeurs pourront pas se connecter.
Une fois modifié le fichier /etc/icecast2/icecast.xml, vous pouvez démarrer le serveur avec un "service icecast2 start" ou "/etc/init.d/icecast2 start" voir un "icecast2 -b -c /etc/icecast2/icecast.xml" . Tout dépend de votre distrib et donc je vous laisse vous débrouiller avec docs qui vont bien.
Pas de message d'erreur ? (moi j'en ai pas en tout cas :-p) on peux contrôler l'état du serveur ici : http://icecast2.mondomaine.fr:8000/ et oui! on as une tite interface oueb pour voir ce que dit icecast! Oué, sté facile aussi passons à MPD !

Configuration de MPD
Tout ce passe ici : /etc/mpd.conf

music_directory                 "/home/Musique"
playlist_directory              "/home/Playlist"
db_file                         "/var/lib/mpd/mpd.db"
log_file                        "/var/log/mpd/mpd.log"
error_file                      "/var/log/mpd/mpd.error"
pid_file                        "/var/run/mpd/mpd.pid"
state_file                      "/var/lib/mpd/mpdstate"
user                            "mpd"
bind_to_address                 "localhost"
port                            "6600"
password                        "toto\@read,add,control,admin"
default_permissions             "read,add,control,admin"

audio_output {
       type                    "pulse"
       name                    "Sortie Pulseaudio"
}
audio_output {
       type                    "shout"
       name                    "Toto''s Stream"
       host                    "icecast2.mondomaine.fr"
       port                    "8000"
       mount                   "/toto.ogg"
       password                "sourcepasswd"
       quality                 "5.0"
       format                  "44100:16:2"
       user                    "source"
       description             "Some musics i love"
       genre                   "Jazz/Rock/TripHop"
       public                  "no"
}
mixer_type                      "alsa"
mixer_device                    "default"
mixer_control                   "PCM"

Ici, nous avons déclaré à MPD 2 sorties audio :
la première vers Pulseaudio, autrement dit vers la carte son (ça aurais pu être alsa ou oss evidement ),
la deuxième, vers notre serveur Icecast2.
De plus, on ordonne à MPD d'étre accessible sur le port 6600 en local avec le mot de passe toto.
Très important : music_directory et playlists_directory, ces deux variables doivent être accessible en lecture/écriture à l'utilisateur mpd. sinon MPD pourra pas indéxer et lire votre musique !!
Encore une fois vous pouvez démarrer le serveur avec un service mpd start ou /etc/init.d/mpd start . Tout dépend de votre distrib et donc je vous laisse vous débrouiller avec docs qui vont bien. Pas de message d'erreur ? (moi j'en ai pas en tout cas. Et oui, ya du copier coller là).

Configuration de GMPC
Allez dans le menu Music --> Preferences section Connection et choisisssez le profil par défaut, l'hote = localhost, le port = 6600 et le mot de passe toto (cocher "utiliser l'authentification").
Ensuite, allez dans le menu serveur et cliquez sur "update database", et là, MPD vas indéxer le dossier que vous lui avez indiqué dans /etc/mpd.conf.
Selon le nombre de fichier et de tags qu'ils contiennent, MPD mettre un sertains temps à indéxer. Sachant que MPD supporte les formats suivants : AudioFile, ffmpeg, FLAC, MP3, MP4 Musepack, OggFlac, OggTremor, OggVorbis, WavPack.

Une fois fait, retournez dans le menu serveur de gmpc, vous y trouverez les 2 sorties configurées dans /etc/mpd.conf, à savor "Toto's Stream" et "Sortie Pulseaudio". Cochez les deux puis allez dans "file browser" et ajoutez tout ce que jous voulez à "current playlist". et cliquez sur play.
Normalement, vous entendrez votre zic et en allant sur http://icecast2.mondomaine.fr:8000/ vous verrez qu'une source c'est activée, c'est MPD qui stream votre zic!.
Vos amis on mis l'url de votre zic dans leurs winamp comme écris dans la page http://icecast2.mondomaine.fr:8000/ l'url d'écoute étant http://icecast2.mondomaine.fr:8000/toto.ogg .

Et maintenant ça devient intéressant, car tout ces efforts pour pouvoir jouer les DJ en herbes. (oui car les DJ pros on d'autres softs quand même, là on est dans le domaine amateur de base^^).

Voici ce que permet GMPC (et donc MPD) :
modification à la volée de la playlist (ajou/supressions/changement d'ordre),
on peux se déplacer dans le titre pendant le stream,
on peux ajouter à la playlist des urls de radios internet, MPD les restreamera comme si c'était un titre de la playlist,
on meux mélanger radio web et fichiers musical dans une playlist,
on peux ajouter des titres de Magnatune (c'est gratuit et légal),
etc... c'est très souple!

Voici quelques défauts de ce type d'installations :
on peux pas faire de fondu enchainé,
yapas de chambre d'écho,
ya pas moyen d'insérer le son provenant du micro.

Je terminerais par ma citation fétiche qui n'est pas de moi : "si c'est idiot et que ça marche, alors ce n'est pas idiot".

Voilà c'est tout, si ya des inexactitudes ou des imprecisions, ben dites le, je corrigerais (les fautes par contres je corrigerais pas!)