Booting my Mind!!

Ernie Rojas Villoslado

Archivo para la categoría "Python"

Mi Radio con icecast en gentoo. parte I

dejar un comentario »

En la insitiución donde trabajo se viene requiriendo configurar un servidor de streaming para tener una radio en linea, q será alimentado desde una tarjeta de sonido al cual estará conectado el equipo de radio, una arquitectura interesante, por lo que me puse  a investigar y como se dice una imagen vale mas q mil palabras, me encontre con esta imagen que resume todo lo q deseo hacer:

Imagen: http://federicosayd.wordpress.com/2007/10/12/una-radio-en-linux/

Bueno yo ya habia trabajado con shoutcast, el problema es que nunca le encontre un cliente para que alimente al servidor y que corra en linux ademas que no soporta el formato ogg. Por lo que le di una oportunidad a icecast, anteriormente lo habia probado pero tuve problemas para configurarlo, pero esta vez ya me funciona.

En esta parte explicare la configuracion de icecast y de ices, el primero es el servidor y el segundo es el cliente que alimentara a nuestro servidor:

  • Instalamos icecast con los USE flags siguientes: “speex ssl theora yp”

# emerge -va icecast

  • Configuramos icecast en el archivo /etc/icecast2/icecast.xml

<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>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>123</source-password>
<relay-password>1234</relay-password>
<admin-user>admin</admin-user>
<admin-password>12345</admin-password>
</authentication>
<hostname>localhost</hostname>

<listen-socket>
<port>8000</port>
</listen-socket>

<fileserve>1</fileserve>

<paths>
<basedir>/usr/share/icecast</basedir>

<logdir>/var/log/icecast</logdir>
<webroot>/usr/share/icecast/web</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<alias source=”/” dest=”/status.xsl”/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>4</loglevel>
<logsize>10000</logsize>
</logging>

<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>nogroup</group>
</changeowner>
</security>
</icecast>

  • Instalamos ices:

# emerge -va ices

  • Configuramos el archivo: /etc/ices2/ices.xml, si bien es cierto este archivo no se crea por defecto, hacemos una copia del archivo ices-playlist.xml:

# cp ices-playlist.xml ices.xml

<?xml version=”1.0″?>
<ices>
<background>0</background>
<logpath>/var/log/ices</logpath>
<logfile>ices.log</logfile>
<loglevel>4</loglevel>
<consolelog>0</consolelog>

<stream>
<metadata>
<name>Radio Santo Domingo</name>
<genre>Musica Variada</genre>
<description>Aun por definir</description>
</metadata>

<input>
<module>playlist</module>
<param name=”type”>basic</param>
<param name=”file”>/etc/ices2/listado.txt</param>
<param name=”random”>0</param>
<param name=”restart-after-reread”>0</param>
<param name=”once”>0</param>
</input>
<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>123</password>
<mount>/playlist.ogg</mount>
<reconnectdelay>2</reconnectdelay>
<reconnectattempts>5</reconnectattempts>
<maxqueuelength>80</maxqueuelength>
<encode>
<nominal-bitrate>64000</nominal-bitrate>
<samplerate>44100</samplerate>
<channels>2</channels>
</encode>
</instance>
</stream>
</ices>

  • Creamos el directorio /playlist.ogg y agregamos los archivos ogg que queremos:

# mkdir /playlist.ogg

  • Creamos el listado de los ogg que vamos  a reproducir:

# find /playlist.ogg/ -iname “*.ogg” > /etc/ices2/listado.txt

  • Iniciamos los servicios:

# /etc/init.d/icecast start

# /etc/init.d/ices start

  • Para que arranquen a la hora q inicia nuestro sistema

# rc-update add icecast default

# rc-update add ices default

Para reproducir nuestro streaming desde un navegador vamos a:

http://ip_server:8000/playlist.ogg.m3u

o sino en http://ip_server:8000 nos aparecera un  link hacia ese archivo que lo reproduciremos en mi caso con amarok.

Escrito por Ernie Rojas Villoslado

diciembre 5, 2008 a 5:52 pm

Escrito en GNU/Linux, Negocios, Python

Etiquetado con , , ,

NFS NetBSD

dejar un comentario »

El protocolo NFS (Network File System) nos permite compartir archivos en red con otros hosts  unix. En este caso será el servidor el que provee los recursos a compartir y los clientes accederán a estos recursos compartidos.

Un Servidor NFS lo podremos usar para almacenar backups de nuestros servidores o incluso usarlo como sistemas de archivos remotos para clientes Unix.

En NetBSD debemos tomar los siguientes puntos:

  • Servidor:

Activar los servicios sgtes en /etc/rc.conf

rpcbind=yes
mountd=yes
nfs_server=yes
lockd=yes
statd=yes

  • Cliente

Activar los siguientes servicios en el archivo /etc/rc.conf

rpcbind=yes
nfs_client=yes
lockd=yes
statd=yes

Y logicamente un mismo host puede ser Servidor y cliente a la vez.

Para configurar nfs solo debemos tener en cuenta el archivo /etc/exports, si queremos compartir el directorio /data en la red 192.168.200.0 haremos lo siguiente.

/data   -alldirs -maproot=root -network 192.168.200.0 -mask 255.255.255.0

Para montarlo desde un cliente usaremos el comando mount:

mount 192.168.200.7:/data /mnt/nfs/

Si queremos que nuestro directorio compartido sea montado automaticamente desde un cliente, deberemos de agregar la siguiente linea en el archivo /etc/fstab en un cliente unix:

192.168.200.7:/data   /mnt/nfs   nfs   rw

Y siguiendo este esquema podremos ir compartiendo los archivos que deseemos.

Escrito por Ernie Rojas Villoslado

septiembre 22, 2008 a 3:39 pm

Escrito en Negocios, Python

Libro de Python

dejar un comentario »

La gente de Mundo Geek ha publicado un libro sobre programación en Python bajo la licencia Creative Commons, por lo q pueden descargarlo en formato pdf o leerlo online.

Aqui les dejo el enlace

Escrito por Ernie Rojas Villoslado

mayo 12, 2008 a 4:01 am

Escrito en Python

Seguir

Get every new post delivered to your Inbox.