Вы находитесь на странице: 1из 7

INSTALAR Y CONFIGURAR ICECAST E ICES EN OPENSUSE 11.

3
por Miguel Alejo
El autor autoriza a compartir, modificar y adaptar este material, sin fines de lucro.
Este tutorial explica como instalar y configurar Icecast e Ice, programas que utilizados
conjuntamente permiten crear una emisora de radio online en tu computador. El tutorial est
destinado para usuarios sin conocimientos avanzados y tratar de dar las explicaciones con la mayor
claridad que me sea posible. Lo prob en opensuse 11.3 con escritorio Gnome.
1.
Instalar los paquetes icecast y ice desde aadir/quitar programas.
2.
Una vez instalados debemos configurar el archivo icecast.xml . Para ello abrimos la consola
o tambin llamado Terminal de gnome. Una vez abierto el terminal colocas el comando su, para
iniciar como usuario root y poder modificar los archivos. Anotas su, y luego anotas tu contrasea.
su
3.
Luego para modificar el archivo icecast. xml debes abrirlo con el programa gedit, anotando
la ruta del archivo. Anotas en la consola abierta en el paso 2
gedit /etc/icecast.xml
4.
Se abrir el archivo icecast.xml Lelo con tranquilidad. Para que funcione debes editar las
contraseas y debes colocar tu ip pblica, si quieres que la radio se escuche fuera de tu red, o tu ip
privada, si solo quieres escucharla en tu red privada. Luego de que introduces los cambios, guardas
y cierras gedit. El documento se muestra a continuacin:
<icecast>
<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>
<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>
<!-- set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->
<!-- 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>
-->
<!-- 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 may have multiple <listener> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>
<!-<listen-socket>
<port>8001</port>
</listen-socket>
-->
<!--<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>-->
<!-- setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 -->
<!--<relays-on-demand>1</relays-on-demand>-->
<!-<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>
-->
<!-- 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>
-->
<fileserve>1</fileserve>
<paths>
<!-- basedir is only used if chroot is enabled -->
<basedir>/usr/share/icecast</basedir>
<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>/var/log/icecast</logdir>
<webroot>/usr/share/icecast/web</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<!-- <pidfile>/usr/share/icecast/icecast.pid</pidfile> -->
<!-- Aliases: treat requests for 'source' path as being for 'dest' path
May be made specific to a port or bound address using the "port"
and "bind-address" attributes.
-->
<!-<alias source="/foo" dest="/bar"/>
-->
<!-- Aliases: can also be used for simple redirections as well,
this example will redirect all requests for http://server:port/ to
the status page
-->
<alias source="/" dest="/status.xsl"/>

</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<!-- <playlistlog>playlist.log</playlistlog> -->
<loglevel>3</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>
<security>
<chroot>0</chroot>
<!-Note from the packager:
For security reasons you should not run the icecast server as root.
SUSE adds a icecast user and group for this purpose.
If you change the user/group here you need to change the ownership
of the /var/log/icecast aswell
-->
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>

5.
Luego debes encender icecast. Para ello debes introducir, en el terminal iniciado como root,
el siguiente comando. La prxima vez que apagues tu computador debers encender icecast otra
vez con este comando antes de transmitir.
icecast -c /etc/icecast.xml
6.
Verifica si funciona. Para ello anota en tu navegador http://tudireccionip:8000 (Ejemplo:
http://127.0.0.1:8000/) Si aparece la pgina Icescast2 Status, la primera parte te ha salido bien.
7.
Ahora debemos configurar Ices, el cliente fuente, que es el otro programa que instalamos al
inicio. Ices trae varios archivos de ejemplo, nosotros usaremos uno que nos permitir usar una lista
de reproduccin en segundo plano. As mientras tu radio funciona, puedes navegar por internet u
otra actividad sin or en tu computador la msica que transmites. Editamos entonces con gedit el
archivo ices-playlist.xml con el siguiente comando.
gedit /usr/share/doc/packages/ices/ices-playlist.xml
8.

Se abrir el archivo ices-playlist.xml . Lelo con tranquilidad. El archivo se muestra a

