Cómo emitir audio en Windows XP con Shoutcast
Publicado por tanaceto en Septiembre 28, 2007
1. Requisitos
2. Configurar los programas
3. Emitiendo
4. Routers
5. Número de usuarios
6. Emisión distribuida
1. Requisitos:
– un ordenador con tarjeta de sonido.
– una conexión a Internet (mínimo recomendado: módem a 56kbps).
– un programa servidor que “emita” los datos de audio digital hacia cada uno de los oyentes.
– un programa que envíe los datos de audio digitalizados y comprimidos hacia el programa servidor, para que éste los envíe a los clientes.
Concretamente, y centrándonos en el sistema operativo MS Windows, vamos a usar las siguientes aplicaciones:
– Servidor Shoutcast DNAS (Distributed Network Audio Server): http://www.shoutcast.com/download/license.phtml
Existen versiones para varios sistemas operativos. A nosotros nos interesa la versión para win32.
– Reproductor de audio Winamp: http://www.winamp.com.
Hay una versión gratuita que nos vale perfectamente. Actualmente la versión recomendada por Shoutcast (el servidor funciona desde la 2.05, pero es recomendable usar siempre la última versión, pues con ella se habrán solucionado problemas de estabilidad y seguridad entre otros, además de añadir posibles nuevas funcionalidades). La versión 3 del programa no nos vale y Winamp nunca sacó una versión 4 de su reproductor.
Personalmente recomiendo la versión 2.95 (es muy estable y ligera) o la última revisión de la rama 5.x (en este tutorial he usado la 5.13). Si vamos a tener una emisora seria con muchos oyentes funcionando las 24h del día, recomiendo emitir desde un sistema operativo GNU/linux mediante icecast, pero esto sería cuestión de tratarlo en un tutorial específico.
–PluginDSP(DigitalSoundProcessing)paraWinamp5.x:
http://www.shoutcast.com/download/broadcast.phtml#plugdownload
(también funciona en Winamp 2.05 y posteriores). Es el programa que permite la comunicación entre el reproductor de audio y el servidor Shoutcast.
2. Configurar los programas:
Una vez instalado todo, ejecutamos el servidor Shoutcast, que nos habrá dejado un acceso directo en nuestro menú Inicio (dentro de Programas/Shoutcast DNAS). El servidor nos indicará de su actividad con un icono en la barra de tareas desde el que podremos comprobar su estado y el número de oyentes, así como acceder a la ventana de configuración.
Para cerrar el proceso del servidor iremos a la barra de menús del programa (Kill server). También podemos acceder al archivo de registro (Edit log) y al de configuración (Edit config). Éste último es el que que más nos interesa ahora, pues en él indicaremos al servidor cómo debe comportarse: el número máximo de usuarios al que va a permitir conexión simultánea, el puerto por el que va a atender las peticiones de los clientes y el password que va a pedir al programa emisor de audio (Winamp en nuestro caso) para confirmar la procedencia legítima de la emisión.
El password debemos cambiarlo antes de ponernos a emitir por primera vez, pues es la contraseña que va a permitir al programa de audio conectarse a nuestro servidor, y nosotros queremos (al menos de momento) permitir únicamente la emisión de nuestro reproductor de audio Winamp. Para ello vamos a la línea que empieza por “password=changeme” y cambiamos “changeme” por el password que queramos poner.
El resto del archivo si quieres puedes estudiarlo tranquilamente, pero con que indiques un password personal y pongas un número máximo de usuarios acorde con tu ancho de banda y la calidad de emisión puedes empezar a emitir sin problemas. (Sobre este último aspecto hablaremos más adelante). Ya tenemos el servidor configurado y funcionando. Ahora arrancamos el Winamp y vamos a Options/Preferences/Plugins/DSP/effect y marcamos la entrada que pone “Nullsoft SHOUTcast Source DSP…”. (Para acceder a las preferencias tenemos que “clickear” en el botón de la esquina superior izquierda del programa. También podemos hacerlo con la combinación de teclas Ctrl+P.)
Al seleccionar el plugin, aparecerá su ventana de configuración
Ahora nos interesa la segunda pestaña (sección Output), donde tenemos las siguientes casillas:
- Address: es la dirección IP del ordenador donde se encuentra el servidor. Como en nuestro caso es el mismo ordenador donde está el plugin DSP, nos vale la opción por defecto: localhost o bien 127.0.0.1 (que es nuestra dirección IP local, también conocida como IP de loopback).
– Port: es el puerto en el que está escuchando el servidor. Si no hemos cambiado el valor en el archivo de configuración del servidor, lo dejamos como está (8000).
– Password: no tiene mucha ciencia: debemos poner el password que hemos cambiado anteriormente en el archivo de configuración del servidor.
– Yellowpages: aquí podemos hacer pública la dirección de nuestro servidor en la web de Shoutcast, a la que también se puede acceder directamente desde la biblioteca de contenidos de Winamp (viene activada por defecto).
La siguiente pestaña que nos interesa (sección Encoder:
Podemos elegir el tipo de codificador de audio a usar y la compresión que llevará el mismo. Por defecto tenemos MP3, que es una buena opción. La calidad está expresada en kbps (kilobits por segundo): representa la cantidad de datos que transmitiremos por segundo a cada cliente. Cuanto mayor sea este valor, mayor será la calidad del audio; Hz (Herzios): número de muestras por segundo con que se representa la onda sonora de manera digital. Cuanto mayor sea este valor, mayor será la calidad del audio. Stereo/Mono.
La última pestaña que nos interesa (sección Input):
Aquí es donde seleccionamos el dispositivo que va a enviar el audio al servidor. Tenemos dos opciones:
– Winamp: con esta selección emitiremos todo el audio que winamp reproduzca.
– Soundcard input: al seleccionar esta opción se activa el resto de la ventana de configuración y nos da a elegir entre “Microphone” y “Line input”. La primera opción no tiene más ciencia que la de reproducir toda señal que llegue por la entrada de micro de la tarjeta de audio. La segunda introducirá la señal proveniente de la entrada de línea de la tarjeta.
Para emitir contenidos en diferido (exclusivamente archivos de audio creados con anterioridad) utilizaremos preferentemente Winamp como dispositivo de entrada. Si por el contrario vamos a emitir en directo a través de micro exclusivamente, usaremos la opción “Soundcard Input”.
Echándole un poco de imaginación con las conexiones y jugando con el resto de valores y botones podremos tener algo de control sobre la emisión. De todas formas, para una emisión más controlada, en la que hablamos y ponemos música en directo, convendría contar con una pequeña mesa mezcladora de al menos dos canales (se consiguen baratas en Internet), con la que podemos controlar cómodamente los niveles del micro y de la música independientemente y a tiempo real.
3. Emitiendo:
Suponiendo que tenemos el servidor Shoutcast funcionando y debidamente configurado (como hasta ahora), abrimos de nuevo la pestaña “Output” en el plugin DSP de Winamp y pulsamos el botón “Connect”. Si en el marco que está justo encima del botón (Status) observamos el tiempo de conexión y el número de bytes emitidos, quiere decir que estamos emitiendo correctamente hacia el servidor Shoutcast, que en este caso se encuentra en nuestro propio ordenador. Desde este momento, todo lo que reproduzcamos en Winamp será emitido al servidor en formato MP3 con las cualidades de compresión que hayamos elegido. Si por el contrario obtenemos un mensaje de error o un “reconnecting”, significa que algo hemos configurado mal y revisaremos todos los pasos anteriores a este punto. Ahora sólo nos falta que alguien quiera escuchar nuestra primera emisión. De hecho no será una emisión de verdad hasta que alguien se conecte a nuestro servidor shoutcast, pues hasta ahora sólo estamos emitiendo desde nuestro winamp hasta nuestro servidor, y ambas cosas están en el mismo ordenador.
Para que alguien conecte con nosotros debemos indicarle el protocolo o “lenguaje” que entiende nuestro servidor, así como nuestra dirección IP y el puerto al que conectar con nosotros. Para ello deberán introducir la siguiente dirección en su reproductor de audio: http://0.0.0.0:8000 (donde 0.0.0.0 sería nuestra dirección IP y 8000 el puerto por defecto en el que atiende las peticiones el servidor shoutcast). Aquí cada uno debería poner su propia IP, ya que la del ejemplo no es válida.
4. Routers
Probablemente muchos tengamos ahora un pequeño obstáculo para permitir la conexión a individuos que quieren escucharnos desde Internet. Se trata del router (enrutador) que nos da conexión a la red: un dispositivo parecido físicamente a un módem externo, mediante el cual muchos de nosotros obtenemos la conexión a Internet.
El router es quien mueve los paquetes de datos desde nuestro ordenador hacia Internet y viceversa. Por norma general el router entiende que debe dejar pasar todo el tráfico desde nuestro ordenador hacia Internet, ya que su función es precisamente la de brindarnos acceso a la red de redes. Sin embargo, el tráfico entrante desde Internet es normalmente descartado, a menos que sea tráfico en respuesta a las peticiones originadas desde dentro de la red local. Aparte de comportarse así por motivos de seguridad, lo hace porque no sabe hacia qué ordenador debe dirigir las peticiones entrantes. Para ello debemos indicarle nosotros mismos hacia qué máquina debe dirigir las peticiones de nuestros oyentes.
Si nos conectamos a internet a través de un módem analógico, ADSL o un router configurado en modo monopuesto (para dar acceso a un sólo ordenador), no tendremos ningún problema para que los demás accedan a nuestro servidor shoutcast introduciendo la siguiente dirección en su reproductor de audio: http://nuestradirecciónip:8000 (donde 8000 es el puerto por defecto en el que atiende las peticiones el servidor shoutcast).
Si por el contrario accedemos a Internet mediante un router configurado en modo multipuesto (para dar acceso a más de un ordenador a internet) tendremos que decirle que todas las conexiones entrantes que vayan dirigidas al puerto del servidor shoutcast las dirija hacia la dirección IP local del ordenador desde donde estamos emitiendo. Para ello tendremos que acceder a la configuración del router y modificar las opciones correspondientes en la sección NAT (Network Address Translation) o PAT (Port Address Translation) donde indicaremos el puerto que va a escuchar las peticiones y la IP y el puerto del ordenador donde se encuentra el servidor.
El caso más complicado es aquel en que nos encontramos dentro de una red demasiado restrictiva como para permitirnos la configuración del router y el mapeo de puertos. La opción más sencilla en este caso sería emitir hacia un servidor configurado en otra red menos restrictiva y que sea él quien emita directamente hacia los oyentes.
Para más detalles: www.google.com y buscamos el modelo de router y las instrucciones para su configuración. En un ratito bien dedicado tendremos el router bajo control, y esto es algo que en mi opinión merece la pena. También hay páginas muy buenas donde seguro tienes detalladas explicaciones sobre cómo configurar tu modelo de router en particular, por ejemplo www.adslayuda.com www.bandaancha.st www.adslzone.net y muchas más. Si no encuentras exactamente tu modelo prueba con algún otro del mismo fabricante. Al fin y al cabo todos los routers trabajan de manera muy parecida y se configuran de modo similar.
5. Números de usuarios
El número de usuarios a los que podremos emitir es fácil de calcular si establecemos una relación entre el ancho de banda y la tasa de datos con que vamos a emitir el audio (recordemos la sección en que establecíamos el formato de compresión mp3 con diferentes calidades).
Hablo siempre del ancho de banda de salida y no del de entrada. Las líneas ADSL son asimétricas (tienen un ancho de banda independiente para los datos entrantes y otro para los salientes).
Por ejemplo, una línea ADSL 1Mbps/512Kbps tiene un ancho de entrada de 1 Megabit por segundo y uno de salida de 512 Kilobits por segundo.
Las conexiones de cable tienen un único ancho de banda de entrada y salida, por lo que su uso variará según las necesidades de la comunicación.
Dividiendo este ancho de banda saliente entre el flujo de datos del audio que vamos a emitir, obtendremos el número máximo de usuarios al que podremos dar cobertura. Estos datos serán relativos, pues el ancho de banda que “compramos” a las empresas proveedoras casi nunca es el que nos venden en un principio. Además, siempre existe ruido en las comunicaciones por Internet, por lo que para jugar sobre seguro limitaremos el número de usuarios un poco por debajo de lo que nos digan los cálculos. Debemos asegurarnos también de que no estén activos otros programas que usen la conexión a Internet mientras emitimos.
Pongamos un par de ejemplos prácticos:
– 512kbps de ancho de banda saliente. Codificación de audio mp3 a 24kbps: 512/24 = 21 (en números redondos). Limitaremos el número de usuarios a 19 o a 18 para empezar, pero lo mejor es hacer algunas pruebas primero con amigos o conocidos.
– 1Mbps de ancho de banda saliente. Codificación de audio mp3 a 16kbps: 1024/16 = 64 . Limitaremos el número de usuarios a 58 o 59, dependiendo de la capacidad de nuestro ancho de banda real.
– Módem a 56kbps. En este caso necesitaremos usar un servidor shoutcast externo con un ancho de banda mayor que el nuestro para poder emitir a más de 2 ó 3 usuarios a la vez, ya que la velocidad real de un módem de este tipo no suele superar los 30kbps de salida.
6. Emisión distribuida
Se trata de una de las características más interesantes del plugin DSP para Winamp y del sistema shoutcast en general. Con ella conseguiremos transmitir a varios servidores shoutcast simultáneamente, de manera que ellos pueden retransmitir el audio sin comprimir de nuevo la señal, con lo que conseguiremos llegar a muchos más oyentes si tenemos amigos con ganas de hacernos un favor.
La opción en cuestión está en la pestaña “output” del plugin. Desde ella podemos configurar hasta 5 “salidas” diferentes. Simplemente tendríamos que configurar en cada una la IP y puerto de los servidores que nos van a prestar su conexión para retransmitir nuestra señal.
Ahora, para permitir que los usuarios se vayan distribuyendo entre los servidores que tenemos a nuestra disposición, tenemos que hacerlos acceder a los servidores mediante una lista de reproducción: un simple archivo de texto (generalmente con extensión .pls o .m3u) que contendrá los datos de los distintos servidores. De esta manera, al encontrarse el primer servidor en el límite de usuarios permitidos, el reproductor del oyente pasaría a conectar con el segundo servidor y así sucesivamente. Un ejemplo del contenido de un archivo .pls podría ser el siguiente:
[playlist]
numberofentries=aquí especificamos el número de servidores
File1=http://dirección-ip-del-primer-servidor:8000
Title1=aquí el nombre que queramos ponerle al 1er servidores
Length1=-1
File2=http://dirección-ip-del-segundo-servidor:8000
Title2=aquí el nombre que queramos ponerle al 2o servidores
Length2=-1
Version=2
Sólo tenemos que pegar esto en un archivo de texto y renombrarlo a .pls o .m3u, cambiando por supuesto el contenido de las líneas que hacen referencia a nuestros servidores y al título que queramos ponerles.
* Esta información se encuentra disponible en un archivo tutorial pdf con explicaciones más profundas y capturas de imagen para la configuración de los programas. La dirección es www.cadenared.org “tutorial cadenared”.
Esta explicación es un corta y pega de un archivo de Antonio Bonny, disponible para su libre distribución en www.cadenared.org
Abril 23, 2008 en 1:24 am
mitengo un problema con mi tarjeta de audio a ver si pueden solucionarmelo, el problema es que funciona bien pero cuando reinicio la maquina aparece desintalada la tarjeta de audio, y el error dice que está en el registro que puedo hacer, que no sea formatear el disco duro gracias¡
Abril 23, 2008 en 10:22 pm
buff, me da que ni idea. Siento no poder ser de ayuda. Por si las moscas desintala el hardware y vuelve a instalarlo. A veces funciona, pero no siempre.
Mayo 11, 2008 en 6:43 am
hola, tengo un problema, ya instale todo el software requerido para transmitirpero unicamente puedo conectarme al servidor por medio de mi direccion local y no desde otro equipo que no pertenece a mi red, mi pregunta es: para conectarme desde otro equipo, ¿debo direccionar el winamp a mi direccion publica o siempre a la direccion local?, gracias de antemano por tu ayuda
Mayo 11, 2008 en 10:36 am
No entiendo muy bien tu duda.
No sé si lo que quieres es tener el servidor (sc_serv) alojado en un ordenador de otra red y emitir (winamp con plugin de shoutcast) desde el tuyo o lo que dices es que no te puedes escuchar tu emisión desde fuera de la red.
Si es la primera pregunta la verdad es que no lo he intentado nunca. Se puede hacer sin problemas “relay” desde otra red, pero en ese caso lo que pasa es que se accede como un usuario y se reenvía la señal, coordinándose con el servidor principal. Pero yo creo que se tiene que poder. Investigaré un poco a ver. Si lo solucionas por favor cuéntame como lo hiciste.
Si es la segunda pregunta es una cuestión de puertos, creo. Debes redireccionar la IP interna (la de la red, es decir, la que suele ser 192.168.0.x, o similar) hacia el puerto 8000 (o el que tú metas en el sc_serv.conf) en tu router (a no ser que uses modem para conectarte). La gente que acceda a la señal siempre lo hará con tu IP externa, es decir, la que te ofrece tu ISP. Por defecto es dinámica (cambia cada vez que te conectas), por lo que interesa obtener una estática o usar software como por ejemplo No-Ip para resolver el problema. La cuestión es que cuando alguien intenta acceder a tu red escribiendo tu IP externa (por ejemplo: http://67.42.123.45:8000), esa petición llega al router. Éste redirecciona ese acceso hacia la IP interna (por ejemplo: 192.168.0.47) que hayas seleccionado. Una vez ahí ya tiene acceso al “localhost” y como consecuencia a la señal de audio que estás emitiendo).
Suerte
Mayo 27, 2008 en 2:58 am
que tal, yo tengo una duda quizá algo mas aberrante y es que yo estoy interesado totalmente en hacer la radio pero ¿puedo hacerla si me conecto x wifi a un router que tengo en la habitacion de al lado y el novio de mi madre no quiere abrir un bujerito para colar el udp y asi llegar hasta el router?
La verdad es que es patético mi problema pero por mucho que hable no consigo nada y siempre estoy jodido x el wifi a la hora de ser simplemente HOST …. gracias ,
¿alguien sabria decirme? xD
Mayo 27, 2008 en 11:19 am
Respuesta a Francisco José
No tienes problema ninguno. El UDP es un protocolo de transporte de datos, y que yo sepa no tiene nada que ver con establecer un contacto físico con el router. Creo que te refieres a los puertos que se deben abrir para realizar el enlace. Yo siempre he usado el protocolo TCP en el redireccionamiento de puertos (por defecto shoutcast te trae el 8000 y el 8001). El protocolo UDP normalmente lo he usado para programas P2P.
Simplemente cuando tengas conexión wifi puedes poner a funcionar los programas pertinentes y después entrar en la configuración del router vía http (es decir, desde tu navegador habitual) y cambiar lo de los puertos (sueles estar en la seccion NAT).
De todas formas no entendí muy bien tu problema, si no he atinado explícame mejor.
Suerte
Mayo 27, 2008 en 1:58 pm
hola Francisco… si el administrador del sistema no te permite hacer los cambios pertinentes en la configuración de puertos del router, siempre puedes tomarte la molestia de acceder, cambiarlo para que este abierto hacia tu servidor de radio y dejarlo todo tal y como estaba sin que nadie -en principio- note la menor molestia. Ahora bien: Te lo tendras que currar si el novio de tu madre tiene los mínimos conocimientos informáticos.
Julio 17, 2008 en 11:18 pm
PERO QUE PARSIMONIA ALUMNOOOO…
Julio 18, 2008 en 11:59 pm
Hola Tanaceto weno mi duda es la siguiente tengo una pc con winamp version 5.52, tarj sonido integrada soundmax (consu aplicativo y todo correctamente instalado) y winxp, ya instale el shoutcast y tengo emision de datos pero hay un detalle me sale solo ruido con algo de musica a bajo volumen,sin embargo cuando elijo a winamp como mi input device cuando coloco la opcion de soundcar input y hablo por el micro lo puedo hacer sin ningun problema es decir “sin ruido alguno”, mis drivers de audio estan bien lo q sospecho es q tiene q ver con la config q trae el wizar de soundmax sera posible q haya q modificarlo??? agradecere tu ayuda…
Julio 21, 2008 en 12:47 am
Por lo que dices debe ser eso que propones. No he tenido esos problemas, aunque recuerdo que lo del micro en winamp me iba medio mal y encontre un .dll que se llama linerec y que cuando cargabas se emitía el audio sin problemas. Pero fue hace mucho, ni recuerdo los detalles.
suerte