Volumio et Icecast

J’ai installé Volumio sur mon Raspberry pi avec une carte HifiBerry.

Je voudrai sonoriser ma maison: avoir plusieurs ordinateurs/amplis jouant la même musique en même temps.

Volumio ne permet que de diffuser du son sur le raspberry, il me faut donc une solution de streaming audio.
Après quelques recherches il semble qu’Icecast soit une solution pour moi.

Installation d’IceCast

root@volumio:~# apt-get update
root@volumio:~# apt-get install icecast2
...
Selecting previously unselected package icecast2.
(Reading database ... 36175 files and directories currently installed.)
Unpacking icecast2 (from .../icecast2_2.4.0-1.1_armhf.deb) ...
Setting up icecast2 (2.4.0-1.1) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Configuring icecast2..
Done Configuring icecast2..
[FAIL] Starting streaming media server: icecast2[....] icecast2 daemon is disabled - read /etc/default/icecast2 ... failed!
. ok 
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB

Total disk space freed by localepurge: 0 KiB

Configuration d’IceCast

Fichier /etc/default/icecast2

CONFIGFILE="/etc/icecast2/icecast.xml"
USERID=icecast2
GROUPID=icecast
ENABLE=true

Fichier /etc/icecast2/icecast.xml (extrait)

    <authentication>
        <source-password>volumio</source-password>
        <relay-password>volumio</relay-password>
        <admin-user>volumio</admin-user>
        <admin-password>volumio</admin-password>
    </authentication>

Configuration de Music Player Deamon (MPD)

Maintenant il faut dire à MPD d’envoyer la musique vers IceCast.

Fichier /etc/mpd.conf (lignes à rajouter)

audio_output {
    type        "shout"
    encoding    "ogg"
    name        "my cool stream"
    host        "localhost"
    port        "8000"
    mount       "/mpd.ogg"
    password    "volumio"
    bitrate     "64"
    format      "44100:16:1"
    user        "source"
}

Redémarrage des services

root@volumio:~# /etc/init.d/mpd restart
root@volumio:~# /etc/init.d/icecast2 start

Conclusion

Tout fonctionne correctement par contre il y a un décalage entre le son du RaspBerry Pi et le client IceCast, décalage de 2 ou 3 secondes. Cette solution n’est donc pas satisfaisante.