Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Come installare un Server di Streaming Audio con Icecast 2.3.3 su CentOS 6.3 x86_64 Linux

Questo tutorial spiega creando il proprio server di streaming audio con Icecast (OGG/MP3). Icecast è stato progettato per lo streaming di qualsiasi file audio se un client di streaming appropriato è disponibile.Per OGG/Vorbis è possibile utilizzare CIEM e per MP3 icegenerator. Ecco un piccolo tutorial su come impostare Icecast per lo streaming OGG/Vorbis e MP3.

In questo articolo contiene i seguenti argomenti:

Configurazione del server: Icecast
Configurare il client in streaming OGG/Vorbis: ices
Che istituisce il MP3 streaming client: icegenerator

 

Configurazione del server: Icecast

In primo luogo ottenere il software:

# yum groupinstall “Strumenti di sviluppo”
Installare # yum -y ricciolo-devel libtheora-devel libvorbis-devel libxslt-devel speex-devel libxslt
# rpm – importazione http://apt.sw.be/RPM-GPG-KEY.dag.txt
# cd/Home
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# mkdir -p /usr/src/icecast
# cd /usr/src/icecast
# wget http://downloads.xiph.org/releases/icecast/icecast-2.3.3.tar.gz

Successivamente estrarre le fonti e modificare nel nuovo driectory:

# tar xf icecast-2.3.3.tar.gz
# cd icecast-2.3.3

Quindi configurare i sorgenti:

#. /configure–prefix=/opt/icecast/2.3.3

E infine compilare i sorgenti e installare i file binari:

# make 
# Assicurarsi di installare

Si dovrebbe avere ora la icecast binario sotto /opt/icecast/2.3.3/latest/bin:

# ls /opt/icecast/2.3.3/bin/

Icecast *

Ora entrare nella icecast directory e link la 2.3.3 al ritardato:

# cd/opt/icecast
# ln -s 2.3.3 Ultima

Ora è possibile configurare icecast modificando il file icecast. Prima spostare il file di esempio di orignal un luogo alternativo:

# cd /opt/icecast/latest/etc
# mv icecast icecast.xml.orig
# vi Icecast

<icecast>
   
     <!-- LIMITS -->
     <limits>
       <clients>100</clients>
       <sources>10</sources>
       <threadpool>5</threadpool>
       <queue-size>524288</queue-size>
       <client-timeout>30</client-timeout>
       <header-timeout>15</header-timeout>
       <source-timeout>10</source-timeout>
       <burst-on-connect>1</burst-on-connect>
       <burst-size>65535</burst-size>
     </limits>
   
     <!-- GENRIC -->
     <authentication>
       <source-password>password</source-password>
       <admin-user>admin</admin-user>
       <admin-password>password</admin-password>
     </authentication>
     <hostname>MyHost/IP</hostname>
     <listen-socket>
       <port>8000</port>
     </listen-socket>
     <fileserve>1</fileserve>
   
     <!-- PATHES -->
     <paths>
       <basedir>/opt/icecast/latest/share/icecast</basedir>
       <webroot>/opt/icecast/latest/share/icecast/web</webroot>
       <adminroot>/opt/icecast/latest/share/icecast/admin</adminroot>
       <logdir>/var/log/icecast</logdir>
       <pidfile>/var/run/icecast/icecast.pid</pidfile>
       <alias source="/" dest="/status.xsl"/>
     </paths>
   
     <!-- LOG -->
     <logging>
       <accesslog>access.log</accesslog>
       <errorlog>error.log</errorlog>
       <playlistlog>playlist.log</playlistlog>
       <loglevel>1</loglevel>
       <logsize>10000</logsize>
       <logarchive>1</logarchive>
     </logging>
   
     <!-- SECURITY -->
     <security>
       <chroot>0</chroot>
       <changeowner>
         <user>icecast</user>
         <group>icecast</group>
       </changeowner>
     </security>
   
   </icecast>

L’Icecast sopra è molto semplice. I primi limiti di sezione definisce quante radio stazioni si massimo vuole fornire (fonti = 10), può collegare quanti client (client = 100) ecc.

La seconda sezione generica definisce un nome utente, nome host MyHost/IP), porta (8000) per il server stesso, ecc.

La sezione sentieri definisce i sentieri alla webgui.

Icecast è un piccolo e semplice webgui per vedere cosa sta succedendo e questa sezione definisce dove trovare i documenti web.

La sezione di registrazione è naturalmente per la registrazione, dove e cosa accedere ecc.

La sezione di sicurezza definisce che il software di Icecast stesso deve essere eseguito con l’utente icecast e il gruppo icecast.

Ora abbiamo bisogno di altre tre cose da fare: creare un utente e un gruppo chiamato icecast come definito nel file di configurazione di Icecast, creare il posto per i registri e un posto per il file pid.

First create the icecast user with the ID 200 and the group icecast with the ID 200:

# groupadd -g 200 icecast
# useradd -d /var/log/icecast -m -g icecast -s /bin/bash -u 200 icecast

With the -m option set the directory for the logs was automatically created and the second step can be spared. Only the directory for the pid file is now needed:

