Hace mucho tiempo que ya es normal encontrar en la red servicios de transmisión de radio que llegan a todo el planeta, pues en este post voy a explicar cómo realizar la instalación de un Servidor IceCast que es un servicio libre en contraparte al conocido servicio de ShoutCast.
Antes que nada quiero aclarar que esta instalación la realizaré sobre un Debian/Linux, pero la configuración es análoga para cualquier distribución Basada en GNU/Linux.
#aptitude install icecast2 ices2
Icecast2: Servidor de Streaming.
Ices2: Cliente para emitir Stream.
Inicialmente configuraremos el Servicio de Icecast localmente, para ello IP Server = 127.0.0.1 o localhost, el puerto por el que atiende icecast será 8000.
Para las ediciones de los ficheros de texto yo prefiero usar «nano», ustedes pueden hacer uso del que gusten. Así mismo, es recomendable que cambien las contraseñas que la instalación trae por defecto, como en <source-password>, <relay-password> y <admin-password>; éste último se refiere a la contraseña de acceso via web: http://127.0.0.1:8000/admin/
Iniciamos con la configuración:
Configuración de Icecast2:
#nano /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> <pre><code>&lt;authentication&gt; &lt;source-password&gt;source&lt;/source-password&gt; &lt;relay-password&gt;source&lt;/relay-password&gt; &lt;admin-user&gt;admin&lt;/admin-user&gt; &lt;admin-password&gt;admin&lt;/admin-password&gt; &lt;/authentication&gt; &lt;hostname&gt;localhost&lt;/hostname&gt; &lt;listen-socket&gt; &lt;port&gt;8000&lt;/port&gt; &lt;/listen-socket&gt; &lt;fileserve&gt;1&lt;/fileserve&gt; &lt;paths&gt; &lt;basedir&gt;/usr/share/icecast2&lt;/basedir&gt; &lt;logdir&gt;/var/log/icecast2&lt;/logdir&gt; &lt;webroot&gt;/usr/share/icecast2/web&lt;/webroot&gt; &lt;adminroot&gt;/usr/share/icecast2/admin&lt;/adminroot&gt; &lt;alias source=&quot;/&quot; dest=&quot;/status.xsl&quot;/&gt; &lt;/paths&gt; &lt;logging&gt; &lt;accesslog&gt;access.log&lt;/accesslog&gt; &lt;errorlog&gt;error.log&lt;/errorlog&gt; &lt;loglevel&gt;3&lt;/loglevel&gt; &lt;logsize&gt;10000&lt;/logsize&gt; &lt;/logging&gt; &lt;security&gt; &lt;chroot&gt;0&lt;/chroot&gt; &lt;!-- &lt;changeowner&gt; &lt;user&gt;nobody&lt;/user&gt; &lt;group&gt;nogroup&lt;/group&gt; &lt;/changeowner&gt; --&gt; &lt;/security&gt; </code></pre> </icecast>
#nano /etc/default/icecast2
CONFIGFILE="/etc/icecast2/icecast.xml" USERID=icecast2 GROUPID=icecast ENABLE=true
#/etc/init.d/icecast2 start
Si hasta este punto todo se ha hecho bien, la siguiente dirección debería cargar correctamente en el navegador: http://127.0.0.1:8000
Configuración de Ices2:
Modo Live: Para Emitir streaming en linea, por ejemplo con la salida desde micro:
Los ficheros de configuración de ices2 lo pueden crear en su directorio personal, según el ejemplo mi directorio personal es /home/beastieux/
$mkdir /home/beastieux/iceconf
$cd /home/beastieux/iceconf
$nano iceconf/ices2-live.xml
<?xml version='1.0'?> <ices> <background>0</background> <logpath>/var/log/icecast2</logpath> <logfile>ices.log</logfile> <loglevel>4</loglevel> <consolelog>1</consolelog> <stream> <metadata> <name>Radio Beastieux</name> <genre>rock-metal-bossa-chilli</genre> <description>Radio con la mejor musica de mi computadora</description> <url>https://beastieux.com</url> </metadata> <input> <module>alsa</module> <param name="rate">44100</param> <param name="channels">2</param> <param name="device">hw:0,0</param> <param name="metadata">1</param> <!--Localización de un fichero metadata.--> <param name="metadatafilename">./metadata</param> </input> <!--Datos del Servidor Icecast2--> <instance> <hostname>127.0.0.1</hostname> <port>8000</port> <username>source</username> <password>source</password> <mount>/radio-beastieux.ogg</mount> <yp>1</yp> <encode> <!--Datos de la velocidad de transmisión, calidad--> <minimum-bitrate>48000</minimum-bitrate> <maximum-bitrate>64000</maximum-bitrate> <nominal-bitrate>64000</nominal-bitrate> <samplerate>44100</samplerate> <!--Calidad de codificación del bitrate. Va de 0 a 10. Interesa tener un valor bajo para conexiones modestas--> <quality>1</quality> <!--Número de canales de la entrada --> <channels>2</channels> </encode> <downmix>1</downmix> <resample> <in-rate>44100</in-rate> <out-rate>44100</out-rate> </resample> </instance> </stream> </ices>
Para emitir el stream sólo lanzar este comando:
$ices2 ices2-live.xml
Luego pueden hablar por el micro o ayudarse con reproductores y sintetizadores para la transmisión, que todo lo que salga por el audio desde su ordenador se estará transmitiendo en vivo.
Modo Playlist: Para Emitir Streaming desde una lista con las direcciones del audio:
$nano /home/beastieux/iceconf/ices2-playlist.xml
<?xml version='1.0'?> <ices> <background>0</background> <logpath>/var/log/icecast2</logpath> <logfile>ices.log</logfile> <loglevel>4</loglevel> <consolelog>1</consolelog> <stream> <metadata> <name>Radio Beastieux</name> <genre>rock-metal-bossa-chilli</genre> <description>Radio con la mejor musica de mi computadora</description> <url>https://beastieux.com</url> </metadata> <!-- El <input> es lo único diferente al fichero ices2-live.xml --> <input> <module>playlist</module> <!--Indicar el sitio donde tenemos la lista de reproducción--> <param name="file">/home/beastieux/iceconf/playlist.m3u</param> <param name="type">basic</param> <!--reproduce en modo random--> <param name="random">1</param> <!--A valor 0 reproduce la lista continuamente."--> <param name="once">0</param> <param name="rate">44100</param> <param name="channels">2</param> <param name="device">/dev/dsp</param> <pre><code> &lt;/input&gt; </code></pre> <instance> <hostname>127.0.0.1</hostname> <port>8000</port> <username>source</username> <password>source</password> <mount>/radio-beastieux.ogg</mount> <yp>1</yp> <encode> <!--Datos de la velocidad de transmisión--> <minimum-bitrate>48000</minimum-bitrate> <maximum-bitrate>64000</maximum-bitrate> <nominal-bitrate>64000</nominal-bitrate> <samplerate>44100</samplerate> <!--Calidad de codificación--> <quality>1</quality> <!--Número de canales de la entrada --> <channels>2</channels> </encode> <downmix>1</downmix> <resample> <in-rate>44100</in-rate> <out-rate>44100</out-rate> </resample> </instance> </stream> </ices>
Crear la lista de reproducción:
La lista de reproducción solo es una lista con las direcciones de los archivos de audio, en este caso deben de ser OGG, el fichero debe constar de una dirección por linea. Si tienen un directorio con músicas podrían generar el fichero.m3u automáticamente con algo como:
$find /media/sda2/musicas/ -name "*ogg" > ~/iceconf/playlist.m3u
Para ejecutar el modo automático de emisión desde un playlist con los audios (ogg) añadidos:
$ices2 ices2-playlist.xml
Si quieren escuchar la transmisión vía web pueden ingresar al punto de montaje configurado, para este ejemplo el punto de montaje fue radio-beastieux.ogg, por lo cual accederemos a: http://127.0.0.1:8000/radio-beastieux.ogg
Por último, tanto la ejecución en modo live como en modo playlist con ices2 no debe de niguna manera devolvernos al promt del terminal, si eso ocurre es porque los ficheros están mal configurados o el servidor no está iniciado correctamente. Si todo ha salido bien entonces tendrían su servidor de Icecast básicamente configurado y listo para empezar a emitir normalmente, podrian empezar a transmitir para el mundo entero.
Esto es ¡genial! No he leído algo como esto en mucho tiempo . Es agradable encontrar a alguien con algunas ideas propias sobre este tema. Este sitio web es algo que se necesita en Internet , alguien con un poco de sinceridad. Un trabajo útil para traer algo nuevo a Internet. Gracias de todos lo que te leemos.
Uzun zamandır internet sitenizi takip ediyorum teşekkür ederim
HOLA UNA PREGUNTA Y COMO PUEDO HACER UN STREAMING DE VIDEO CON UNA CAPTURADORA PARA PODER HACER UN STREAMING DE VIDEO EN MI WEB ALGO ASÍ COMO USTREAM SALUDOS
Saludos, y gracias por darme la oportunidad de hacer las consultas, tengo 4 radios con icecast, pero como puedo hacer para que cada Radio tenga su contraseña diferente en su mount? pues todas funcionan con la misma contraseña que tiene la mount o sea este:
source
source
admin
admin
Trate de agregar otra linea igual a esta o sea asi:
primeracontraseña
segundacontraseña
source
admin
admin
pero no me funciona unicamente las 4 funcionan solo con la misma y me gustaria ponerle diferentes a cada una, es posible hacerlo? y como seria? Muchas Gracias
Nota: e probado hacerlo con icecast2 para linux y con icecast2 para windows pero no lo e logrado.
Hola, muy buen tutorial! No me sirvió el tema del micrófono, pero la PlayList me anduvo de lujo.
Saludos!
wow estimado exelente tutorial !! mee va a servir un mundo (Y)
Hola dango. Espero que realmente te sea de utilidad. Gracias por la visita y vuelve pronto. Saludos
Brother excelente tutorial, tengo una duda agradeceria me pudieras orientar. Implementando este streaming es posible configurar el sam para que funcione con el?
Hola Luis, se que sambroadcast tiene soporte para icecast, entonces si es posible emitir desde el. Configurar el sam con los parametros del servidor, puerto, etc. Saludos.