Booting my Mind!!

Ernie Rojas Villoslado

Archivo para la categoría "Python"

Mi Radio con icecast en gentoo. parte I

sin comentarios

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

sin comentarios

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

sin comentarios

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