Últimos Comentarios

eliasC (Programando en Ga…): Hola, Sería bueno que t…
Jesus Aguilar (Servidor de strea…): Streaming de video y voy …
vitronic (Servidor de strea…): ¿Me hablas de streaming d…
Jesus Aguilar (Servidor de strea…): Quisiera ver el mundial d…
Guillermo S. NOGU… (Servidor de strea…): Voy a seguir tu documenta…
PICCORO (El costo de La Li…): mira sera que puedes cont…
tanathosPHI (El costo de La Li…): Hermano me parece que con…
Omar Botta (El costo de La Li…): Vitronic, aunque aún no l…
AngelDeath (El costo de La Li…): Son las reflexiones que c…
Alexis (Mis Cosas 2009-06…): Muy buenas Victor :) U…

Históricos

01 May - 31 May 2009
01 Jun - 30 Jun 2009
01 Jul - 31 Jul 2009
01 Mar - 31 Mar 2010

Cosas

Powered by Pivot - 1.40.7: 'Dreadwind' 
XML: RSS Feed 
XML: Atom Feed 

27 05 09 - 06:07 Servidor de streaming en GNU/Linux

Introducción

Hace un tiempo que estoy tratando de documentar mis conocimientos en informática y cada vez que  me toca realizar una tarea que llevo rato sin hacer me toca buscar dentro de los cuatro discos que tengo en mi Ordenador pero tomando en cuenta que el mas pequeño que poseo es de 80 Gb y  que no me caracterizo por ser ordenado  imaginen lo que me tardo en encontrar lo que necesito, por eso me decidí a comenzar a crear estos pequeños manuales de configuración de servidores y servicios que en un principio servirán de referencia para mi pero cualquier otro que pueda servirse de ellos pues que se sienta libre de hacerlo además si estas leyendo esto y te esta sirviendo de ayuda me sentiría honrado de saberlo así que puedes escribirme a este mail venenux@venenux.org.

Requisitos

Bueno el servidor lo monte en un Debian GNU/Linux Etch y lo hice minimalista, es decir dedicado exclusivamente al streaming sin entorno gráfico ni ninguna función que pudiera afectar el rendimiento de mi radio en linea, aquí una lista de lo que use :

  1. Un Ordenador clonado que conseguí de segunda mano Pentiun III de 1 Ghz .
  2. 256 Mb de RAM .
  3. Tarjeta de red compatible, yo use una de la serie 3Com pero en general el 98% esta soportado así que también vale .
  4. Tarjeta de Sonido compatible, lo mismo de arriba.
  5. Disco Duro de 1 Gb o superior .
  6. unos buenos ventiladores para el Disco y el Ordenador ya que lo monte con la premisa de que no iba ser apagado nunca !.
  7. Debian GNU/Linux Etch
  8. Icecast2 como servidor streaming .
  9. Darkice como servidor de audio para Icecast2.

Procedimiento

No voy a explicar aquí como montar un Debian GNU/Linux, bastante información existe en la red sobre ese tema pero si les diré que solo monte el sistema base luego instale alsa-base y alsa-tools para detectar tu hardware de sonido , todo me ocupo unos 250 Mb en el disco, ¡bastante poco verdad ! luego de terminar solo conectaremos el servidor a Internet y listo ya tenemos nuestra radio en linea.


Instalando

Ok, ya con la base debian y la detección de sonido asegurado por el alsa, estamos hechos, solo nos quedara instalar el server de streaming propiamente dicho y un cliente que hará de puente entre el server y la tarjeta de sonido, para esto debemos añadir a unos mirrors a nuestro /etc/apt/sources.list con esto bastara.

echo “deb http://ftp.de.debian.org/debian etch main contrib” >> /etc/apt/sources.list
Yo uso el repo de Alemania porque lo considero muy rápido y se actualiza mucho mas rápido que el gringo pero sientete libre de usar cualquiera ya que todos son espejos .
Ahora actualizamos.
apt-get update
Entonces ya con el entorno actualizado instalamos los programas que necesitaremos.
apt-get install icecast2 darkice

Con esto ya tenemos nuestra emisora en linea funcionando pero tenemos que configurar todo y poner a punto nuestra estación, antes de aprender como hacer esto veamos algunas consideraciones.

