(Ébauche en cours)
Cet article explique comment diffuser une radio numérique sur un réseau informatique
Nous captons la bande fm a l’aide d’une carte WinTV PVR 150 ( ou PVR500). Il faut donc l’installer sur le serveur linux. Pour ce faire, nous installerons les pilotes ivtv pour linux.
Notre serveur est basé sur CentOS 5.x
Une fois les pilotes installés, nous testons si la carte est bien détectée en essayant la radio:
> ivtv-radio -s
Ceci permet de scanner les postes FM.
Installation de Icecast
Icecast permet de diffuser un flux en provenance de sources diverses
Fichier de configuration /etc/icecast.xml
<icecast> <relay> <server>127.0.0.1</server> <port>8000</port> <mount>/autodj</mount> <local-mount>/vt.mp3</local-mount> <relay-shoutcast-metadata>1</relay-shoutcast-metadata> </relay> <mount> <mount-name>/autodj</mount-name> <max-listeners>100</max-listeners> <hidden>1</hidden> <public>0</public> </mount> <mount> <mount-name>/DJ1</mount-name> <fallback-mount>/autodj</fallback-mount> <fallback-override>1</fallback-override> <max-listeners>100</max-listeners> <hidden>1</hidden> <public>0</public> </mount> <limits> <clients>100</clients> <sources>5</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>hackme</source-password> <relay-password>hackme</relay-password> <admin-user>admin</admin-user> <admin-password>hackme</admin-password> </authentication> <hostname>network.local</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
<fileserve>1</fileserve>
<paths>
<basedir>/usr/local/share/icecast</basedir>
<logdir>/var/log/icecast</logdir>
<webroot>/usr/local/share/icecast/web</webroot>
<adminroot>/usr/local/share/icecast/admin</adminroot>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
</logging>
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
Installation de Ices
La version 2 de Ices permet de capturer le flux directement d’un device
Fichier de configuration /etc/ices-stdin.xml:
<?xml version="1.0"?>
<ices>
<background>0</background>
<logpath>/var/log/ices</logpath>
<logfile>ices.log</logfile>
<logsize>2048</logsize>
<loglevel>4</loglevel>
<consolelog>0</consolelog>
<stream>
<metadata>
<name>Val Technologie Radio</name>
<genre>Best Radio</genre>
<description>La meilleure musique au bureau</description>
<url>http://www.network.local</url>
</metadata>
<input>
<module>stdinpcm</module>
<param name="rate">48000</param>
<param name="channels">2</param>
<param name="metadata">1</param>
<param name="metadatafilename">/dev/null</param>
</input>
<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>hackme</password>
<mount>/live</mount>
<yp>0</yp>
<encode>
<quality>0</quality>
<samplerate>41000</samplerate>
<channels>1</channels>
</encode>
<downmix>1</downmix>
<resample>
<in-rate>48000</in-rate>
<out-rate>44100</out-rate>
</resample>
</instance>
</stream>
</ices>
Lancer la radio
> ivtv-radio -f 105.3 -v -c “ices /etc/ices-stdin.xml < %s”
ceci envoie le flux de /dev/video24 dans ices qui l’envoie sur icecast.
Coté client
Pour écouter le flux, nous utilisons VLC