# mkdir -p /var/run/icecast
# chown -R icecast:icecast /var/run/icecast

Now give it a try and start the icecast server:

# /opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b

Starting icecast2
Detaching from the console
Groupid cambiato a 200.
ID utente modificato a 200.

Il server è ora in esecuzione come utente icecast e registri saranno prodotta sotto /var/log/icecast:

# ls /var/log/icecast/
  access.log  error.log  playlist.log

Verifica che sia davvero in esecuzione:

# pgrep -fl icecast
  4434 /opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b

Anche il server icecast dovrebbe essere raggiungibile tramite webgui sotto il nome host specificato e la porta, ad esempio http://MyHost/IP:8000 /, quando avete installato una o più stazioni verranno visualizzati. L’utente per la webgui amministrativa è definito nel file icecast sopra – icecast. In questo caso, la password è password.

 

Configurare il client in streaming OGG/Vorbis: ices

Prima è possibile compilare CIEM è necessario la libreria libshout. Prima di scaricarlo:

# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz

Quindi estrarre il file tar e cambiare nella nuova directory:

# tar xf libshout-2.3.1.tar.gz
# cd libshout-2.3.1

Lanciare lo script configure:

# ./configure --prefix=/opt/icecast/latest

E compilare i sorgenti e installare la libreria:

# make 
# Assicurarsi di installare

Ora scaricare il client di CIEM:

# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/ices/ices-2.0.2.tar.bz2

Estrarre il file tar e cambiare nella nuova directory:

# tar xf ices-2.0.2.tar.bz2
# cd ices-2.0.2/

Prima di eseguire lo script configure, esportare la variabile PKG_CONFIG_PATH quindi CIEM sarà in grado di includere la libreria libshout:

# esportazione PKG_CONFIG_PATH = / opt/icecast/ultime/lib/pkgconfig: $PKG_CONFIG_PATH
#. / configure– prefix = / opt/icecast/ultime

Ora compilare i sorgenti e installare i file binari:

# make 
# Assicurarsi di installare

Verifica che il client del CIEM è disponibile:

# ls /opt/icecast/latest/bin/
  icecast*  ices*

Infine configurare il client di CIEM e creare la prima stazione radio OGG/Vorbis:

# cd /opt/icecast/latest/etc /
n # vi ices1.xml

<ices>
   
     <!-- GENERIC -->
     <background>1</background>
     <pidfile>/var/run/icecast/ices1.pid</pidfile>
   
     <!-- LOGGING -->
     <logpath>/var/log/icecast</logpath>
     <logfile>ices1.log</logfile>
     <logsize>2048</logsize>
     <loglevel>3</loglevel>
     <consolelog>0</consolelog>
   
     <!-- STREAM -->
     <stream>
       <metadata>
         <name>RadioStation 1: OGG</name>
         <genre>Varios</genre>
         <description>Test Radio 1</description>
         <url>http://MyHost/IP:8000/</url>
       </metadata>
       <input>
         <param name="type">basic</param>
         <param name="file">/opt/icecast/latest/etc/playlist1.txt</param>
         <param name="random">1</param>
         <param name="once">0</param>
         <param name="restart-after-reread">1</param>
       </input>
       <instance>
         <hostname>MyHost/IP</hostname>
         <port>8000</port>
         <password>password</password>
         <mount>/radiostation1</mount>
       </instance>
     </stream>
   
   </ices>

Il file di configurazione del CIEM è facile come il file di configurazione di icecast. La sezione generica definisce per eseguire CIEM sfondo e dove può essere trovato il file pid.

La sezione registrazione è tutto su registrazione, dove e cosa accedere. La sezione di flusso richiede un po’ più attenzione. Definisce la stessa stazione radio come il nome della stazione, dove il server icecast può essere raggiunto ecc.

La password è la password di origine dal file di configurazione di icecast. Se non si imposta una password qui tutti possono connettersi al server icecast e creare una stazione.

Un’altra cosa: la playlist. La playlist è un file di testo e contiene tutte le canzoni che si desidera riprodurre.

Ogni file OGG/Vorbis all’interno di questo file deve avere il percorso completo, ad esempio:

# cd /opt/icecast/latest/etc /
n # vi playlist1.txt

/music/artist/album/song1.ogg
/music/artist/album/song2.ogg

È possibile creare questo elenco facilmente con find:

# find /music/artist/album/ -name "*.ogg" > /opt/icecast/latest/etc/playlist1.txt

Con il file di configurazione del CIEM e la playlist creata, avviare CIEM come utente icecast:

 # su - icecast -c "/opt/icecast/latest/bin/ices /opt/icecast/latest/etc/ices1.xml"

Ora date un’occhiata nel file di registro:

  # cat /var/log/icecast/ices1.log

[2011-12-16 12:17:05] Aggiornamento dei metadati di segnali/signal_usr1_handler INFO richiesto
[2011-12-16 12:17:05] INFO playlist-basic/playlist_basic_get_next_filename caricamento playlist dal file “/ opt/icecast/latest/etc/playlist1.txt”
[2011-12-16 12:17:05] INFO playlist-builtin/playlist_read attualmente in riproduzione “/ music/artist/album/song2.ogg”
[2011-12-16 12:17:05] INFO flusso/ices_instance_stream connesso al server: MyHost / IP:8000 / radiostation1