Consideraciones
  1. Con lo aquí expuesto ya tenemos el servidor trabajando, ¡claro aun no lo sabes!
  2.  la codificación streaming hasta este punto es en formato OGG vorbis, por lo que si alguna persona con Microsoft Guindows trata de escuchar nuestra trasmisión no lo podrá hacer de manera fácil ya que en estos días (2009) el OGG no es muy extendido en ese sistema malevolente, por problemas políticos mas que prácticos esa seria la manera mas ética de hacer la trasmisión, pero teniendo en cuenta que en el mundo del GNU tenemos a lame que es un encoder libre de MP3 si compilamos Darkice con soporte a lame podríamos hacer nuestra trasmisión en formato MP3 y de esa forma el 100% de todos los escuchas podrán recibir nuestra emisión sin ningún problema.
  3. El OGG es un formato de compresión de audio libre y mejor que mp3 (esto según mi punto de vista) lamentablemente hoy en día el estándar de facto es el MP3 por lo que la mayoría de los reproductores de audio soportan MP3 y no OGG (que malo).
  4. El uso por parte de nuestra emisora de MP3 como formato de encoding no representa ninguna violación de licencias ya que no usamos ningún software privativo ``usamos lame que esta licenciado con la GPL''

Icecast2

Lo primero que configuraremos sera el servidor de streaming, es decir Icecast2 el archivo de configuración de este esta en el directorio /etc/icecast2/ si listamos el contenido de ese directorio nos muestra los archivos, veamos

root@venenux-desarrollo:~# ls /etc/icecast2/
admin  icecast.xml  web
root@venenux-desarrollo:~#

el archivo mas importante es  icecast.xml  y es el que modificaremos según nuestra preferencia veamos.

<!-- editamos el archivo de configuración /etc/icecast2/icecast.xml y lo dejamos asi -->
<icecast>
<limits>
<clients>50</clients> <!-- con esto limitamos el maximo de clientes -->
<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>mi-contraseña-super-arrecha</source-password> <!-- Aquí la clave de Darkice -->
<relay-password>mi-contraseña-super-arrecha</relay-password> <!-- Aquí la clave del relay -->
<admin-user>vitronic</admin-user> <!-- Aquí el nombre del administrador -->
<admin-password>mi-contraseña-super-arrecha</admin-password> <!-- Aquí la clave de administrador -->
</authentication>
<hostname>localhost</hostname>
<listen-socket>
<port>8000</port> <!-- Aquí la el puerto por donde se hara la trasmición -->
</listen-socket>
<fileserve>1</fileserve>
<paths>
<basedir>/usr/share/icecast2</basedir>
<logdir>/var/log/icecast2</logdir>
<webroot>/usr/share/icecast2/web</webroot>
<adminroot>/usr/share/icecast2/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>
</security>
</icecast> 

Darkice

Darkice como ya lo dije solo sera el servidor de audio para el Icecast2 esto quiere decir que este programita es muy importante ya que es el encargado de comprimir la salida de audio a un formato que sea manejable por el servidor de streaming en este caso he compilado un Darkice que soporta el formato MP3 para mayor compatibilidad con los reproductores del proletario, cabe destacar que si tu audiencia es puramente GNUsera no tendrás problemas con instalar el darkice de debian que solo soporta el formato OGG vorbis ya que todos los reproductores de audio de GNU/Linux soportan por defecto este excelente formato libre de audio la configuración de darkice representara un poquito mas de trabajo ya que tenemos que crear varios archivos pero como con todo lo demás en esta guía, sera fácil, te recomiendo el popular copy-paste para ahorrar tiempo, veamos como se come esto:

Lo primero sera que tipees los siguientes comandos siguiendo el orden establecido: 

 touch /etc/init.d/darkice
chmod 777 /etc/init.d/darkice
echo “darkice -c /etc/darkice.cfg &” >> /etc/init.d/darkice
update-rc.d darkice defaults 21

Con esto ya le decimos al sistema que cada vez que arranque se inicie el Darkice después de Icecast2 pero aun nos hace falta la parte la importante que es la configuración para que se pueda comunicar con Icecast2 ``enviándole audio para que este a su vez lo trasmita'' debemos crear un archivo en el directorio /etc/ que llevara por nombre darkice.cfg ,

touch /etc/darkice.cfg

veamos como debe quedar:

