MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST G. Marchesi Oggi vedremo come creare abbastanza rapidamente una propria Internet Radio utilizzando il sistema operativo Linux ed un paio di programmi open source. Seguiremo i seguenti passi: Installazione di Icecast2 e Ices2 Configurazione di Icecast2 Configurazione di Ices2 (varie possibilità d’uso) Preparazione della playlist Preparazione di uno script per impostare l’IP di volta in volta Problemi con i NAT e apertura della(e) porta(e) Prove tecniche con alcuni tipi di client
G. Marchesi Installazione dei programmi Per la prova utilizzeremo la distribuzione Ubuntu, nella quale Icecast2 e Ices2 sono disponibili nel repository. Con un programma tipo “Synaptic” basta cercare “icecast2” selezionarlo, e scaricarlo. Di solito viene automaticamente installato anche Ices2. MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Configurazione di Icecast2: In /etc/icecast2 si trova il file di configurazione ‘icecast2.xml’ una volta aperto con un editor bisogna modificare alcune voci miapassword /miaradio numero massimo connessioni miohost 8000 /miaradio MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Configurazione di Ices2: Il modo d’uso di Ices2 può essere impostato tramite un file XML, nella documentazione ci sono alcuni esempi. Modo playlist: ices2 legge i titoli dei brani da inviare ad Icecast2 da un file di testo Modo diretta: ices2 manda ad Icecast2 i suoni provenienti dalla scheda audio Modo relay: ices2 manda ad Icecast2 uno streaming proveniente da altra fonte In questa sede ci occuperemo solo del modo playlist MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Modo playlist: Esempio di configurazione 1 Mia Radio Il mio genere di musica prove tecniche di broadcasting playlist 0 miaplaylist.txt 0 MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Modo playlist: Esempio di configurazione (continua) localhost 8000 miapassword /miaradio MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Preparazione della playlist: Basta creare un file di testo ed inserire al suo interno un elenco di titoli Per esempio nel nostro file “miaplaylist.txt” inseriremo tre brani presenti in una cartella chiamata “AudioCast”. miaplaylist.txt ………………………………………………… ~/AudioCast/primobrano.ogg ~/AudioCast/secondobrano.ogg ~/AudioCast/terzobrano.ogg …………………………………………………. Ices cercherà i file specificati e li manderà ad Icecast MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Come impostare l’ I.P. Se si vuole trasmettere da casa, il problema è che ogni volta che ci si collega all’ADSL il nostro I.P. cambia. Ci sono diversi metodi per offrire l’accesso alla nostra radio aggirando questo ostacolo. Se disponiamo di un nostro spazio sul web, chi ci offre l’hosting (Linux…. ovvio!) di solito ci fornisce di un database mySql ed il supporto a php. In pratica dobbiamo creare una tabella in un database contenente tre campi: id – numero del record univoco (funge anche da primary key) Indirizzo – campo di testo che conterrà l’indirizzo nostro Status – campo boolean che ci dirà se la radio è online o no E poi scrivere tre pagine web, una che scrive nella tabella l’I.P. e setta lo status su acceso, la seconda che setta lo status su spento e la terza che offre l’accesso allo streaming. MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Script “setradioip.php” <?php $indirizzo = $_SERVER[REMOTE_ADDR]; // variabile superglobale! // apertura collegamento al server mySql $dbcon = mysql_connect(localhost, utente, password) or die("impossibile collegarsi al database"); // selezione del database mysql_select_db(radio, $dbcon); // salva l’I.P. corrente e setta il flag di status su 1 = acceso $query="update radio set addr='$indirizzo', status='1' where id='1'"; $ric= mysql_query($query); if (!$ric) die("query selezione fallita"); mysql_close($dbcon); // reindirizza alla pagina della radio header("Location: ?> MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Script “noradio.php” <?php // apertura collegamento al server mySql $dbcon = mysql_connect(localhost, utente, password) or die("impossibile collegarsi al database"); // selezione del database mysql_select_db(radio, $dbcon); // imposta il flag status su 0 = spenta $query="update radio set status='0' where id='1'"; $ric= mysql_query($query); if (!$ric) die("query selezione fallita"); mysql_close($dbcon); // reindirizza alla pagina della radio header("Location: ?> MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Script “radio.php” – prima parte <?php // apertura collegamento al server mySql $dbcon = mysql_connect(localhost, utente, password) or die("impossibile collegarsi al database"); // selezione del database mysql_select_db(radio, $dbcon); // recupera le informazioni sulla radio $query="select addr, status from radio where id='1'"; $ric= mysql_query($query); if (!$ric) die("query selezione fallita"); $riga = mysql_fetch_array($ric); $indirizzo = $riga[addr]; $stato = $riga[status]; mysql_close($dbcon); ?> MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Script “radio.php” – seconda parte <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " titolo per la tua radio <? if ($stato == '1'): echo " La radio è accesa e sta trasmettendo"; ?> Per collegarti alla radio clicca <a > qui <? else: echo " La radio non è momentaneamente disponibile "; endif; ?> MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Problemi con i NAT e soluzioni Può succedere che seguite attentamente le istruzioni, sentite la vostra radio in locale ma dall’esterno, dalla rete di Internet, gli altri non possono collegarsi e non riescono a sentirvi. Da cosa può dipendere? Probabilmente il vostro router che funge da NAT non lascia passare le connessioni che transitano per la porta che avete scelto, nel nostro caso la In questo caso si deve entrare nelle pagine di configurazione del vostro router ed aprire la porta in questione. Attenzione se vi collegate con il DHCP, il vostro PC potrebbe avere un IP locale diverso se collegate altri computer al router. In questo caso è fortemente raccomandato assegnare un IP statico, in questo modo sarete sicuri che avrete sempre la porta aperta. MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Prove tecniche con alcuni client Una volta installato e configurato tutto si possono usare client tipo “audacious”, “xmms” oppure “vlc” o qualsiasi altro che supporti lo streaming e le playlist per testarne il funzionamento. Come prima cosa però si deve cambiare nel file “/etc/defaults/icecast2” la frase “ENABLE=false” con “ENABLE=true” altrimenti ICECAST2 non partirà, poi da terminale bisogna farlo partire con “sudo /etc/init.d/icecast2 start”. Si inizia provando collegandosi a localhost. Poi si può provare a collegarsi all’indirizzo dato dallo script “radio.php” Chi non ha un proprio spazio web in hosting può collegarsi alla mia pagina “emmegitiesse.org/ilmioip.php” e leggere il proprio IP in quel momento. MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST
G. Marchesi Script di esempio Gli script di esempio appena visti li potete scaricare e modificare a vostro uso dal mio sito Per informazioni: mail: messenger: Grazie! MINUTI LA TUA RADIO IN 15 MINUTI CON ICECAST