Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[howto]traduzione: icecast, ices e muse
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4516
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Thu Dec 23, 2004 7:29 pm    Post subject: [howto]traduzione: icecast, ices e muse Reply with quote

Con oggi è esattamente un anno da quando ho avuto la prima notizia dell'esistenza di gentoo, dalla lettura di LinuxPro. In questo breve periodo ho saccheggiato selvaggiamente il Forum, ricavando un contributo straordinario di conoscenze, che mai avrei potuto acquisire altrove.

Ora, siccome in uno dei pochissimi post costruttivi che ho pubblicato avevo prodotto un howto timido timido sull'utilizzo di icecast, e siccome poco dopo, sul forum internazionale di documentazione, è uscito un lavoro ben più professionale e completo sull'argomento, ho immediatamente sentito il dovere morale di pubblicarne una traduzione. Naturalmente, la pigrizia e la mancanza di tempo hanno successivamente ritardato l'esecuzione del buon proposito fino a questa data, di cui aproffitto per farne una piccola strenna natalizia, con cui augurare a tutti ottime vacanze.

Naturalmente, considerata la mia spiccata attitudine a stracapire tanto l'inglese quanto l'informatica, gradisco ogni osservazione o suggerimento atto a migliorare la qualità del lavoro prodotto.

Buon Natale.
_________________
vu vu vu
gentù
mi piaci tu


Last edited by cloc3 on Thu Dec 23, 2004 7:34 pm; edited 2 times in total
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4516
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Thu Dec 23, 2004 7:30 pm    Post subject: Reply with quote

Streaming Icecast Howto per Gentoo

1. Introduzione

Quando decisi di desiderare uno streaming audio server, non conoscevo esattamente il funzionamento di icecast. Dopo aver esaminato una quantità di informazioni sul net, appresi che esistevano all'incirca 3000 modi differenti di ottenere streaming audio e che metà degli howto esistenti erano obsoleti o completamente scorretti. Quando finalmente trovai il modo di mettere in piedi il mio server, decisi di documentare i singoli passi da seguire. Questo howto desidera segnalarvi i passi necessari per configurare icecast (lo streaming server al quale si connettono i client) ed ices (l'applicazione che inoltra lo stream ad icecast). Per cortesia, intervenite liberamente per esprimere opinoni o correzioni affinchè io possa aggiornare concordemente questo documento.

Il tuo streaming audio sarà efficente indifferentemente su una LAN locale o su Internet. Tenendo conto di ciò, questo howto cercherà di guidare l'utente ad una installazione di ices e icecast quanto più possibile sicura. Se tu decidessi di non applicare le strutture di sicurezza descritte in questo howto, tieni conto della possibilità concreta che qualcuno riesca a compromettere il tuo server.

Importante:Questo howto è scritto per ices-2 ed icecast-2. Le versioni precedenti realizzavano streaming in formato MP3. Attualmente, la versione 2 di ices supporta esclusivamente il formato OGG, mentre icecast-2 mantiene la capacità di utilizzare MP3. Questo può influenzare le caratteristiche dei clienti che si connettono al tuo stream. Se desideri uno stream MP3, potresti orientarti a provare Muse. Io ho incluso le istruzioni per una connessione a Muse al fondo di questo howto. Per un convertitore da MP3 ad OGG, prova Oggasm.

2. Installazione di Icecast ed Ices
USE flags


Icecast può utilizzare ls USE flag curl, ma questo howto non ne farà uso.

Installazione

Attualmente, sia Icecast che Ices sono inclusi in Portage, e pertanto l'installazione dovrebbero essere realizzabile in modo immediato.

Code Listing 2.1: Emergere i pacchetti necessari
Code:
#emerge -v icecast ices

Configurazione di Icecast

