<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Semilla de Software Libre (S.L.) &#187; ogg</title>
	<atom:link href="http://www.semillasl.com/tag/ogg/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.semillasl.com</link>
	<description>Otra empresa de software libre</description>
	<lastBuildDate>Mon, 20 Jul 2009 09:04:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Transmisión de eventos a través de internet con software (y formatos) libres</title>
		<link>http://www.semillasl.com/2009/03/transmision-de-eventos-a-traves-de-internet-con-software-y-formatos-libres/</link>
		<comments>http://www.semillasl.com/2009/03/transmision-de-eventos-a-traves-de-internet-con-software-y-formatos-libres/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 11:12:41 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Administración de sistemas]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[icecast2]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[vlc]]></category>

		<guid isPermaLink="false">http://www.semillasl.com/?p=24</guid>
		<description><![CDATA[Como hacer una retransmisión de un evento usando software libre y formatos libres.]]></description>
			<content:encoded><![CDATA[<blockquote><p>Es tarde y todo se ha hecho en un par de días, las primeras gotas de rocio aparecen sobre la ventana y mis ojos enrojecidos se abren lentamente ante la aparición ¡Theodora!</p></blockquote>
<p>Hemos preparado la retransmisión en vivo y en directo del Seminario internacional <a href="http://www.justiciaporcolombia.org/?q=node/31">Colombia: Conflicto y derecho internacional humanitario</a>, lo hemos montado en muy poco tiempo pero el resultado es bastante funcional.</p>
<p>La petición era transmitir por internet las jornadas ya que en el primer día se habían agotado las plazas. Mucha gente se había quedado sin poder asistir, además por la temática era interesante que mucha gente de otros lugares del mundo pudieran asistir virtualmente.</p>
<p>Antes de empezar hay que tener claros varios conceptos y los voy a explicar tal cual los he entendido (o me los he inventado).</p>
<p><strong>Fuente</strong>: es lo que da el video y el audio al servidor de streaming.</p>
<p><strong>Servidor de streaming</strong>: Es lo que recoge como entrada lo que da la fuente y se lo da a los clientes que se quieran enganchar.</p>
<p><strong>Clientes</strong>: Son los que ven y escuchan lo que la fuente quiere transmitir.</p>
<p>Ningún concepto raro, ¿no? a mi me costó pillarlos, pero una vez claros continuamos, empezamos por el medio.<span id="more-24"></span></p>
<p>El servidor de streaming que hemos usado es icecast2, por qué icecast2 y no otro:</p>
<ul>
<li>Ya había usado icecast hace años para radio</li>
<li>Es software libre</li>
<li>apt-get install icecast2 # <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>La parte del servidor en sí no requiere mucho, simplemente instalarlo, y cambiar las contraseñas por defecto:</p>
<p>apt-get install icecast2</p>
<p>vim /etc/icecast2/icecast.xml</p>
<p>Unas tareas sencillas:</p>
<ul>
<li>Buscar hackme y reemplazar por tu contraseña favorita <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Configurar el hostname</li>
<li>Cambiar el bind-address para que te puedas enganchar desde internet.</li>
</ul>
<p>Luego hay que editar el fichero /etc/default/icecas2 y habilitarlo para que funcione&#8230; esto es para que cambiemos las contraseñas, así que no seas gañán o gañana y cambiala antes de hacer este paso.</p>
<p>Si ahora reinicias el icecast2 deberías tener un servidor funcionando <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Icecast tiene un interfaz web de administración y estadísticas bastante sencillote ve a http://tuserver:8000 y entra con admin y su contraseña y verás sus funciones&#8230; esto te dejo que lo averigues tu.</p>
<p>Servidor funcionando&#8230; ahora deberíamos enchufarle algo para transmitir <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Este paso fue un auténtico dolor de cabeza. En el primer momento pensabamos usar vlc para coger la entrada de firewire, convertirlo a ogg y enviarlo al servidor y&#8230; hubo problemas. No conseguí que el vlc cogiera el firewire (no hubo manera), ni que cogiera la entrada estandar para que enchufarsela al servidor ni que la vida sonriera, así que lo que decidí hacer es coger la entrada del firewire, pasarla a mpeg a un fichero local y enchufar el vlc a leer el fichero local y reenviarlo ya en ogg al servidor de streaming.</p>
<p>Todo lo siguiente requiere que tengas cargados los módulos de firewire <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Asi que ejecutaba por un lado la conversión al vuelo de lo que entra por el firewire</p>
<blockquote><p>dvgrab -format dv1 &#8211; | ffmpeg -deinterlace -f dv -i &#8211; -vcodec mpeg1video \</p>
<p>-s 352&#215;288 -qscale 3.5 -acodec mp2 -ab 32k -ar 22050 de_la_camara.mpg</p></blockquote>
<p>y por otro el envío al servidor de lo que se iba guardando (también lo muestra en local):</p>
<blockquote><p>vlc -vv de_la_camara.mpg &#8211;sout\</p>
<p>&#8216;#transcode{vcodec=theo,vb=800,scale=1,acodec=vorb,ab=128,channels=2}\</p>
<p>:duplicate{dst=display,dst=std{access=shout,mux=ogg,\</p>
<p>dst=source:micontraseñafavoritita@miservidorpreferido:8000/mievento.ogg}}&#8217;</p></blockquote>
<p>Puedes hacer prueba de que funciona con el vlc:</p>
<blockquote><p>vlc http://miservidorpreferido:8000/mievento.ogg</p></blockquote>
<p>Esto mete un poco más de retraso pero, si lanzas las dos cosas separadas con un  &amp; sleep 5; no será mucho <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . De todas formas el streaming ya hace bastante cache lo que hace que se vea con bastante retardo.</p>
<p>Ahora ya estamos emitiendo para toda la galaxia conocida nuestro evento, lo que pasa es que nadie nos conoce, pero seguro que tenemos una web que si conocen, así que vamos a embeber nuestro stream en la web. Para ello vamos a usar un script que hace que la etiqueta video de html5 funcione en navegadores que no lo soportan (o por lo menos lo intenta). Hay que aclarar que esto necesita que el cliente tenga instalado algo que le permita ver video ogg en el equipo y el plugin para el navegador (vlc, mplayer) o firefox 3.1 que ya soporta ogg nativamente <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>la cosa en cuestión es <a href="http://metavid.org/w/index.php/Mv_embed">Mv Embed</a> es bastante sencillo basta bajar el js ponerlo en el servidor y meter el siguiente código html en la web:</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;/PATH_AL_mv_embed/mv_embed.js&#8221;&gt;&lt;/script&gt;</p>
<p>&lt;video src=&#8221;http://miservidorpreferido:8000/mievento.ogg&#8221; thumbnail=&#8221;PONTE_UnA_FOTO_CHULA.png&#8221;&gt;&lt;/video&gt;</p></blockquote>
<p>Le puedes pasar opciones interesante como &#8220;autoplay=true&#8221; para que cargue el video automáticamente.</p>
<p>Tachan! ya tienes todo funcionando para restransmitir tu evento <img src='http://www.semillasl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Muchas gracias a Santiago Ramos de <a href="http://www.grupoikusnet.com/">Ikusnet</a> por la orientación y el apoyo moral</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semillasl.com/2009/03/transmision-de-eventos-a-traves-de-internet-con-software-y-formatos-libres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