#/etc/darkice.cfg archivo de configuracion de darkice
# this section describes general aspects of the live streaming session
[general]
duration = 0 # duration of encoding, in seconds. 0 means forever
bufferSecs = 30 # size of internal slip buffer, in seconds
# reconnect = yes
# this section describes the audio input that will be streamed
[input]
device = hw:0,0 # ALSA DSP soundcard device for the audio input
sampleRate = 22050 # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample = 16 # bits per sample. try 16
channel = 2 # channels. 1 = mono, 2 = stereo
# this section describes a streaming connection to an IceCast2 server
# there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7]
# these can be mixed with [icecast-x] and [shoutcast-x] sections
[icecast2-0]
bitrateMode = cbr # average bit rate
format = mp3 # format of the stream: ogg vorbis
bitrate = 64 # bitrate of the stream sent to the server
quality = 0.8
server = localhost # host name of the server
port = 8000 # port of the IceCast2 server, usually 8000
password = mi-contraseña-super-arrecha # la cotraseña de source de IceCast2 server
mountPoint = streaming-venenux # Punto de montaje del audio
name = www.venenux.org
description = Musica y buena programacion # description of the stream
url = http://www.venenux.org # URL related to the stream
genre = Desde lo viejo hasta lo Nuevo # genre of the stream
public = yes # advertise this stream?
lowpass = -1
highpass = -1 

Finalizando

Para finalizar con reiniciar los servicios bastaría pero si es mucho rollo también puedes reinar el Ordenador, de esa manera tendrás todos los servicios trabajando, 

¿y como verifico?

Ok esta parte es sencilla con alsamixer configura los valores de tu tarjeta de sonido, ajusta la entrada de audio y conecta a ella alguna fuente de sonido, para configurar y administrar el Icecast2 bastaría con revisar la dirección IP del servidor en nuestro navegador preferido te encontraras con una interfas web bien pulida, ejemplo: localhost:8000    si te fijas el puerto de escucha es el 8000 , para escuchar la emisión solo completa la direccion con el punto de montaje, es decir, si tu punto de montaje fue , como en mi caso (ver la configuración de Darkice) streaming-venenux entonces la radio saldrá por la dirección localhost:8000/streaming-venenux, bueno te la pongo mas fácil! en cualquier reproductor de audio que soporte streaming (hoy en día la mayoría) colocas esa dirección si eres como yo y usa VENENUX o en su defecto cualquier distro GNU y tienes instalado el poderoso MPLAYER bastaría con tipear esto

mplayer localhost:8000/streaming-venenux 

y listo por hay escuchas todo lo que le estés metiendo a la tarjeta de audio por el INPUT.

Notas

  1. Se que encontraras errores ortograficos no tienes que hecermelo saber por mail (como veras estoy enterado).
  2. Para trasmitir en MP3 tendras que compilar el Darkice con soporte a lame o buscarlo en mi sitio personal [http://vitronic.venenux.org||vitronic] que ya esta compilad para tal fin, de lo contrario solo trasmitiras en formato OGG que al final es la misma cosa solo que el MP3 podra ser decodificado por la mayoria de los reproductores.
  3. VALGAN TODAS LAS REDUNDANCIAS
  4. Este totorial o manual es distribuido con la esperanza de que sea Util, pero SIN NINGUNA GARANTIA; incluso sin la garantia implicita de MERCANTILISMO o ADECUACION A UN PROPOSITO PARTICULAR.

Used tags: , , , ,

siete retroenlaces

Retroenlace:

Please enable javascript to generate a trackback url

cinco comentarios

muy completo el articulo vitronic , terminalo pronto por favor
Jose (Email) - 27 05 09 - 06:55

Voy a seguir tu documentación, te felicito por la iniciativa, seguramente estaremos compartiendo experiencias luego de que logre implementar mi servidor. Saludos desde Posadas-Misiones-Argentina.
Guillermo S. NOGUERA (Email) - 12 02 10 - 09:21

Quisiera ver el mundial de futbol desde internet, y trasmitirlo a mi red local en el trabajo para que lo vean solo algunos usuarios. El servidor de streaming lo quiero instalar bajo Debian Lenny y los usuarios van ha estar en Windows, esto debido a que no todas la maquina estan migradas a Linux, podrias darme una orientacion.

Saludos desde Venezuela – Puerto Ordaz
Jesus Aguilar (Email) - 10 05 10 - 07:36

¿Me hablas de streaming de Vídeo o simplemente streaming de voz?
claro que puedo ayudar hermano con mucho gusto :-D ¿sabias que estamos cerca ?
soy de Upata
vitronic (Email) (URL) - 10 05 10 - 11:27

Streaming de video y voy a pasar por un proxy. Quiero bajar el video en linea y luego retrasmitirlo a la red local.

De antemano gracias por tu ayuda panita.
Jesus Aguilar (Email) - 10 05 10 - 12:00

¿Quieres dejarme un comentario?

  
¿Recordar información personal?

Emoticonos / Textile

suma 54 mas 54 y responde en el recuadro
 

  (Registrar su nombre de usuario / Validarse)

Notificar:
Hide email:

Letra pequeña: Todas las etiquetas html excepto