CONSOL 2007 - Desde el changarro de streaming.. - 19/02/2007, 00:54




Como ya muchos se enteraron (y a los que no, ahora lo harán), yo fui el encargado del streaming en vivo del CONSOL 2007.
El miércoles de la semana antepasada (es decir el 7), me enteré en una junta CONSOL/LIDSOL que querían ver si era posible hacer transmisión en vivo de las conferencias (sobre todo las magnas) que se iban a presentar en el auditorio Javier Barros Sierra. Por motivos escolares principalmente y algunos trabajos hogareños, yo no había podido involucrarme en la organización del CONSOL pero sí tenía muchísimas ganas de participar. Entonces, tras considerarlo unos 500 milisegundos, me decidí a proponerme como voluntario para investigar cómo realizar la transmisión y luego llevarla a cabo. Rubén Silva también se propuso para ayudar, aunque por cuestiones laborales no tuvo mucho tiempo y yo tampoco tuve mucha oportunidad de probar el equipo de captura de video que él tenía disponible (el día en que se suponía iba a ver el hardware con él, me sentí muy mal y ya no salí de mi casa - una disculpa por no haber avisado).

Desde el principio, pensé en la captura de video como el punto más difícil de resolver, ya que el Hardware de captura de video para el cual existen drivers para GNU/Linux y otros sistemas libres (*BSD) es muy muy limitado, así que comencé por dividir al problema en 3:

- La captura
- El almacenamiento
- La transmisión

y de ahí me lancé a resolver la parte fácil: la transmisión. La elección del formato fue prácticamente inmediata y fue en gran parte por el hecho de que en el Debconf/Debian Day 06 (Oaxtepec -- una excelente experiencia, ojalá todos los congresos pudieran ser en lugares así) hubo transmisión de video en vivo usando Theora/Vorbis encapsulado como un OGG. Cuando me conecté, el video se veía increíblemente nítido y fluido, el audio muy claro, no le pedía nada de nada a tecnologías privativas como Windows Media (uno de los formatos en que transmiten NASA Channel), y sobre todo, es libre y se podía ver desde cualquier sistema operativo (mínimo los soportados por VLC, también muchos otros que son libres, como totem y mplayer, y, como buenos sistemas privativos chafas que son, casi ningún reproductor de medios privativos).
Una vez decidido el formato, se necesitaba decidir tanto el servidor como el codificador. Se consideró usar VLC como servidor durante poco tiempo, ya que aunque VLC resulta algo así como una navaja suiza particularmente efectiva, no es un sistema muy robusto como para soportar una gran cantidad de usuarios conectados simultáneamente por unicast. El otro candidato inmediato fue el mismo que se usó en el Debconf: Icecast, siendo el complemento ideal de Icecast el dúo dinámico FFMPEG2Theora/OggFwd, producido por gente muy cercana (si no es que ellos mismos) a Icecast.
Estuve haciendo varias pruebas en la noche y en la mañana siguiente, antes de partir (tarde) hacia el servicio social, puse una pequeña "estación de TV" que transmitía continuamente un video musical guardado en formato AVI dentro de la misma máquina de escritorio, y luego, a manera de proof-of-concept, otra máquina que estoy adecuando para que sea mexinetica 1.1. Esto hizo que me diera cuenta de varias cosas, una de las más importantes, que estaba ligeramente falto de recursos de procesamiento en la máquina de escritorio, que casi desde el principio pensé para usar como servidor del streaming (aunque teóricamente iba a ser una computadora proporcionada por CONSOL mismo). Finalmente el no tener una máquina ultra-rápida resultó ser una ventaja y desventaja a la vez, como explicaré más abajo.

Una vez resuelto lo de la transmisión, decidí que era importante ocuparme de la captura, a mi parecer, el punto más problemático.
Estuve investigando sobre tarjetas de captura la misma noche del miércoles y encontré un driver llamado rivatv que era libre y permitía captura desde las tarjetas NVidia con características "VIVO"; yo tengo una con VIVO pero resultó ser demasiado reciente para el driver. El jueves en la tarde fui hasta la casa de un amigo mío desde preparatoria que muchos en LIDSOL conocen: Isaías Rodríguez (isurwas), quien me prestó una GeForce Ti4600 con VIVO.

