La creazione di una webradio con Gnu/Linux è abbastanza semplice; se utilizzate Debian è ancora più facile, dato che molti pacchetti sono precompilati e quindi installabili tramite il comodo apt-get.
I pacchetti che servono sono: icecast2, ices2.
Breve nota sui moduli audio:
In alcuni casi la scheda audio non viene correttamente riconosciuta da Debian. Spesso si può risolvere caricando i necessari moduli:
modprobe snd-pcm-oss
modprobe snd-mixer-oss
modprobe snd-seq-oss
ed aggiungerli in /etc/modules
echo snd_pcm_oss >> /etc/modules
echo snd-mixer-oss >> /etc/modules
echo snd-seq-oss >> /etc/modules
In alcuni casi sarà anche necessario installare il pacchetto:
apt-get install esound
Iniziamo con l’installazione
Per installare icecast, da shell digitiamo:
apt-get install icecast2
Installato icecast, passiamo alla relativa configurazione modificando il file /etc/icecast2/icecast.xml . In particolare va modificata la sezione dove sono presenti i dati di autenticazione:
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>SourcePassword</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>RelayPassword</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>AdminPassword</admin-password>
</authentication>A questo punto abilitiamo icecast, modificando il file /etc/default/icecast2 ed in particolare la riga:
ENABLE=true
Fatto questo, l’avvio di icecast va fatta con il classico:
/etc/init.d/icecast2 start
Bene, ora passiamo all’installazione di ices, che si occuperà di inviare l’audio al server di streaming icecast, che a sua volta lo invierà ai client che ne faranno richiesta. L’installazione di ices viene fatto con il classico:
apt-get install ices2
ices consente di inviare sia musica da una playlist che musica “live” da un ingresso audio.
Vediamo come configurare ices per l’uso di una playlist.
Possiamo prendere come esempio per la nostra playlist il file /usr/share/doc/ices2/examples/ices-playlist.xml. Facciamo una copia di tale file ed iniziamo a modificarlo:
mkdir /etc/ices
cp /usr/share/doc/ices2/examples/ices-playlist.xml /etc/ices/ices-config.xml
Del nuovo file /etc/ices/ices-config.xml, modifichiamo la sezione relativa al salvataggio del log:
<background>1</background>
<logpath>/var/log/</logpath>
<logfile>ices.log</logfile>
poi la sezione relativa al nome della radio:
<stream>
<metadata>
<name>Nome dello stream</name>
<genre>Genere dello stream</genre>
<<description>Una breve descrizione dello stream</description>
</metadata>modifichiamo poi la configurazione relativa alla playlist ed alla modalità di riproduzione
<input>
<module>playlist</module>
<param name="type">basic</param>
<param name="file">/etc/ices/play.lst</param>
<param name="random">0</param>
<!-- if the playlist get updated that start at the beginning -->
<param name="restart-after-reread">0</param>
<!-- if set to 1 , plays once through, then exits. -->
<param name="once">0</param>
</input>modifichiamo infine la parte di “connessione” verso il server icecast:
<instance>
<hostname><strong>localhost</strong></hostname>
<port><strong>8000</strong></port>
<password><strong>SourcePassword</strong></password>
<mount><strong>/playlist.ogg</strong></mount>
</instance>dove andrà chiaramente inserito l’IP del server icecast e la password per la pubblicazione del nuovo stream.
Ora passiamo ai file che vogliamo riprodurre; vanno convertiti in formato ogg (ci sono tanti software per farlo, da ffmpeg a soundconverter) e messi in una cartella:
mkdir -p /tmp/ices/musics
mv ./*.ogg /tmp/ices/musics
ls /tmp/ices/musics/*.ogg > /etc/ices/play.lst
Infine dovviamo istruire ices per lavorare la playlist, con:
ices2 /etc/ices/ices-config.xml
e finalmente potremo collegarci al nostro server di streaming per ascoltare la musica; l’indirizzo sarà:
http://localhost:8000/playlist.ogg
per visionare le statistiche di icecast, basterà invece richiamare:
http://localhost:8000/admin/stats.xsl
Per inviare invece audio direttamente dalla scheda audio:
Possiamo prendere come esempio per la nostra playlist il file /usr/share/doc/ices2/examples/ices-playlist.xml. Facciamo una copia di tale file ed iniziamo a modificarlo:
mkdir /etc/ices
cp /usr/share/doc/ices2/examples/ices-playlist.xml /etc/ices/ices-config.xml
In questo caso nel file di configurazione di ices /etc/ices/ices-playlist.xml, va inserito:
<input>
<module>oss</module>
<param name='device'>/dev/dsp</param>
<param name='rate'>44100</param>
<param name='channels'>2</param>
</input>dove /dev/dsp è chiaramente il device della scheda audio.
Va poi modificato il path dei log ed in particolare, nel file /etc/ices/ices-playlist.xml, la direttiva :
<logpath>/var/log/ices</logpath>
diventa
<logpath>/var/log/</logpath>
Modifichiamo infine la parte di “connessione” verso il server icecast:
<instance>
<hostname><strong>localhost</strong></hostname>
<port><strong>8000</strong></port>
<password><strong>SourcePassword</strong></password>
<mount><strong>/playlist.ogg</strong></mount>
</instance>dove andrà chiaramente inserito l’IP del server icecast e la password per la pubblicazione del nuovo stream.
Infine dovviamo istruire ices per iniziare l’encode, con:
ices2 /etc/ices/ices-config.xml
(da inserire poi in un file di init per l’avvio automatico al boot) e finalmente potremo collegarci al nostro server di streaming per ascoltare la musica; l’indirizzo sarà:
http://localhost:8000/live
per visionare le statistiche di icecast, basterà invece richiamare:
http://localhost:8000/admin/stats.xsl
Per la scelta del canale di input (es mic o line in) e per la gestione del volume, è possibile utilizzare il semplice aumix:
apt-get install aumix
da eseguire con:
aumix
Per la scelta del canale, basta posizionarsi sopra lo stesso con i tasti cursore e poi premere la barra spazio (appare una R all’inizio della riga del canale) e poi salvare tutto con il tasto S
Dettagli streaming banda/qualità
| Quality | Samplerate | Channels | Bitrate |
|---|
| Low-Quality Talk Radio | 0 | 11127 | 1 | 20Kbps |
| Medium-Quality Talk Radio | 2 | 11127 | 1 | 30Kbps |
| Low-Quality Music | 0 | 44100 | 2 | 56Kbps |
| Medium-Quality Music | 2 | 44100 | 2 | 84Kbps |
| High-Quality Music | 4.5 | 44100 | 2 | 132Kbps |