La gestione e la configurazione di un web radio server è accessibile a buona parte degli utenti che utilizzano un comune PC, in questo articolo vedremo come affrontare tale problema su un sistema basato su Linux, rimandando al lettore i problemi derivanti da eventuali violazioni di copyright (tipiche di questi scenari), e soffermandoci sulla configurazione e l’utilizzo di due software: Internet DJ Console (conosciuto anche con l’acronimo IDJC) ed Icecast.
Nulla vieta, una volta appreso il meccanismo che c’è alla base, di utilizzare altri software che possono risultare più semplici o più completi.
Introduzione
Abbiamo già parlato, in un nostro precedente articolo, di come ricevere le web radio più disparate, ed esistono diversi software open source (incluso il ben noto VLC Media Player) che sono in grado di realizzare questa funzionalità su sistemi Linux. Vediamo, adesso, come possiamo fare in modo di realizzare una piccola emittente direttamente dal nostro PC.
I due programma che installeremo ci consentiranno di riprodurre i brani, ed effettuare eventualmente il mixaggio, con la possibilità di gestire le playlist ed alcuni effetti (IDJC). L’audio riprodotto dovrà, inoltre, essere “incanalato” nello stream di bit che il server (Icecast) invierà agli ascoltatori. Si capisce già da queste prime informazioni che avremo la necessità di mettere in comunicazione IDJC ed Icecast, ed è proprio questo ciò che realizzeremo. Prima però, concentriamoci sull’installazione e sulla configurazione di queste due componenti essenziali.
Installazione di IDJC ed Icecast
IDJC è un software open source che fornisce una interfaccia semplice da utilizzare per la gestione dei brani da riprodurre in streaming, e che renderà semplice tale processo una volta configurato Icecast.
Il sito ufficiale di IDJC contiene tutte le istruzioni per l’installazione, consentendo di scegliere se compilare direttamente il codice sorgente o, dipententemente dai repository della distribuzione che utilizziamo, se utilizzare direttamente apt. In quest’ultimo caso, è sufficiente installare il programma digitando da terminale:
sudo apt-get install idjc
Durante l’installazione, ci verrà chiesta conferma relativamente alla priorità da associare a jackd, il server audio che verrà utilizzato, in modo tale da potere garantire a quest’ultimo una priorità real time. Ciò può comportare, durante lo streaming, un rallentamento del sistema, che dovrà dare la precedenza al processing ed all’invio dei brani sul web.
Una volta terminata l’installazione di IDJC, procediamo con quella di Icecast. Si tratta, adesso, di aggiungere al nostro sistema operativo il server vero e proprio che consentirà lo streming audio, rendendolo accessibile agli ascoltatori.
Per installarlo, possiamo fare riferimento a quanto riportato sul sito ufficiale, sebbene anche in questo caso la maggior parte delle distribuzioni più note consentono l’installazione direttamente dai repository ufficiali. Per le distribuzione basate su Debian (Ubuntu, Mint, ecc...), si può ancora una volta utilizzare apt:
sudo apt-get install icecast2
Durante l’installazione ci verrà chiesto di impostare le password e la configurazione per Icecast, ma dal momento che approfondiremo meglio questo dettaglio nel prossimo paragrado, scegliamo di non impostare nulla.
Configurazione del server
Se utilizziamo Linux Mint 13 (ma lo stesso discorso, a meno di qualche subdirectory, dovrebbe valere per le altre distriuzioni), il file di configurazione di Icecast è situato in /etc/icecast2. E’ un file XML, e possiamo modificarlo con un qualsiasi editor di testo:
sudo gedit /etc/icecast2/icecast.xml
Dal momento che lo stesso XML è stato pensato come linguaggio autoesplicativo, e grazie anche ai commenti presenti nel file, la modifica di quest’ultimo non dovrebbe essere troppo complicata.
Per prima cosa, cerchiamo la seguente stringa:
<source-password>hackme</source-password>
Questo tag consente di impostare la password necessaria alla connessione tra IDJC ed Icecast. La password di default, come si vede, dovrebbe essere hackme. Modifichiamola a nostro piacimento. Per esempio, per impostare HTMLit, scriviamo:
<source-password>HTMLit</source-password>
Stesso procedimento va seguito per la modifica di username e password per il pannello di controllo. Noi non lo useremo direttamente, ma è bene modificare queste credenziali per bloccare sul nascere i tentativi di qualche malintenzionato. I tag che ci interessano, in questo caso, sono le due stringhe seguenti, che andrenno opportunamente modificate secondo la stessa linea guida del caso precedente:
<admin-user>admin</admin-user> <admin-password>hackme</admin-password>
Prima di passare avanti, è necessario selezionare la porta su cui trasmettere. Quella di default dovrebbe essere la 8000:
<port>8000</port>
Come per tutti i server, se avete un router NAT dovrete provvedere ad abilitare la ricezione delle richieste nella tabella NAT del vostro router, cosicchè tutte le richieste inviate al vostro indirizzo IP pubblico, alla porta da voi scelta, possano essere ricevute e processate correttamente dal vostro PC, che svolge la funzione di server.
Per potere avviare Icecast, adesso, è necessario modificare un altro file, e cioè /etc/default/icecast2. All’interno di quest’ultimo, cambiamo:
ENABLE=false
con:
ENABLE=true
A questo punto, non resta che avviare Icecast. Per farlo, è sufficiente digitare dal terminale:
sudo /etc/init.d/icecast2 start
Se tutto funziona correttamente, supponendo che la porta scelta sia la 8000, digitando su un qualsiasi web browser l’indirizzo:
http://localhost:8000
vedremo una pagina simile a quella mostrata nella figura seguente.
Utilizzo di IDJC
Per prima cosa, dato che IDJC utilizza jackd come server audio, avviamo quest’ultimo con il seguente comando:
sudo jackd -d alsa -r 44100 -p 2048 &
Non ci resta, quindi, che avviare IDJC. Se non viene automaticamente inserito tra le applicazoni installate, e non è accessibile da un menu, possiamo avviarlo da terminale mediante il comando idjc. All’avvio, si aprirà la finestra Gestione dei profili IDJC, dentro la quale troviamo il profilo default. Possiamo deciderne se crearne uno nuovo, ma per il momento scegliamo questo e proseguiamo cliccando su Open.
Si aprirà, a questo punto, la finestra principale di IDJC. Qui potremo selezionare i brani da riprodurre in streaming, ma per poterlo fare dobbiamo consentire ad IDJC di trasmettere le informazioni ad Icacast. Clicchiamo, quindi, sull’icona in basso a sinistra e, dal menu a tendina che si apre, scegliamo la voce Uscita. Nella finestra che si aprirà (Uscita IDJC), clicchiamo sul pulsante + a sinistra della voce Configurazione, e sul tasto New, per aggiungere il server. Inseriamo i dati in base a quanto precedentemente configurato nel file icecast.xml. Il risultato dovrebbe essere il seguente:
Clicchiamo su OK e, nella finestra Uscita IDJC, selezioniamo la checkbox 1 tra quelle relative ai Controlli di gruppo, in alto a sinistra, e clicchiamo su Connetti. Una volta chiusa la finestra, possiamo aggiungere i brani che desideriamo alla playlist e questi verranno riprodotti in streaming.
Per ascoltare i brani, è possibile utilizzare l’indirizzo pubblico associato al router, seguito dal numero della porta. Per esempio, con le impostazione predefinite, digitando:
http://localhost:8000/listen.m3u
possiamo ottenere il file .m3u per l’ascolto in streaming tramite un qualsiasi browser riproduttore audio. E’ bene notare, tuttavia, che l’impostazione di default assegna la web radio all’indirizzo localhost. Dall’esterno, essa è raggiungibile mediante l’indirizzo IP del router, che generalmente è dinamico. E’ buona norma, per una web radio pubblica, rendere tale indirizzo fisso, in modo che gli utenti possano accedervi senza la necessità di modificarlo di continuo. Esistono diversi [url=” http://it.wikipedia.org/wiki/Dynamic_DNS#Dynamic_DNS”]servizi[/url] che offrono funzionalità di DNS dinamico; in pratica, essi associano (previa registrazione) un indirizzo fisso, e con una sintassi leggibile, al vostro IP. Ciò consente di raggiungere l’IP mediante un “alias” più facilmente memorizzabile (in quanto si tratti di URL tipo quelle dei siti web). Molti router implementano delle funzioni che sono in grado, ad ogni riavvio o cambio di IP, di aggiornare il gestore del DNS dinamico, informandolo della modifica, così da rendere praticamente “fisso” l’indirizzo della vostra radio.
Ovviamente, quest’ultima procedura necessita della conoscenza di ogni modello di router per l’impostazione del DNS dinamico, e per tale motivo non possiamo affrontarla in modo più approfondito in questa sede. L’unica cosa che è bene ricordare è che bisogna impostare il nome del DNS scelto anche nel file di configurazione di Icecast, modificando il tag <hostname>. Ad esempio, se l’indirizzo da voi scelto è radio.html.it, inserirete nel file di configurazione la stringa:
<hostname>radio.html.it</hostname>
Conclusioni
Come avrete intuito, la procedura di installazione e di gestione di una web radio è relativamente semplice. SiaIcecast che IDJC consentono, tra l’altro, la modifica di molti altri parametri che riguardano sia la trasmissione dei dati (in termini, per esempio, di compressione e qualità), sia le modalità di riproduzione (è, ad esempio, possibile inviare direttamente la propria voce tramite un microfono). IDJC ed Icecast, ovviamente, sono solo due esempi di software pensati per questi scopi. La comunità oper source ha, però, pensato a molte soluzioni diverse e più performanti, che vi invitiamo a prendere in considerazione sulla base del grado di qualità desiderata per la vostra web radio.