En realidad fue una mala elección de tarjeta, ya que tuve muchísimos problemas para echarla a andar. Para no hacer el cuento (más) largo, probé 2 versiones de los siguientes programas/S.O.s/drivers:

rivatv, ffmpeg2theora, ffmpeg, Kernel 2.4.x/2.6.x, Debian GNU/Linux Sarge/Etch, Icecast2...

además de innumerables herramientas parecidas, como xawtv, dvgrab, etc..

Finalmente, la combinación "ganadora" resultó ser

Kernel 2.4.27 + rivatv 0.8.6 + ffmpeg2theora 0.15 + ffmpeg 0.4.9 + Debian Sarge + Icecast 2.3.1 ..

El lunes fui primero a clases, y después me regresé a mi casa tan rápido como pude para intentar tener el sistema listo y regresar a la 1:00 p.m. a dar el curso de HTML básico. Cuando estaba a punto de salir de regreso, me encontré a Clemens en el mensajero y me dijo que los cursos se habían cancelado por falta de quórum. Lástima, aunque me cayó "de perlas" porque así pude quedarme hasta las 3:30 probando diferentes permutaciones del Software mencionado con anterioridad.

Fui a mi clase de las 4:00 y luego estuve ayudando a poner los cables para poder tener la instalación de la red que amablemente nos proporcionaron en UNICA al día siguiente.

Para el martes en la mañana, pensaba que ya tenía todo listísimo usando dos pipes: ffmpeg extraería el video y se lo enviaría a ffmpeg2theora, quien a su vez se lo enviaría a oggfwd, para finalmente ser enviado al servidor Icecast. Pero no funcionó... después de intentar un buen rato, concluí que lo mejor sería hacer que ffmpeg grabara al disco duro lo que extraía y probar después cómo hacer el streaming sin perder las conferencias.
De hecho, esa fue la clave: grababa las conferencias al disco duro y mientras las conferencias se estaban grabando, ffmpeg2theora codificaba y enviaba los datos a oggfwd, para después enviarse a icecast2.

A partir de la primer conferencia de la tarde, estuvimos transmitiendo con un par de amigos míos conectándose para revisar la transmisión, de acuerdo a lo que dijeron, todo se veía bien. Como a la mitad de la última conferencia del día, a Hunab se le ocurrió que para que tuviéramos más audiencia sería útil poner un aviso en cofradía, así que lo hice, pero no contaba con el sistema de revisión de avisos y finalmente no apareció en cofradía sino hasta como 1 hora después de terminada la conferencia.

Se me ocurrió abrir un canal de chat en freenode para que las personas nos pudieran contactar directamente al changarro de transmisión ( #consol-streaming ).

El miércoles arrancamos con aproximadamente 4 personas en el chat que continuamente nos mandaban sus impresiones sobre la calidad de la transmisión, cuando tenían problemas e incluso qué pensaban de lo que estaba diciendo el expositor. Conforme fue pasando el tiempo, se fueron conectando más personas, de distintos lugares de la UNAM e incluso del país. Probamos varias calidades de transmisión para finalmente determinar que la calidad "1" para el video era la ideal (aguantaba aproximadamente 10~11 personas conectadas de manera simultánea); el audio siempre fue lo suficientemente claro.

Debo decir que es el CONSOL al que más conferencias he entrado y que realmente las que más me han gustado, han sido las de política y rollos filosóficos, como la que dio Beatriz Busaniche sobre los DRMs al final del miércoles. Una de las cosas en las que coincidimos en nuestro escepticismo sobre la supuesta oposición de Steve Jobs a los DRMs: sí, yo también lo creeré, pero el día en que ninguno de los productos de apple tenga DRM. De hecho es la principal razón por la cual nunca jamás me ha interesado tener un iPod: odio iTunes. Sí, sé que hay maneras incluso de ponerle GNU/Linux a una iPod, pero me da flojera (además prefiero meterle mano al DS). Mi teoría de que no se trata más que de una vil habladuría la declaración de Steve Jobs parece estar reforzada por el hecho de que "vil" Gates aplicó la "me too".
¡Bah!

Bueno, continuaré con mi crónica mañana.

Saludos..


< Back to blog

This site doesn't use cookies, does not log IPs and does not track you in any way.