06 marzo 2009

Instalar JMF 2.1.1 Linux Performance Pack en Ubuntu

Este tutorial es para la version 2.1.1e de JMF en su versión Linux Performance Pack (fichero con el nombre jmf-2_1_1e-linux-i586.bin).

Resulta que el instalador oficial no funciona correctamente en Ubuntu, dando el siguiente error:
Unpacking...
tail: no se puede abrir «+309» para lectura: No existe el fichero ó directorio
Extracting...
./install.sfx.30138: 1: cannot open ==: No such file
./install.sfx.30138: 1: ==: not found
./install.sfx.30138: 3: Syntax error: ")" unexpected
La solución es simple:

PASO 1: Bajamos el Java Media Framework de su web y lo guardamos por ejemplo en /home/usuario/jmf-2_1_1e-linux-i586.bin

PASO 2: Arreglar el instalador: a este le falta el parámetro "-n" al comando tail que usa internamente. Mejor usar sed que editores interactivos como vim o gedit, pues estos pueden alterar el instalador:
$ cd /home/usuario
$ cat jmf-2_1_1e-linux-i586.bin | sed 's/tail +309 $0 > $outname/tail -n +309 $0 > $outname/' > jmf-2_1_1e-linux-i586.bin.fixed 
PASO 3: Ejecutar el instalador arreglado concediéndole antes permisos de ejecución:
$ chmod u+x jmf-2_1_1e-linux-i586.bin.fixed
$ cd /directorio/donde/queremos/instalar/jmf
$ /home/usuario/jmf-2_1_1e-linux-i586.bin.fixed
Luego podemos pasar a configurar JMF siguiendo los pasos de este enlace (esta entrada cubre solamente el paso que falla 2: Run the Installation program to extract JMF to a directory).

10 comentarios:

Unknown dijo...

Un 10 por tu post. Me tire un día entero intentando instalar JMF en ubuntu y no fui capaz, y ya iba a empezar a usarlo en windows porque lo necesito para mi proyecto fin de master. Todas las soluciones que encontraba era para el otro instalador, el .zip, el cual no trae las librerias .so y por eso no me funcionaba(supongo que algo haría mal no se...).

Si sabes de algún sitio de JMF con ejemplos didacticos te lo agradecería.

Muchas gracias!!!

olegueret dijo...

¡Me alegro que te haya sido util!

La mejor fuente de información sobre JMF es sin duda la guia de programación de la versión 1.0 (que sirve igual para la versión 2.x).

Otro lugar práctico es la sección Code Samples and Apps de la documentación oficial, en especial el enlace 2.1 - Sample code

olegueret dijo...

@transformaciones geometricas: me comentabas por otro canal que te surgió un problema con un error "native libraries not found" en un test que hiciste.

A mí no me sucedió, pero aquí tienes algunas cosas que puedes comprobar:

1.- Tu versión de Ubuntu: yo hice las pruebas con 8.04 (Hardy) y 8.10 (Intrepid) y en ambos casos funcionaba bien.

2.- Comprueba que dentro del directorio lib de JMF ya instalado existen ficheros .so (son librerias nativas). Por ejemplo, yo tengo libjmcvid.so, libjmgsm.so, libjmh263enc.so entre otros.

3.- Asegúrate que has completado todos los pasos de la instalación, en especial el 3 (CLASSPATH) y el 4 (LD_LIBRARY_PATH).
Creo que setenv que pone en el enlace no funciona con la shell de ubuntu, debes usar export, es decir, debes añadir en tu /home/someuser/.bashrc estas líneas, apuntando JMFHOME donde tengas tu JMF:

export JMFHOME=/directorio/donde/esta/JMF-2.1.1e
export CLASSPATH=$JMFHOME/lib/jmf.jar:.:${CLASSPATH}
export LD_LIBRARY_PATH=$JMFHOME/lib:${LD_LIBRARY_PATH}

4.- Comprueba que JMF detecta correctamente las librerías nativas:
$ cd /directorio/donde/esta/JMF-2.1.1e/bin
$ ./jmfregistry
En el JMF Registry Editor, mira dentro de la pestaña "Plugins" y dentro de ella, en "Codec". Deberían aparecer codecs que incluyan "Native" en el nombre, p.ej. "com.sun.media.codec.video.cinepak.NativeDecoder". Si aparecen ahí, indica que JMF los detecta correctamente: el problema debe estar en el test que probaste.

5.- Comprueba que JMF puede reproducir un vídeo o audio con el JMStudio (te recomiendo que pruebes con un MPEG):
$ cd /directorio/donde/esta/JMF-2.1.1e/bin
$ ./jmstudio

6. Comprueba que añades al classpath de tu test las clases de JMF (no debería ser necesario si haces el paso 3)
$ java -cp .:/directorio/donde/esta/JMF-2.1.1e/lib/jmf.jar MiTest

Unknown dijo...

Gracias de nuevo Oleguer, ya lo había comprobado todo, era que el eclipse me estaba utilizando su JVM, y yo estaba copiando los .jar,.so en otro sitio...

Ahora estoy intentando instalar QTJambi, ¿no lo habrás instalado por casualidad, no?

Muchas gracias

:D

olegueret dijo...

Pues no, sólo probé las demos de Jambi en su día pero no intenté compilar nada.

Mira si te interesa o no el Jambi pq han dejado de desarrollarlo (aunque dan soporte hasta marzo del 2010)...

Sigfrido dijo...

Si tienes dudas puedes ver en esta pagina un tutorial muy sencillo y paso a paso, para instalar el JMF en Ubuntu:


http://desarrolladores-poo.blogspot.com/2010/01/instalar-java-media-framework-en-ubuntu.html

Yehosua Carbajal Barrera dijo...

Muchisimas gracias amigo!! Te la sabes, me ayudo mucho tu post. GRACIAS!!!

Unknown dijo...

A mi me pasa que tras fallar el tail, esta nueva instalación que propones no funciona. Cuando ejecuto el comando sh ... sencillamente no sucede nada (por cierto, olvidaste escribir sh antes de ejecutar tu archivo modificado. El .fixed no es un ejecutable en si mismo, no?). En fin, probé reiniciando, pero tras el primer intento fallido ya no puedo volver a instalar el jfm y quedé a medio camino, sin poder ir ni volver. Que hago?

Unknown dijo...

Perdon, me desdigo. No estaba siguiendo bien tus instrucciones. Bajé de nuevo el archivo. Y no fue necesario usar sh. En fin, bajar de nuevo el archivo era fundamental, quizas porque el original había quedado retocado tras fallar el tail, no se. Gracias!

Unknown dijo...

hermano infinitas gracias! me costo mucho trabajo, por poco montaba una maquina virtual con windows pero gracias a ti pude instalar el JMF, saludos hermano