
Trentacinquesimo articolo dedicato alle web radio.
Continuiamo quanto prima iniziato su Icecast.
Se non ci sono stati intoppi (i commenti lo riveleranno) a quest’ora la radio funziona, ed ha come indirizzo il solito http://indirizzoip:numeroporta solo che stavolta, di default si crea un file example.ogg piuttosto che il conosciuto listen.pls
Vediamo adesso di Capire quali sono le impostazioni modificabili, a partire dal server.
Eravamo rimasti a questa immagine:
Adesso clicchiamo sul tasto STOP SERVER quindi su
Edit->
Configurations
Otterremo un file XML, che andiamo ad esaminare.
<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>
<!– If enabled, this will provide a burst of data when a client
first connects, thereby significantly reducing the startup
time for listeners that do substantial buffering. However,
it also significantly increases latency between the source
client and listening client. For low-latency setups, you
might want to disable this. –>
<burst-on-connect>1</burst-on-connect>
<!– same as burst-on-connect, but this allows for being more
specific on how much to burst. Most people won’t need to
change from the default 64k. Applies to all mountpoints –>
<burst-size>65535</burst-size>
</limits>
Questaè la prima parte configurabile, rigurada i limiti che potete impostare per il vostro server:
CLIENTS: numero massimo di ascoltatori in contemporanea. Se sono impostati N ascoltatori, l’N+1esimo ascoltatore sarà avvisato della mancanza di posti disponibili.
SOURCES: numero di Sorgenti collegate al server Icecast, che, al contrario di Shoutcast permette di avere sorgenti multiple (commento personale: è una gran cosa)
THREADPOOL: Numero di Threads contemporanei aperti da Icecast. Maggiore è il flusso di ascoltatori, maggiore DOVREBBE essere il numero di thread simultanei da settare. Ricordiamo che ogni cosa ha un prezzo, quindi aumentando i Threads, maggiore sarà il peso di Icecast sulla macchina.
QUEUE-SIZE: Grandezza in byte del buffer disponibile ad ogni singolo ascoltatore, nel caso in cui non ci fosse possibilità di ascolto real time per problemi di congestione. Una volta superato questo limite il cliente viene disconnesso. (consiglio: inutile variarlo, questo valore va benissimo per qualsiasi bitrate)
CLIENT-TIMEOUT: come dice un ufficioso ma non ufficiale how-to questa opzione può essere ignorata in quanto non implementata.
HEADER-TIMEOUT: Massimo tempo di attesa da parte di un cliente per la ricezione iniziale del flusso.
SOURCE-TIMEOUT: Massimo tempo di attesa di dati da parte del server. Dopo avere atteso questo tempo, misurato in secondi, il server rimuove la sorgente.
BURST-ON-CONNECT: Questa opzione, disabilitata per default, se abilitata permette di creare un surplus di dati iniziale, utile per utenti che hanno forti buffer. Di contro, aumenta le latenze.
BURST-SIZE: Se attivato insieme a BURST ON CONNECT, indica quanti dati verranno inizialmente inviati di botto.
<authentication>
<!– Sources log in with username ‘source’ –>
<source-password>hackme</source-password>
<!– Relays log in username ‘relay’ –>
<relay-password>hackme</relay-password>
<!– Admin logs in with the username given below –>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
SOURCE-PASSWORD: Password della sorgente
RELAY-PASSWORD: Password dei Relay
ADMIN-USER: Username dell’amministratore del server. (Consiglio: Lasciatelo cosi com’è)
ADMIN-PASSWORD: Password dell’amministratore del server.
<!– Uncomment this if you want directory listings –>
<!–
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
</directory>
–>
Queste opzioni servono per il listing nelle pagine gialle di Icecast, sono disabilitate per default.
YP-URL-TIMEOUT: Massimo tempo in secondi che il server può impiegare per inviare i dati al sito di listing.
YP-URL: Sito a cui inviare le informazioni inerenti la propria stazione.
<!– This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. –>
<hostname>localhost</hostname>
<!– You can use these two if you only want a single listener –>
<!–<port>8000</port> –>
<!–<bind-address>127.0.0.1</bind-address>–>
<!– You may have multiple <listener> elements –>
<listen-socket>
<port>8000</port>
<!– <bind-address>127.0.0.1</bind-address> –>
</listen-socket>
<!–
<listen-socket>
<port>8001</port>
</listen-socket>
–>
HOSTNAME: Riferimento univoco al computer che ospita il server.Può essere mantenuto LOCALHOST perchè anche in questo caso, la radio sarà raggiungibile tramite il vostro ip pubblico.
PORT: Similarmente a Shoutcast, Icecast permette di settare la porta TCP che preferite per le vostre trasmissioni. Faccio in tal caso solo le raccomandazioni generiche, non usate con numero inferiore a 1024, perchè vincolate al Sistema operativo (…)
BIND-ADDRESS: Vincolo di un singolo IP all’ascolto.. utile per redirezioni.
LISTEN-SOCKET: Porta supplementare, di “riserva” utilizzata da Icecast. Può essere 8001, o the one you prefer.
<!–<master-server>127.0.0.1</master-server>–>
<!–<master-server-port>8001</master-server-port>–>
<!–<master-update-interval>120</master-update-interval>–>
<!–<master-password>hackme</master-password>–>
Queste opzioni, di default commentate, sono necessarie per chi vuole effettuare un relaying completo (ovvero di tutti i mountpoints) di un altro server.
Devono essere settate le opzioni nel seguente modo:
MASTER-SERVER: Indirizzo Ip del server da cui si fa relaying.
MASTER-SERVER-PORT: Porta utilizzata dal Server da cui si fa relaying.
MASTER-UPDATE-INTERVAL: Intervallo di tempo per le varie sincoronizzazioni tra i server.
MASTER-PASSWORD: Password del server da cui si fa relaying.
Ignoriamo i Relay on demand, e passiamo ai Relay singoli, che non comprendono TUTTI i Mountpoints, ma magari uno solo.
<!–
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
–>
SERVER: Indirizzo Ip del server da cui si fa relaying.
PORT: Porta del server da cui si fa relaying.
MOUNT: Mountpoint da cui fare relaying.
LOCAL-MOUNT: Mountpoint locale in cui si fa il relaying.
ON DEMAND: Flag che identifica se il relay è o meno on demand, non interessa le web radio.
RELAY-SHOUTCAST-METADATA: Flag che indica se si sta facendo relay di un server Shoutcast, e se in tal caso si vuole fare relaying anche dei metadati.
<!– Only define a <mount> section if you want to use advanced options,
like alternative usernames or passwords
<mount>
<mount-name>/example-complex.ogg</mount-name>
<username>othersource</username>
<password>hackmemore</password>
<max-listeners>1</max-listeners>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/example_intro.ogg</intro>
<hidden>1</hidden>
<no-yp>1</no-yp>
<authentication type=”htpasswd”>
<option name=”filename” value=”myauth”/>
<option name=”allow_duplicate_users” value=”0″/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>
<mount>
<mount-name>/auth_example.ogg</mount-name>
<authentication type=”url”>
<option name=”mount_add” value=”http://myauthserver.net/notify_mount.php”/>
<option name=”mount_remove” value=”http://myauthserver.net/notify_mount.php”/>
<option name=”listener_add” value=”http://myauthserver.net/notify_listener.php”/>
<option name=”listener_remove” value=”http://myauthserver.net/notify_listener.php”/>
</authentication>
</mount>
–>
MOUNT-NAME: Nome del MountPoint in cui verranno applicate le specifiche seguenti.
USERNAME: Nome utente di accesso al mountpoint
PASSWORD: Password del mountpoint
MAX-LISTENERS: Opzione che indica il numero massimo di Ascoltatori del mountpoint.
DUMP-FILE: Nome del file che fungerà da deposito del flusso attraverso questo mountpoint.
BURST-SIZE: Vedi sopra.
FALLBACK-MOUNT: Mountpoint che verrà utilizzato come ancora di salvataggio qualora si disconnettesse la sorgente.
Le altre opzioni riguardono sistemi Unix e non verranno trattate, ma solo richieste su commento. Saltiamo direttamente a LOGGING.
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<!– <playlistlog>playlist.log</playlistlog> –>
<loglevel>4</loglevel> <!– 4 Debug, 3 Info, 2 Warn, 1 Error –>
<logsize>10000</logsize> <!– Max size of a logfile –>
<!– If logarchive is enabled (1), then when logsize is reached
the logfile will be moved to [error|access|playlist].log.DATESTAMP,
otherwise it will be moved to [error|access|playlist].log.old.
Default is non-archive mode (i.e. overwrite)
–>
<!– <logarchive>1</logarchive> –>
</logging>
ACCESSLOG: File in cui verranno memorizzati gli accessi al server da parte dei clients
ERRORLOG: File in cui verranno memorizzati gli errori del server.
LOGLEVEL: I livelli del log possono essere i seguenti:
- Debug, Informazioni, Segnalazioni, Errori
- Informazioni, Segnalazioni, Errori
- Segnalazioni, Errori
- Errori
LOGSIZE: Grandezza massima dei files di log.
E per il server con Windows abbiamo finito. Altre opzioni ci sono nella versione Per *nix. Adesso ci occuperemo del Plug-in Oddcast.
Questa è la schermata del plug-in Oddcast per Winamp, clicchiamo su config.
Otterremo quest’altra immagine:
Esaminiamo ogni singola opzione di ogni singolo TAB.
BITRATE: E’ possibile settare un bitrate minimo, medio e massimo. Il Bitrate medio sarà quello utilizzato in caso di Codec CBR, mentre i valori di minimo e massimo saranno i limiti dei codec VBR (prometto di trattare meglio l’argomento codec)
SAMPLE RATE: Frequenza di campionamento. E’ settata a 44100 Hz. Va bene cosi, se volete qualità migliori o peggiori settatela diversamente.
CHANNELS: Uno o due canali? Ovvero, STEREO o MONO? Se avete settato 44100 Hz consiglio di settare 2 canali (che del resto è l’opzione di default)
ENCODER TYPE: Tipologia di Encoder. Icecast da questo punto di vista è molto flessibile. Permette di scegliere tra OGG, LAME, WMA, AAC.
ARCHIVE DIRECTORY: Potete scegliere dove salvare i vostri Flussi in locale.
LOG LEVEL & LOG FILE: Come precedentemente descritto, potete scegliere la precisione di Logging e il posto in cui verrà salvato.
Cambiamo TAB e andiamo qui:
Qui ci sono le opzioni di Encoding. In base all’encoder che avete scelto potete settare:
1) Per LAME: Potete settare Il VBR, le modalità di VBR e la qualità (per ora non mi addentro nell’argomento, ma lo farò)
2) Per OGG: Potete settare un encoding orientato alla qualità o al bitrate.
3) Per WMA: Settate la porta di ascolto (socket) e il numero di Clients possibili.
4) Per AAC: E’ settabile la Frequenza di taglio e il livello qualitativo.
Last but not least:
SERVERTYPE: Tipo di server, in questo caso ICECAST2.
SERVER: Nome del computer che ospita il server, nel caso di home radio, localhost
RECONNECT SECS: Tempo di riconnessione
PORT: Porta da cui il server effettuerà lo streaming.
LIVEREC SAMPLERATE: Frequenza di campionamento di segnali live, non diretamente provenienti da Winamp, come le regie.
ENCODER PASSWORD: Password del Server, che deve matchare ovviamente con quella dell’encoder.
PUBLIC SERVER: Volete il server pubblico? Spuntate la casella.
RECONNECT: Potete abilitare o disabilitare la riconnessione automatica in caso di caduta della sorgente.
GENRE: Genere che trasmettete.
MOUNTPOINT: Come precedentemente descritto, settate il mountpoint che utilizzate.
STREAM URL: Scrivete qui il vostro sito
SERVER DESC: Scrivete una breve descrizione.
E cosi ce l’abbiamo fatta a portare la pannocchia a casa