Se serve, i pomodori marci tirateli a lui.
Naturalmente, commenti, correzioni e critiche sono graditissimi.
Il fatto è che sono riuscito a far partire un server di streaming audio, e desidero provare a spiegare come ho fatto.
La prima cosa è: consultare un buon manuale. Sono ottimi gli howto del sito www.icecast.org, o quelli contenuti nell'articolo del numero 7 di LinuxPro, ottobre 2003, pagine 18 e seguenti.
Ma se qualcuno preferisce continuare qui, allora peggio per lui.
- 1. Prima di tutto: cosè uno streaming audio?
Uno streaming audio è un flusso di dati che rappresenta una sequenza sonora, opportunamente codificata.
2. Come faccio a produrre uno streaming audio?
Un modo elementare è il seguente: in ambiente grafico, lancia gnome-volume-control da terminale (o un suo equivalente, come aumix o kmix).
Su uno qualunque dei canali disponibili, seleziona il modo reg. Automaticamente, il sistema operativo mette a disposizione dell'utente un flusso di streaming circoscritto a quel singolo canale.
Fai attenzione: registrare è una bellissima, ma registrare la cosa sbagliata e collocarla nel posto sbagliato può costituire reato. Ricorda sempre che il free-software trova la propria forza nella capacità di rispettare la libertà di tutti, non solo la propria.
3. Già fatto? Ma io non sento niente!
Certo. Il flusso esiste, ma nessuno sa dove sia né come utilizzarlo. Sono necessari infatti due servizi molto precisi:
a) Un servizio per trasformare il flusso di dati in un file del formato appropriato (per esempio ices);
b) Un servizio che crea i socket per porre i dati a disposizione dell'utente (per esempio icecast).
4. Cominciamo con icecast?
Si, forse è più ordinato. Intanto bisogna compilarlo con emerge. Da superutente:In linea di principio, il programma potrebbe già partire così, ma è meglio controllare preventivamente il file di configurazione:Code: Select all
$ emerge -s icecast $ ACCEPT_KEYWORDS="~x86" emerge icecastLe modifiche assolutamente indispensabili per partire sono piuttosto poche.Code: Select all
cat /etc/icecast2/icecast.xml
Una è la modifica del tag <hostname>. Bisogna inserire un indirizzo risolubile per l'utente remoto, che altrimenti potrà scaricare i dati musicali ma non riprodurre il suono con xmms o noatun, perché queste applicazioni cercheranno vanamente di connettersi a localhost.
Importantissma, però la riga 89: <logdir>. Emerge non crea le directory di log in un modo compatibile con le impostazioni di default del sorgente. Quindi bisoga arrangiarsi a mano.
Io ho creato /var/log/icecast e modificato il tag in questione.
Molto utile, per avviare correttamente il server, la seguente modifica:diventa:Code: Select all
<!-- <changeowner> <user>nobody</user> <group>nobody</group> </changeowner> -->Attenzione ai commenti XML. Un piccolo errore può essere fatale. E' utilile in questo caso far uso di un editor con evidenziazione a colori, come kate.Code: Select all
<!-- --> <changeowner> <user>icecast</user> <group>icecast</group> </changeowner> <!-- -->
Ora crea l'utente icecast. Per esempio:Fai molta attenzione al 499, che non sia un id occupato da un altro utente.Code: Select all
echo 'icecast:x:499:499:added by portage for icecast:/var/cvsroot:/bin/false'>>/etc/passwd echo 'icecast:x:499:'>>/etc/group echo 'icecast:!:12514:0:99999:7:::'>>/etc/shadow chown -R icecast:icecast /var/log/icecast chmod -R 744 /var/log/icecast
Adesso puoi partire! Sempre da superutente, digita:L'avvio di icecast è un'operazione da superutente. In teoria, dovrebbe esistere uno script da collocare nella directory /etc/init.d, ma gentoo non lo ha predisposto.Code: Select all
icecast -b -c /etc/icecast2/icecast.xml
5. Uffa! Non sento niente!
Certo. Apri un browser (anche IE) e digita:Senza dimenticare la barra finale! User Name: admin Password: hackme (se non la hai cambiata nel file di configurazione).Code: Select all
http://localhost:8000/admin/
Non senti nulla, ma puoi già amministrare quel nulla!
6. Fantastico! e adesso?
Manca ancora il servizio a), quello che crea un file di streaming. Tieni presente che ices non può essere configurato in modalità grafica ed è quindi un po' scomodo, come programma client. Se desideri un client grafico cerca qualche altro applicativo (per esempio MuSE).
Per inciso, faccio notare che, su ppc, il risultato è piuttosto deludente:Code: Select all
$ emerge -s ices $ ACCEPT_KEYWORDS="~x86" emerge icesmentre il comando:Code: Select all
gentoo-ppc cloc3 # ACCEPT_KEYWORDS="~ppc" emerge ices -p These are the packages that I would merge, in order: Calculating dependencies !!! all ebuilds that could satisfy "ices" have been masked. !!! possible candidates are: - net-misc/ices-0.2.3 (masked by: -keyword) - net-misc/ices-2.0.0 (masked by: missing keyword) - net-misc/ices-2.0_beta4 (masked by: missing keyword) - net-misc/ices-0.3 (masked by: missing keyword) !!! Error calculating dependencies. Please correct.Misteriosamente, compila (e funziona)!Code: Select all
$ ACCEPT_KEYWORDS="~x86" emerge ices
7. Qual è il file di configurazione?
Sono due: /etc/ices2/ices-live.xml.dist ed /etc/ices2/ices-playlist.xml
Il primo ti permette di trasformare in uno strem tutti suoni che hai posto in registrazione con gnome-volume-control (ricordi il punto 1?). Praticamente come una radio.
Il secondo riproduce i documenti audio (rigorosamente di tipo .ogg) indicati in una apposita lista che puoi preparare autonomamente. Praticamente come un juke-box.
ices può essere considerato un client di icecast e utilizzato da un utente semplice. Adesso puoi abbandonare la shell di superutente.
Crea una directory per i file di configurazione:Controlla che gli indirizzi e le password dei file di configurazione di ices e icecast corrispondano correttamente (nella configurazione di default è tutto ok).Code: Select all
cp /etc/ices2 ~/.ices mkdir ~/.ices/log
Fondamentale la sistemazione del tag <logpath>.
Utile inserire 1 nel tag <background> per forzare l'esecuzione in batch (non esiste un'opzione -b, e l'uso del simbolo & non funziona)
Se vuoi usare una playlist, indica il path corretto nel tag <paran name="file"> all'interno del tag <input>.
Utile, per la playlist sostituire 1 a zero nel tag <param name="restart-after-reread">, per ottenere una esecuzione ripetuta dei file della lista.
Modifica il tag <logpath>, e finalmente lancia il programma:7. Non sento ancora niente!Code: Select all
ices ~/.ices/ices-live.xml.dist oppure: ices ~/.ices/ices-playlist.xml.dist
Pazienza! Ormai 6 un gioco da ragazzi.
Dal browser, digita http://localhost:8000/admin/ e di seguito clicca su Status Page.
Come vedi, accanto alla voce Listen è comparso un nuovo link Here, che punta a http://localhost:8000/example.ogg.m3u
E' un file di testo, accessibile via-internet anche da remoto.
Se invece digiti semplicemente http://localhost:8000/example.ogg, accederai direttamente ai dati audio.
Se lo desideri, puoi scaricare i dati in un file .ogg, e ascoltare con ogg123, oppure attivare direttamente xmms o noatun.
Probabilmente esiste un plugin che consente l'esecuzione immediata e che non ho ancora cercato. Ma questo è tema di un altro howto

