Avances con Flumotion
(This is a reprint of the original post)
Estoy de vacaciones, y con muchas ganas de salir al monte otra vez después de que una avería en ambos pies me haya tenido parado durante los últimos dos meses. Sin embargo, no quería irme sin antes tratar de cumplir mi compromiso de ayudar a Manrique con la parte técnica de la videoconferencia que va a dar próximamente. Ya hace unas semanas empecé a investigar, y conseguí capturar video desde una videocámara digital. Ahora me he concentrado en la otra parte, la codificación y retransmisión del stream, usando Flumotion 0.1.9. Lo que he descubierto es que, debajo de una fachada aparentemente fácil, Flumotion es muy complejo, y el manual apenas ayuda. A base de prueba y error (mi nivel de Python no llega mucho más allá, aunque trato de remediarlo), descubrí algunos de los paquetes de los que depende Flumotion: gstreamer0.8-ffmpeg, gstreamer0.8-dv, gstreamer0.8-theora, gstreamer0.8-vorbis, python-gst, python-twisted, python-pyopenssl y seguro que alguno más que me dejo en el tintero. Con eso, y después de muchas pruebas, conseguí crear un stream con audio y video de prueba usando una carta de ajuste. La secuencia de órdenes que use fue la siguiente (la copio aquí porque difiere un poco del manual):
$ flumotion-manager -d 3 conf/managers/default/planet.xml --certificate conf/default.pem $ flumotion-worker -d 4 -u user -p test $ flumotion-admin -d 4
Ver el stream es sencillo:
$ totem http://localhost:8800/
Por algún motivo, no siempre consigo que arranquen todos los procesos del Flumotion. Sin embargo, vuelvo a crearlos y entonces funciona. Gracias a Google, seguro que alguien con experiencia en los temas de vídeo con Linux acaba leyendo esto y le parece obvio, pero es la primera vez que me meto en este campo y empiezo desde cero.
Bien, cuando ya creía que la victoria estaba próxima, me tropecé con otra dificultad. El Flumotion usa gstreamer para capturar el video de la cámara, mientras que Kino accede directamente. Es decir, que mi triunfo del otro día no sirve. Cuando trato de que Flumotion capture el video, me saca un mensaje de error muy raro (los permisos del dispositivo están bien, ya lo comprobé). Investigando un poco, resulta que no soy el único que tropezó con el mismo error recientemente. Incluso hay un parche, que efectivamente evita el error, pero Flumotion se dedica entonces a consumir toda la CPU que tiene a su alcance, y no acaba de funcionar. Al final, después de varias horas y sin ver nada claro, decidí dejarlo para otro momento. Quizás a la vuelta del monte, y con las neuronas vigorizadas por el aire limpio, consiga rematar la tarea.