Siccome icecast esercita una continua attività di ascolto delle connessioni dei client sul network, è necessario utilizzarlo con molta cautela. Se Icecst venisse lanciato da root, e qualcuno scoprisse una falla nel codice, tale da consentire un attacco con acquisizione di un accesso di shell, verrebbe presa una shell di root del sistema. Per limitare questa possibilità, faremo girare sia icecast che ices con l'utente non privilegiato: icecast. Se qualcuno dovesse compromettere Icecast, gadagnando un accesso a una shell del sistema, non si troverebbe automaticamente ad aver guadagnato un accesso da superutente.

Code Listing 2.2: Creazione dell'utente icecast
Code:

# groupadd icecast
# useradd icecast -m -g icecast -G users,wheel,audio -s /bin/bash
# passwd icecast

Ora possiamo accedere all'account utente dell'utente Icecast per completare la configurazione.

Code Listing 2.3: Configurazione di Icecast
Code:

# su - icecast
$ mkdir log
$ cp /etc/icecast2/icecast.xml .

Editiamo il file icecast.xml per cambiare le seguenti opzioni:

Code Listing 2.4: Modifiche ad icecast.xml
Code:

<source-password>$passwd</source-password>
<relay-password>$passwd</relay-password>
<admin-password>$passwd</admin-password>
<hostname>$hostname</hostname>
<logdir>/home/icecast/log</logdir>

        <!--                            # Remove
        <changeowner>
            <user>icecast</user>        # Change to icecast
            <group>icecast</group>      # Change to icecast
        </changeowner>
        -->                             # Remove

Sostituiamo $passwd con la chiave desiderata per accedere ad icecast. $hostname deve contenere il nome della tua macchina. Rilasciamo la shell e lanciamo icecast per verificare che la configurazione sia funzionante:

Code Listing 2.5: Avvio di Icecast
Code:
$ exit
# icecast -b -c /home/icecast/icecast.xml

Controlliamo il file /home/icecast/log/error.log . Dovrebbe apparire qualcosa del genere:

Code Listing 2.6: Verifica dell'avvio di Icecast
Code:
[2004-07-19  01:06:32] INFO main/main icecast server started

Configurazione di Ices.

A questo punto, abbiamo Icecast attivo ed efficiente. Ora Icecast è pronto per ricevere gli stream musicali da Ices. Configuriamo Ices:

Code Listing 2.7: Configurazione di Ices
Code:

# su - icecast
$ cp /etc/ices2/ices-playlist.xml.dist ./ices-playlist.xml

Editiamo il file ices-playlist.xml per apportare le seguenti modifiche:

Code Listing 2.8: Modifiche a ices-playlist.xml
Code:

<background>1</background>
<logpath>/home/icecast/log</logpath>
<hostname>$hostname</hostname>
<password>$passwd</password>
<param name="file">/home/icecast/playlist.txt</param>
<mount>/$stream_name.ogg</mount>                            # Must include .ogg

Nota: il nome dei tuoi stream deve necessariamente terminare con ".ogg", altrimenti molti media non saranno in grado di riconoscere come tale il formato OGG degli stream di Icecast.

Avviare Ices.


Adesso che Ices ed Icecast sono configurati, è necessario creare una playlist per Ices. In questo howto abbiamo scelto il file /home/icecast/playlist.txt per costruire la nostra playlist. La playlist è un file di testo che contiene un percorso assoluto ad un file OGG per ogni linea. Possiamo creare una playlist da una cartella esistente di file OGG:

Code Listing 2.9: Creazione rapida di una playlist
Code:

$ find $ogg_dir -name *.ogg -print > playlist.txt

Ices invierà come stream ciascuna canzone nell'ordine sequenziale della playlist, a meno di non porre uguale a "1" il parametro <random> in ices_playlist.xml. Se è posto uguale a "1" il parametro <restart_after_reread>, ices riprenderà l'esecuzione della playlist, cominciando dal primo file, in caso di aggiornamento durante la produzione dello stream.

Ora avviamo Ices come icecast user:

Code Listing 2.10: Avvio di Ices
Code:

$ ices ./ices-playlist.xml

Se non vengono visualizzati messaggi di errore, è possibile verificare la connessione di Ices ad Icecast via-browser all'indirizzo http://$hostname:8000/admin/stats.xsl. Dovrebbe apparire il mount point /$stream_name.ogg nella lista dei mount point. Se il tuo stream esiste, dovresti essere in grado di connetterti ad esso utilizzando l'URL http://$hostname:8000/$stream_name.ogg.m3u.

Se ascolti li tuo stream, congratulazioni! Ora possiedi uno streaming audio server. Dopo aver strutturato il tuo nuovo streaming audio-server, chiudi i processi di Ices ed Icecast e passa alla sezione successiva, dove creeremo degli script di startup e shutdown per Ices ed Icecast.

Code Listing 2.11: chiusura dei processi attivi di Ices ed Icecast
Code:

$ exit
# killall ices
# killall icecast


3. Script di avvio e chiusura di Ices ed Icecast

Quando emergi Ices ed Icecast, Portage non genera degli script appositi di avvio e chiusura. Puoi usare gli script seguenti:

Code Listing 3.1 /etc/init.d/ices
Code:

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2

depend() {
        need icecast net
         use dns
}

start() {
        ebegin "Starting ices"
        start-stop-daemon --start --chuid icecast --quiet --exec /usr/bin/ices \
                -- /home/icecast/ices-playlist.xml >/dev/null 2>&1
        eend $?
}

stop () {
        ebegin "Stopping ices"
        start-stop-daemon --stop --retry 5 --quiet --exec /usr/bin/ices
        eend $?
}


Code Listing 3.2 /etc/init.d/icecast
Code:

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2

depend() {
        need net
        use dns
}
 
start() {
        ebegin "Starting icecast"
        start-stop-daemon --start --quiet --exec /usr/bin/icecast \
                --background -- -b -c /home/icecast/icecast.xml >/dev/null 2>&1
        eend $?
}

stop () {
        ebegin "Stopping icecast"
        start-stop-daemon --stop --retry 5 --quiet --exec /usr/bin/icecast
        eend $?
}

Se desideri avviare ices all'avvio del sistema, usa rc-update:

Code Listing 3.3: Avviare Icecast e Ices al boot
Code:

#rc-update add ices default

Nota: lo script di init di Ices avvia automaticamente Icecast qualora non fosse già avviato.

4. Installazione e configurazione di muse.


Dunque, il formato OGG non è adeguato alle tue necessità? Bene, esiste una tecnica di produrre stream in formato MP3 utilizzando Muse e questa sezione vuole mostrare come agganciare muse ad Icecast. Io raccomando caldamente di seguire le precedenti sezioni per configurare ices ed icecast, anche a chi non voglia produrre stream nel formato OGG.

Nota: Muse è limitato nelle capacità di riprodurre playlist create dagli utenti. Per quanto io sappia, non c'è modo di riprodurre una playlist in ordine casuale. Ciò significa che Muse riprodurrà le conzoni nell'ordine in cui sono collocate nella playlist. Inoltre, non genera informazioni relative alla canzone corrente per icecast.

Importante: Muse è un piccolo orso arcigno da trattare. Non vi è modo di separare il processo dalla TTY e non ha capacità autonome di porre sè stesso in background.
Non esiste neppure un'opzione per indirizzare i logs su di un file, pretende di scrivere esclusivamente sullo standard error. Ciò significa che, sebbene questo howto sia concepito idealmente per un controllo pieno del logging, con muse non sarà possibile ottenere log con l'uso di questi script di startup. Opinioni e suggerimenti sono graditi.

USE Flags

Muse può utilizzare le seguenti flags: debug, gtk e ncurses. Questo howto non ne farà uso.

Installazione

Muse è incluso in Portage, e pertanto l'installazione dovrebbe essere realizzabile in modo immediato.

Code Listing 4.1: Installazione di Muse
Code:

#emerge -v muse


Ora che muse è stato installato, dobbiamo creare una playlist, come già fatto con ices. Tuttavia, Muse è pignolo con l'estensione delle playlist, così dobbiamo usare una desinenza '.pls'. Il formato del file consiste in un percorso ad un file MP3 per ciascuna linea. Creiamo un playlist per Muse:

Code Listing 4.2: Creazione rapida di una playlist per Muse
Code:

# su - icecast
$ find $mp3_dir -name *.mp3 -print > playlist.pls

Portage non genera gli script di init e di shutdown per Muse, perché è stato costruito per l'esecuzione in console. Noi possiamo creare degli script efficienti di init e di shutdown per Muse.

Code Listing: 4.3 /etc/init.d/muse
Code:

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2

depend() {
        need icecast net
        use dns
}

start() {
        ebegin "Starting muse"
        if [ -n "${MUSE_LOG}" -a ! -f "${MUSE_LOG}" ]; then
                touch "${MUSE_LOG}"
                chown icecast:icecast "${MUSE_LOG}"
        fi
        MUSE_OPTS="-C $MUSE_PLAYLIST -o -e mp3 -b ${MUSE_BITRATE} -q ${MUSE_QUALITY} -r ${MUSE_RATE} -c 2 -s ${MUSE_ICECAST_SERVER} -m ${MUSE_MOUNT} -p {MUSE_ICECAST_PASSWD} -g cli"          start-stop-daemon --start --background --chuid icecast --quiet --exec /usr/bin/muse \
                -- ${MUSE_OPTS} >"${MUSE_LOG}" 2>&1
        eend $?
}
 
stop () {
        ebegin "Stopping muse"
        start-stop-daemon --stop --retry 5 --quiet --exec /usr/bin/muse
        eend $?
}


In più, abbiamo anche bisogno di generare un file contenente i parametri di command line per muse.

Code Listing 4.4: /etc/conf.d/muse
Code:

# Config file for muse
MUSE_BITRATE="128"
MUSE_QUALITY="9"
MUSE_RATE="44100"
MUSE_MOUNT="$stream_name.mp3"
MUSE_ICECAST_SERVER="localhost:8000"
MUSE_ICECAST_PASSWD="$passwd"
MUSE_PLAYLIST="/home/icecast/playlist.pls"
MUSE_LOG="/home/icecast/log/muse.log"

Sostituisci $stream_name e $passwd con il tuo stream e la password di icecast.

Se desideri avere Muse e Icecast attivi al boot, usa rc-update:
[code]
#rc-update add muse default
[code]
Nota: Lo script di init di Muse avvia automaticamente Icecast se non è già attivo.

Dovrebbe essere possibile verificare la connessione di Muse ad Icecast via-browser all'indirizzo http://$hostname:8000/admin/stats.xsl. Dovrebbe apparire il mount point /$stream_name.mp3 nella lista dei mount point. Se il tuo stream esiste, dovresti essere in grado di connetterti ad esso utilizzando l'URL http://$hostname:8000/$stream_name.mp3.m3u.
_________________
vu vu vu
gentù
mi piaci tu


Last edited by cloc3 on Thu Dec 23, 2004 7:40 pm; edited 5 times in total
Back to top
View user's profile Send private message
koma
Advocate
Advocate


Joined: 06 Jun 2003
Posts: 2700
Location: Italy

PostPosted: Thu Dec 23, 2004 7:31 pm    Post subject: Reply with quote

credo di amarti
_________________
Remember! Gnu is not Unix!
http://www.youtube.com/watch?v=_yoJI-Tl94g GLORY GLORY HYPNOTOAD
Linux Counter[code:1]
User n° #466586
ID 375005 EkatombeII
ID 375006 Apocalypto
ID 375007 KHP[/code:1]
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum