MediaRender: representación de flujos multimedia

domingo, 18 de octubre de 2009

El primer hito de mi proyecto consistirá en la elaboración de un programa capaz de representar un determinado flujo multimedia a través de la salida habitual de un PC (monitor y altavoces).

Para ello usaré C++ como lenguaje de implementación. El middleware, como se comentó en entradas anteriores, será ZeroC Ice, que es completamente libre.

El programa tendrá varias formas de representar un flujo multimedia y, alguna de ellas, puede que no use las salidas estándar del PC, ya que por ejemplo se puede querer almacenar lo recibido de dicho flujo multimedia en un fichero. Por ello, el programa deberá permitir tener "plugins" para tener así diferentes maneras de representar el flujo. En principio implementaré alguna para tener un prototipo funcional que represente por el monitor un vídeo usando bien las librería de VLC o la de Gstreamer.

Primeros pasos: selección de herramientas

Como cualquier proyecto lo primero debe ser saber de que herramientas dispongo y cuáles de ellas utilizaré para desarrollar el conjunto de Argos.

La primera elección, ya que condicionará la elección de los lenguajes de programación y las librerías que podré usar, será la del middleware. Entre los middlewares que conozco (Java RMI, Corba, ZeroC Ice, Webservices) me he decantado por ZeroC Ice.

Este middleware es orientado a objetos y, además, tiene bindings para muchos lenguajes de programación (C++, Java, Python...), por lo que es muy adecuado para mi proyecto, ya que me permite las diferentes partes de éste programadas en diferentes lenguajes según las necesidades.

Otra ventaja que proporciona ZeroC Ice es que también está soportado en plataformas menos estándares que un PC, como dispositivos pequeños (con Ice Embeded), el iPhone y teléfonos Android, tan de moda ahora.

Como he mencionado antes, ZeroC Ice permite el uso de diferentes lenguajes de programación (todos con soporte en GNU), por lo que mis diferentes aplicaciones estarán implementadas, casi con total seguridad, en C/C++ o en Python.

Lo siguiente en el proyecto será definir la primera aplicación que escribiré, pero esa es otra historia...

Presentación

jueves, 1 de octubre de 2009

Mi nombre es José-Luis. Soy estudiante de Ingeniería Superior Informática en la Escuela Superior de Informática de Ciudad Real, perteneciente a la Universidad de Castilla-la Mancha. Me falta "poco" para terminar la carrera. Ese "poco" se limita al Proyecto Fin de Carrera. Aprovechando que el proyecto tenía envergadura suficiente y sugerido por mi director de proyecto, David Villa, decidí presentarme con mi PFC al III Concurso Universitario de Software Libre.

La finalidad de este proyecto es crear un sistema distribuido donde los nodos sean productores de flujos multimedia (audio, vídeo, etc.), consumidores de estos o ambas cosas a la vez. Cada uno de estos nodos podrán ser conectados entre ellos, siempre un productor con, al menos, un consumidor.

Típicamente, los nodos del sistema serán ordenadores con el software necesario para consumir o producir un flujo multimedia. Por ejemplo, una ventana podrá ser utilizada como fuente de vídeo y ser conectada con algún nodo consumidor, de forma que, por ejemplo, este nodo guarde dicho vídeo en un determinado formato en un fichero en otro ordenador.

Otros nodos que se pretenden implementar son aquellos que utilizan un hardware diferente a un ordenador. Por ejemplo, Nintendo DS, Chumby, PSP, cámaras IP, etcétera. Todo ello se implementará de forma opcional para tener más tipos de nodos.

El resultado del proyectos será una infraestructura que permita la interconexión de los diferentes nodos mediante un editor gráfico, en el cual se especifiquen los nodos a interconectar.

 
Theme by New wp themes | Bloggerized by Dhampire