continuacin:
<ices>
<!-- run in background -->
<background>0</background>
<!-- where logs, etc go. -->
<logpath>/var/log/ices</logpath>
<logfile>ices.log</logfile>
<!-- 1=error,2=warn,3=info,4=debug -->
<loglevel>4</loglevel>
<!-- set this to 1 to log to the console instead of to the file above -->
<consolelog>0</consolelog>
<!-- optional filename to write process id to -->
<!-- <pidfile>/home/ices/ices.pid</pidfile> -->
<stream>
<!-- metadata used for stream listing (not currently used) -->
<metadata>
<name>Example stream name</name>
<genre>Example genre</genre>
<description>A short description of your stream</description>
</metadata>
<!-- input module
The module used here is the playlist module - it has
'submodules' for different types of playlist. There are
two currently implemented, 'basic', which is a simple
file-based playlist, and 'script' which invokes a command
to returns a filename to start playing. -->
<input>
<module>playlist</module>
<param name="type">basic</param>
<param name="file">playlist.txt</param>
<!-- random play -->
<param name="random">0</param>
<!-- if the playlist get updated that start at the beginning -->
<param name="restart-after-reread">0</param>
<!-- if set to 1 , plays once through, then exits. -->
<param name="once">0</param>
</input>
<!-- Stream instance
You may have one or more instances here. This allows you to
send the same input data to one or more servers (or to different
mountpoints on the same server). Each of them can have different
parameters. This is primarily useful for a) relaying to multiple
independent servers, and b) encoding/reencoding to multiple
bitrates.
If one instance fails (for example, the associated server goes
down, etc), the others will continue to function correctly.
This example defines two instances as two mountpoints on the
same server. -->
<instance>
<!-- Server details:
You define hostname and port for the server here, along with
the source password and mountpoint. -->

<hostname>localhost</hostname>
<port>8000</port>
<password>hackme</password>
<mount>/example1.ogg</mount>
<!-- Reconnect parameters:
When something goes wrong (e.g. the server crashes, or the
network drops) and ices disconnects from the server, these
control how often it tries to reconnect, and how many times
it tries to reconnect. Delay is in seconds.
If you set reconnectattempts to -1, it will continue
indefinately. Suggest setting reconnectdelay to a large value
if you do this.
-->
<reconnectdelay>2</reconnectdelay>
<reconnectattempts>5</reconnectattempts>
<!-- maxqueuelength:
This describes how long the internal data queues may be. This
basically lets you control how much data gets buffered before
ices decides it can't send to the server fast enough, and
either shuts down or flushes the queue (dropping the data)
and continues.
For advanced users only.
-->
<maxqueuelength>80</maxqueuelength>
<!-- Live encoding/reencoding:
Currrently, the parameters given here for encoding MUST
match the input data for channels and sample rate. That
restriction will be relaxed in the future.
-->
<encode>
<nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
<samplerate>44100</samplerate>
<channels>2</channels>
</encode>
</instance>
</stream>
</ices>

9.
Una vez configurado, no olvides guardar el documento. Ahora crearemos un documento
llamado playlist.txt que ser nuestra lista de reproduccin. El documento lo crearemos con gedit y
debes guardarlo en una carpeta accesible, recomiendo la carpeta documentos. Esto lo hacemos con
el siguiente comando
gedit /home/usuario/Documentos/playlist.txt
El documento debe tener la siguiente estructura.
[...]
/home/tu_usuario/Msica/mi_msica.ogg
/home/tu_usuario/Msica/mi_msica.ogg
[...]

En cada lnea escribes la ubicacin. En el ejemplo se presupone que la pieza musical que
quieres reproducir est dentro de la carpeta Msica de openSuse. Puedes agregar cuantas

lneas quieras,una por tema,y la msica se reproducir desde arriba hacia abajo. Luego que
agregaste tu msica, guardas el documento en la carpeta Documentos. Y lista la etapa de
configuracin
11.
Ahora debes ejecutar con ices el documento llamado ices-playlist.xml que configuramos
previamente. Utiliza el siguiente comando en la consola como root (con su) para iniciar la
transmisin:
ices /usr/share/doc/packages/ices/ices-playlist.xml
12.
Si todo a salido bien tu radio se debera escuchar en la direccin ip que ingresaste y el puerto
8.000. Anota en tu navegador http://tu_ip:8000 (Ejemplo: http://127.0.0.1:8000/). Vers una pgina,
debes hacer clic en el enlace M3U.
Recuerda: luego de apagar tu computador debers reiniciar tu radio. Utiliza los siguientes comandos
como root, uno a la vez, si es necesario abre otra consola:
icecast -c /etc/icecast.xml
ices /usr/share/doc/packages/ices/ices-playlist.xml
Espero que haya sido de utilidad. Si tienes algunos problemas, revisa el archivo ices.log, que
informa sobre posibles fallos. Postea un comentario, adjuntando el archivo ices.log, cuando no
puedas resolver un problema. Sugerencias: cada vez que utilices la consola hazlo como root, para
evitar problemas de permisos sobre archivos. No cierres la consola donde iniciaste el comando
icecast -c .Fjate bien en las rutas hacia los archivos, y adptalas a tu sistema cuando sea necesario.
Revisa otros tutoriales para complementar aspectos que puedan omitirse en este.

Вам также может понравиться