Come si può vedere che la prima stazione radio è pronto e disponibile sotto http://MyHost/IP:8000/radiostation1

Ora tenta di connettersi al server con un client audio in streaming e ascoltare la radio.

Per ogni stazione radio si desidera fornire che è necessario creare un file di configurazione singolo CIEM con propria playlist ecc. Es. è possibile creare una stazione radio separata per la musica Rock e una stazione radio separata per la musica Pop.

 

Che istituisce il MP3 streaming client: icegenerator

Per lo streaming di file MP3 è necessario un client streaming come icegenerator. Prima è possibile compilare icegenerator è necessario installare prima libshout.

# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz

Quindi estrarre il file tar e cambiare nella nuova directory:

# tar xf libshout-2.3.1.tar.gz
# cd libshout-2.3.1

Lanciare lo script configure:

  # ./configure --prefix=/opt/icecast/latest

E compilare i sorgenti e installare la libreria:

# make 
# Assicurarsi di installare

Compilare icegenerator scaricare il pacchetto sorgente da http://sourceforge.net/projects/icegenerator/ e memorizzarlo nella directory src. Poi entra nella directory src ed estrarre la sorgente:

# cd /usr/src/icecast
# wget http://netcologne.dl.sourceforge.net/project/icegenerator/icegenerator/0.5.5-pre2/icegenerator-0.5.5-pre2.tar.gz
# tar xfz icegenerator-0.5.5-pre2.tar.gz
# cd icegenerator-0.5.5-pre2

Ora lanciare lo script configure (il -prefisso opzione verrà ignorata, basta eseguire lo script di configurazione senza il -prefissoopzione):

# ./configure

E compilare i sorgenti e installare i file binari:

# make 
# Assicurarsi di installare

Verificare che icegenerator è disponibile:

  # ls -lah /usr/local/bin/ice*
  -rwxr-xr-x 1 root root 55K 2011-12-16 12:41 /usr/local/bin/icegenerator*

Ora configurare icegenerator e creare la prima stazione radio MP3:

# cd /usr/local/etc.
n # vi icegen1.cfg

IP=192.168.1.100
PORT=8000
SERVER=2
MOUNT=/radiostation2
PASSWORD=password
FORMAT=1
MP3PATH=m3u:/usr/local/etc/playlist2.m3u
LOOP=1
SHUFFLE=1
NAME=RadioStation 2: MP3
DESCRIPTION=Test Radio
GENRE=Varios
URL=http://MyHost/IP:8000/
LOG=2
LOGPATH=/var/log/icecast/icegen1.log
BITRATE=48000
SOURCE=source

Il file di configurazione è un po’ più complicato rispetto al file di configurazione del CIEM. In un primo momento è possibile definire l’IP e la porta per il server Icecast. L’opzione SERVER è per il protocollo icy o http, qui è http. Monte e la PASSWORD sono gli stessi come la stazione OGG/Vorbis, dove per raggiungere la stazione stessa (http://MyHost/IP:8000/radiostation2) e la modalità di autenticazione. L’opzione di formato è per entrambi lo streaming MP3 (1) o OGG/Vorbis (0). LOOP e SHUFFLE per la playlist e randomizzato plaing in ciclo. NOME, descrizione e genere descriverà la radio. MP3PATH definisce quali file di flusso, in questo caso tutto da una playlist compatibile m3u (creata successivamente). URL indica dove raggiungere il server di streaming o qualsiasi altro indirizzo. Questo indirizzo verrà visualizzato forse dal vostro lettore. Specificare LOG e LOGPATH per la registrazione. Il BITRATE definisce la qualità di streaming…

# vi /usr/local/etc/playlist2.m3u
/music/artist/album/song1.mp3
/music/artist/album/song2.mp3
# find /music/artist/album/ -name "*.mp3" > /usr/local/etc/playlist2.m3u
# su - icecast -c "export LD_LIBRARY_PATH=/opt/icecast/latest/lib:$LD_LIBRARY_PATH; /usr/local/bin/icegenerator -f /usr/local/etc/icegen1.cfg"
# pgrep -fl icegen
31255 icegenerator -f /usr/local/etc/icegen1.cfg
# cat /var/log/icecast/icegen1.log
Fri Dec 16 13:44:38 2011: Connected to stream serverFri Dec 16 13:44:38 2011: Now playing song1.mp3Fri Dec 16 13:48:41 2011: Wait for all child process to terminate......

Come si può vedere che la seconda stazione radio è pronto e disponibile sotto http://MyHost/IP:8000/radiostation2

Ora tenta di connettersi al server con un client audio in streaming e ascoltare la radio.

 

Icecast, libshout e CIEM: http://www.icecast.org
Descrizione per icegenerator: http://www.becrux.com/index.php?page=projects&name=icegenerator#Configuration

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp