Manual:Radio/Información técnica

De Hackmeeting

Tabla de contenidos

Software de la radio

Utilizando giss.tv, podemos disponer del ancho de banda de su anillo de servidores, con el que podemos estar conectados a miles de oyentes sin saturar el ancho de banda de subida de nuestra conexión. La máquina de la radio, el ordenador dedicado a la radio, se ocupa de encodear a .ogg y mandar un único flujo hasta el anillo de servidores. Estos son los servidores del streaming propiamente dicho, del cual cuelgan los clientes que se conecten a él.

Software para la emisión

  • ices2 para la emision en directo
  • Radiobot, un bot de irc para controlar la emisión: programar emisiones en el tiempo, cargar listas de reproducción, etc.

ices2

Con ices2 encodeamos a .ogg y se manda un único streaming hasta el punto de montaje en giss.tv

Archivo de configuración del ices2

los parámetros del ices2 se le pasan mediante un archivo .xml en el cual va toda la configuración:

<ices>
	<background>0</background>  		   -->1=ejecucion como demonio
	<logpath>/home/yo/ices</logpath>           -->path del archivo del log 
	<logfile>ices.log</logfile>                -->archivo del log      
	<loglevel>4</loglevel>			   -->nivel de detalle de informacion de acciones 1=error,2=warn,3=info,4=debug
	<consolelog>1</consolelog>
	<pidfile>/home/yo/ices2/ices.pid</pidfile> -->donde guarda el pid del proceso
	<stream>
		<metadata>
			<name>radio_no_name</name>			-->nombre de la radio
			<genre>subversivo</genre>			-->genero de la emision
			<description>Hack your mind!</description>	-->breve descripcion
			<url></url>                                     -->url de la radio
		</metadata>
		<input>
			<module>alsa</module>
			<param name="rate">44100</param>
			<param name="channels">2</param>
			<param name='device'>plughw:0,0</param>
			<param name="periods">2</param>
			<param name="buffer-time">500</param>
			<param name="metadata">1</param>
			<param name="metadatafilename">/home/yo/ices2/test</param> -->archivo donde leer los metadatos
		</input>
		<instance>
			<hostname>giss.tv</hostname>		-->Ip/nombre del servidor emisor
			<port>8000</port>			--->puerto de comunicacion con el servidor
			<password>xxxx</password>		--->clave de acceso al server como source
			<mount>/yyyy.ogg</mount>        	--->nombre de la emision
			<reconnectdelay>2</reconnectdelay>
			<reconnectattempts>5</reconnectattempts> --->intentos de reconexion
			<maxqueuelength>80</maxqueuelength>
			<encode>  
				<quality>1</quality>
				<maximum-bitrate>131072</maximum-bitrate>
				<minimum-bitrate>-1</minimum-bitrate>
				<managed>0</managed>
				<samplerate>22050</samplerate>
				<channels>2</channels>
			</encode>
			<downmix>1</downmix>
			<resample>
				<in-rate>44100</in-rate>
				<out-rate>22050</out-rate>
			</resample>
		</instance>
	</stream>
</ices>

Manual SSHDJ (Secure Shell Net Jokey)

#############################################
        Manual SSHDJ (Secure Shell Net Jokey)
#############################################


Este manual describe el procedimiento para pinchar en radio#hckrs.


1. Disponer de un cliente de chat (xchat, por ejemplo).

        apt-get install xchat 


2. Dirigirse al canal #radio#hckrs del servidor de chat irc.freenode.net.

        Una vez allí, pedir una cuenta en la radio. Con esta cuenta podrás
        acceder por ssh al servidor de la radio alojado en el dominio
        radiobot.ath.cx. También debes pedir que te incluyan en la lista de
        usuarios de la cabina del dj, para que puedas entrar en su screen.


3. Entrar en laradio por ssh

        ssh <usuario>@radiobot.ath.cx


4. Ir a la cabina del dj

        screen -x dj/


5. Bienvenido a la cabina screen del dj.

        Ten en cuenta, que en ese mismo momento puede haber otra persona
        pinchando. Te podrás cercionar de si es así, si observas movimiento, ya que
        podrás observar sus operaciones en tiempo real. Se trata de una cabina
        compartida, un screen compartido. Podrás interactuar.


6. Moverse por la cabina (man screen)

        Para moverte entre las shells del dj:

                ^a + n  --> pasa a la siguiente shell
                ^a + p  --> pasa a la shell anterior
                ^a + ^a --> conmuta entre la shell anterior y la actual


7. Comunicarte con el dj

        Lo suyo es crear un documento en una shell que no se esté usando, o
        sino, crear una shell con:

                ^a + c  --> crea una shell nueva
                ^a + k  --> mata la shell en la que estés

        y escribir en él algo para que el dj pueda comunicarse contigo

                joe nada --> crea el documento nada.

        saludar al colega dj y esperar a que te vea, o avisarlo mediante una
        señal en una shell que esté usando, pero con cuidado de no
        entorpecerlo que esté haciendo. Basta con escribir ":)"para que se
        percate de tu presencia para deducir que puedes haber abierto un
        documento en otra shell. Además, se puede dividir la pantalla en
        varias partes, una para pinchar con un reproductor, otra para buscar
        y preparar el siguiente track, y si hace falta,incluso una tercera
        para ver el documento abierto para comunicarte con el resto.


8. Dividir la pantalla en varias partes

        Se puede dividir en tantaspartes sea necesario, pero más de cuatro
        partes puede ser engorroso... pero allá cada cual.

                ^a + S  --> divide la pantalla
                ^a + Q  --> vuelve a pantalla completa


9. Moverse entre las partes de la pantalla

        La cosa está en que encada parte tengas lo que te interesa, por lo
        que lo suyo es moverse entre las shells (con los comandos descritos
        más arriba) en cada parte de la pantalla para tener lo que intereseen cada
        una. Para pasar de una parte de la pantalla a otra, se hace así:

                ^a + Tab --> pasa a la siguiente parte de la pantalla


10. El dj nos pasa el control

        bien, normalmente nos dejará algo sonando en una shell, como
        somaplayer o mplayer.

        Veamos un poco el somaplayer:

                Supongamos que ya hay un somaplayer sonando, el que nos ha
                dejado el anterior dj, pero sinó, lanzamos uno rápidamente:

                        somaplayer .            ---> reproduce lo que haya en el
                                                directorio en el que se esté.
                        somaplayer algo.ogg     ---> reproduce algo.ogg

                si ya hay algo sonando nos encontraremos con algo como:

                        T: 01:23.99 [04:03.23] V: 100% B: 81% [zrtA] L 100% R 100% C o0
                               |       |           |_volumen   ||     |      |      |_vúmeter
                               |       |_tiempo restante       ||     |      |_volumen de R
                               |_tiempo transcurrido           ||     |_volument de L
                                                     aleatorio_||_repeat

                Bien, los comando de teclado más importante es el volumen,
                el cual podemos observar su porcentaje después de la "V: ".
                Todos los comandos de teclado distinguen entre mayúsculas y
                minúsculas. Así, la tecla "v" baja el volumen, así como la
                "V" lo sube. Lo mismo pasa con los conmutadores de [z/Z],
                con "z" desactivamos y con "Z" activamos, etc. En todo caso,
                cómo no: man somaplayer.


                                ..:: en construcción ::..
################################################
        ejercicos prácticos para el sshnj newbie
################################################


1. Entra a la radio por ssh

        ssh usuario@radiobot.ath.cx


2. Entra en la cabina del dj

        screen -x dj/


3. Muévete a otra shell de la cabina

        ^a + p          <--- pasa a la siguiente shell
        ^a + n          <--- pasa a la shell anterior 
        ^a + ^a         <--- conmuta entre la shell de antes y la que estés


4. Divide la pantalla en dos partes

        ^a + S          <--- divide la pantalla


5. Pasa a la otra parte

        ^a + Tab        <--- pasa entre partes de la pantalla


6. Muévete a otra shell desde esa parte con los comandos del punto 3.


7. Divide la pantalla en tres partes con el comando del punto  4.


8. Vuelve a pantalla completa

        ^a + Q          <--- recupera pantalla completa


9. Si ves que los márgenes no han quedadi bien, recupéralos

        ^a + F          <--- recupera los márgenes


10. Crea una shell nueva
        
        ^a + c          <---- crea una shell nueva dentro del screen

        
11. Abre un documento con joe

        joe nada.txt    <--- abre nada.txt con joe (editor de textos)


12. Invita a alguien a escribir en ese documento y cede el turno de palabra
    escribiendo un solo punto en una linea nueva

        estas ahí?
        .
        si, dime :)
        .
        cómo mola esto, no?
        .
        ya te digo!!!


13. guarda el documento y sal.

        ^k + ^w         <--- guarda el documento
        ^k + ^q         <--- sale.


14. Mata una shell

        ^a + k          <--- mata la shell en la que se esté


15. Mezcla algo.

        vuelve a dividir la pantalla en dos y ejecuta en una el somaplayer con
        algun audio.
        Luego pasa a la otra parte y busca el siguiente archvo a reproducir.
        Cuando lo tengas preparado, lánzalo directamente, aunque no se haya acabado el otro.
        Pasa a la otra parte y baja el volumen con la tecla "v" para dar paso al que acabas 
        de lanzar.


16. Fade in

        Mientras está sonando lo que acabas de lanzar, pasa a otra shell y
        reproduce algo pero muteado.

                somaplayer -v 0 algo.ogg

        Ahora ves subiendo el volumen paulativamente con la tecla "V".
        Si te pasas bájalo con la tecla "v" (nótese la capitulación). 


17. Mete el piloto automático y lárgate

        Hay muchas opciones. Una podría ser elegir una netjuke de música libre y hacer un wget
        de toda su música (añadiendo /play.php?do=play_all a la url) pipeadolo al mplayer, con
        repeat, reproducción aleatoria de la lista y con más caché por si acaso.

        Por ejemplo, la de burnstation.org:
 
                wget http://db.burnstation.org/play.php?do=play_all -O - | mplayer -cache 8192 -loop 0 -shuffle -playlist -

        O la de r23.cc:

                wget http://netjuke.r23.cc/play.php?do=play_all -O - | mplayer -cache 8192 -loop 0 -shuffle -playlist -

        O reproducir una lista de archivos locales, o simplemente
        repruduciendo todos los archivos de un directorio, siempre con el
        modo de repetición, para que no se acabe y se quede en silencio: 

                somaplayer -r musica/jazz/

        Entonces ya puedes salir del screen. Hay dos formas:

                ^a + ^d         <--- sale del screen y vuelve a la shell de ssh
                ^a + D + D      <--- sale del screen y corta la conexión ssh   


18. Repasa mentalmente lo que has hecho y repite los primeros pasos cuando quieras
recuperar la screen de dj, o quieras ver si hay alguien pinchando.

        No olvides compartir tus conocimientos y ayudar a quién esté realmente interesado
        en aprender, así como documentar y publicar todo canto puedas (con licencias libres, porsupuesto)

        ;)

        

################################################
                 Sat, 17 Nov 2007 03:16:38 +0100
################################################

Raiobot

Radiobot es el bot que gestiona radio#hckrs a través del canal #radio#hckrs del servidor de chat irc.freenode.net
Comandos:

NOMBRE SINOPSIS DESCRIPCIÓN
!help Devuelve la url de la ayuda de radiobot
!url Devuelve la url del stream de la radio
!web Devuelve la url de la web de la radio
!name Devuelve información sobre el archivo o stream que se esté reproducioendo
!add !add <url> Añade la url pasada como parámetro, a la lista en curso
!rm !rm <número> Borra de la lista de reproducción, la url que corresponda con el número pasado como parámetro
!load !load <lista> Carga la lista de reproducción pasada como parámetro.
!save !save <nombre> Salva la lista en curso, con el nombre pasado como parámetro
!merge !merge <lista> Carga y añade la lista pasada como parámetro, a la lista en curso
!lspl Devuelve la lista de las listas de reproducción guardadas
!play Reproduce la lista de reproducción en curso, en caso de parada
!+ Avanza una posición en la lista de reproducción en curso
!- Retrocede una posición en la lista de reproducción en curso
!jump !jump <número> Salta a la posición pasada como parámetro, de la lista de reproducción en curso
!tts !tts <texto> Intenta locutar el texto pasado como parámetro. Sólo en castellano. El archivo de audio generado, es colocado en la cola de la lista de reproducción, como siguiente archivo a ser reproducido
!cron !cron <fecha> <hora> <url/!load> <lista> Programa emisiones en el tiempo.

<fecha> debe responder a <dia[1-31]>/<mes[1-12]>/<dia de la semana[0-7]> donde 0 y 7 correspone a domingo.
<hora> debe responder a <horas[00-23]>:<minutos[00-59]>.
<url/!load> debe responder a: o bien a [una url de un archivo de audio o stream], o bien a !load, que es el comando de carga de listas de reproducción. Si <url/!load> == !load, entonces <lista> es la lista a cargar.
Los parámetros de tiempo, corresponden a la estructura del archivo de configuración de crontab, por lo que aceptan series tipo: 10,12,14:00, que significaría, a las 10:00, a las 12:00 y a las 14:00 horas.
También acepta asteriscos (*) como comodines, por lo que */*/1 para <fecha> significa todos los lunes; o */*/1-4, para indicar de lunes a jueves; etc.

ejemplo: !cron 10-14,17-21/1-3,6-8/* 10,22:00 !load jazz ←que viene a decir que los días del 10 al 14 y del 17 al 21 de los meses de enero a marzo y de junio a agosto, caiga en el dia de la semana que caiga, que reproduzca la lista jazz, a las 10h y a las 22h

Software para el servidor de estriming (giss.tv)

  • icecast2

Software complementario

kjabata

Permite llevar a a cabo una estructura concreta de la emisión: sintonias, cuñas, contenidos, etc.

NetJuke

Es un repositorio de audio/video online con una interfaz web. La netJuke nos sirve para colgar todos los programas emitidos allí para que puedan ser escuchados o/y bajados posteriormente por cualquier internauta; pero también para que cualquiera de la radio pueda subir material, desde cualquier ordenador conectado a Internet, para su posterior emisión, ya que basta con incluir el link en la lista de reproducción o parrilla, para que se emita a la hora programada.

Enlaces de interes para montaje de radio por internet

Suburbia: ¿Cómo hacer streaming?
ices2-howto
Icecast2: Examining the XML Files
icecast download
Instalacion de Burnstation
Netjuke download

Documentación sobre Radio

Itrainonline

wiki-navigation
project-navigation