Media4j, un framework para dominar JMF

Media4j es un framework construido sobre el API multimedia para Java, JMF, para simplificar su uso. Está diseñado para ayudar a aquellos programadores Java que quieran añadir características multimedia a sus aplicaciones sin necesidad de estudiar JMF.

Su origen se remonta a mis ultimos años de Universidad, cuando conocí JMF. Entonces estaba empezando mi Proyecto Fin de Carrera, una aplicación de videoconferencia en Java, transparente a dispositivos NAT/Firewall (NAT Traversal) y que usaba SIP para la gestión de sesiones. Y además tuve que realizar una práctica tipo aplicación p2p (emule, etc) pero para reproducir contenidos multimedia en tiempo real en vez de descargarlos.

Como os podeis imaginar las horas que pasé peleandome con JMF fueron muchas, sus defectos y problemas son abundantes, todo lo contrario que la documentación. En realidad las tareas que tenía que desarrollar eran sencillas, leer de ficheros, capturar, enviar por internet, recibir, reproducir, etc.

Llegué a la conclusión de que era necesario un framework que encapsulara JMF para facilitar la programación de las funciones multimedia más típicas. La motivación la saque de mi obsesión por hacer de mi proyecto algo más que la última nota de mi expediente para obtener el Título.

Así nació Media4j. Su idea es disponer de un conjunto de procesos para trabajar con datos multimedia que pueden concatenarse entre sí para realizar tareas más complejas. Por ejemplo, existe un proceso para leer el contenido multimedia de un fichero, otro para cambiar el encoding y otro para enviar por internet, si los concatenamos ya tenemos un emisor de contenidos multimedia por internet!

Está diseñado para ser extensible, diseñar nuevos procesos es sencillo, y abierto, en caso necesario permite usar código JMF entre la concatenación de procesos.

El 15 de marzo del 2006 publiqué la primera versión de Media4j bajo licencia BSD en el portal java.dev.net, podéis echarle un vistazo en la dirección http://media4j.dev.java.net.
Cualquier aporte o comentario será bien recibido!