Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Radio in streaming con Linux

Le istruzioni passo per passo per creare una radio in streaming con Linux e il software open source Icecast 2
Le istruzioni passo per passo per creare una radio in streaming con Linux e il software open source Icecast 2
Link copiato negli appunti

La radio è stata per lungo un tempo uno dei media più utilizzati al mondo. Col tempo la sua diffusione è andata diminuendo, ma ancora tiene il passo degli altri canali di informazione anche grazie alla nascita di stazioni radio in streaming via Internet. In questo articolo vedremo come creare una propria stazione radio, utilizzando proprio la rete come mezzo di trasmissione, sfruttando solo la propria distribuzione Linux ed un apposito software: Icecast2.

Installazione di Icecast2

Icecast è un progetto nato tra la fine del 1998 e l'inizio del 1999, mirato alla realizzazione di uno strumento in grado di mettere in piedi un server per lo streaming di contenuti audio attraverso il Web. Mantenuto in qualità di software libero dalla Xiph.Org Foundation, nel 2001 è passato alla versione 2, introducendo il supporto a più formati di file: grazie all'utilizzo dei protocolli HTTP e SHOUTcast, infatti, Icecast2 è in grado di trasmettere in streaming file MP3, Vorbis, Theora ed AAC.

Per installare Icecast2 è possibile utilizzare sia il gestore dei pacchetti presente all'interno della propria distribuzione, a patto che i relativi repository siano forniti di tale software, oppure procedere con lo scaricamento dell'archivio contenente i sorgenti e compilarli manualmente. La pagina di download propone l'ultima versione stabile rilasciata dagli sviluppatori, sia sotto forma di codice sorgente che come pacchetto RPM precompilato. Una volta scaricato il primo, è necessario scompattarlo, spostandosi con il terminale nella cartella dove è stato posizionato il file e lanciando il comando:

$ tar -xvf icecast_2.3.2.tar.gz

Dopo essere entrati nella cartella creata dalla decompressione dell'archivio, è sufficiente seguire la tradizionale procedura utilizzata per la compilazione e l'installazione della maggior parte dei software:

$ ./configure
$ make
$ make install

L'ultimo comando va eseguito come utente root, o con privilegi di amministrazione utilizzando sudo. Durante l'esecuzione dello script configure verrà effettuato un controllo delle dipendenze installate, e nel caso in cui qualcuna di queste dovesse risultare assente, si può procedere all'installazione tramite il gestore dei pacchetti presente nella distribuzione; in seguito, è possibile eseguire nuovamente lo script per verificare che tutto sia al posto giusto.

Configurazione di Icecast2

La fase successiva ha come scopo la messa a punto del file di configurazione di Icecast2, localizzato in /etc/icecast2/icecast.xml e modificabile solo possedendo i privilegi di amministratore o utente root. Le sezioni più importanti da impostare sono le seguenti:

<icecast>
<limits>
    <clients>100</clients>
    <sources>2</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>localhost</hostname>
<listen-socket>
    <port>8000</port>
</listen-socket>
<fileserve>1</fileserve>
<paths>
    <basedir>./</basedir>
    <logdir>./logs</logdir>
    <webroot>./web</webroot>
    <adminroot>./admin</adminroot>
    <alias source="/" dest="/status.xsl"/>
</paths>
<logging>
    <accesslog>access.log</accesslog>
    <errorlog>error.log</errorlog>
    <loglevel>4</loglevel>    <logsize>10000</logsize>
</logging>
<security>
    <chroot>0</chroot>
</security>
</icecast>

La sezione limits permette di impostare un limite di utenti connessi contemporaneamente, ed è utile soprattutto per evitare eccessivi consumi di banda. Se non si hanno problemi di questo tipo, è possibile lasciare invariata la configurazione già presente. La sezione authentication, invece, offre l'opportunità di impostare nome utente e password per l'accesso al server da parte delle sorgenti di streaming: source-password è quella con la quale Ice2, uno dei componenti che si utilizzeranno per lo streaming, accederà ad Icecast2; admin-password, invece, è quella da inserire nell'interfaccia web dell'applicazione per accedere alla parte amministrativa.

Il blocco successivo, composto da hostname e listen socket, contiene informazioni riguardanti l'hostname del computer dal quale parte lo streaming e la porta attraverso la quale confluirà il flusso verso l'esterno. Le ultime due sezioni, path e logging, permettono di modificare i percorsi da utilizzare per l'esecuzione del server e dei relativi file, oltre che del logging delle connessioni. Entrambe possono essere lasciate invariate rispetto a quanto già presente.

Ultimo passo nella configurazione di Icecast2 è la modifica del file /etc/default/icecast2, nel quale la voce ENABLED va impostata al valore true. Una volta modificato tale parametro, è possibile avviare Icecast2 tramite il comando:

$ sudo /etc/init.d/icecast2 start

Installazione e configurazione di Ices2

Un importante componente da installare per iniziare lo streaming è Ices2, che permette di passare ad Icecast2 i file in formato .ogg da trasmettere. Nel caso in cui si vogliano utilizzare file MP3, è necessario installare Ices0: entrambi sono disponibili per il download in formato sorgente a questo indirizzo, e l'installazione segue la stessa procedura già adottata per Icecast2. Entrambi i pacchetti, però, sono spesso disponibili anche nei repository delle principali distribuzioni GNU/Linux.

Una volta installato Ices2, bisogna creare le directory nelle quali andranno localizzati i file di configurazione e log dell'applicazione, e copiare quello relativo alla playlist da riprodurre, tramite la sequenza di comandi:

$ mkdir /var/log/ices
$ mkdir /etc/ices2
$ cp /usr/share/doc/ices2/examples/ices-playlist.xml /etc/ices2

Per comodità, si può anche creare un'apposita cartella nella quale posizionare tutti i file da riprodurre, così da avere una libreria musicale ben organizzata:

$ mkdir /etc/ices2/musica

La playlist da passare ad Icecast2 dovrà essere un file testuale, per cui è necessario crearne uno:

$ nano /etc/ices2/playlist

ed inserire uno alla volta tutti i percorsi dei file da riprodurre, come nel seguente esempio:

/etc/ices2/musica/brano1.ogg
/etc/ices2/musica/brano2.ogg
/etc/ices2/musica/brano3.ogg
 [...]

Resta da modificare il file ices-playlist.xml: in particolare, va modificato il parametro relativo all'indirizzo della playlist. Per farlo, è sufficiente aprire tale file con un qualsiasi editor di test:

$ gedit /etc/ices2/ices-playlist.xml

e andare a modificare la sezione "input" come segue:

<input>
 <module>playlist</module>
 <param name="type">basic</param>
 <param name="file">/etc/ices2/playlist</param>
 <param name="random">0</param>
 <param name="restart-after-reread">0</param>
 <param name="once">0</param>
</input>

È giunto il momento di avviare Ices2:

$ ices2 /etc/ices2/ices-playlist.xml

Se tutto è stato eseguito nel modo corretto, è ora possibile accedere all'interfaccia web di Icecast2, collegandosi all'indirizzo http://localhost:8000. Tramite questa interfaccia è possibile configurare altri parametri dello streaming, e accedere ai file da riprodurre, così da ottenere link utili da fornire ai propri ascoltatori per permettere loro di connettersi alla stazione radio.

Ti consigliamo anche