2011-05-09 34 views
6

Tengo una pregunta muy básica con respecto a Android y ffmpeg. Obtuve ffmpeg desde http://bambuser.com/opensource y pude compilarlo para ARM.¿Cómo uso ffmpeg en Android?

Los resultados son los archivos binarios (ffmpeg), así como varios archivos libsomething.so.

Mi pregunta es: ¿esto es suficiente para decodificar videos? ¿Cómo uso ffmpeg entonces?

para cargar la biblioteca que tengo:

static { 
    System.load("/data/data/com.package/lib/libavcodec.so"); 
} 

Se carga bien. ¿Pero entonces qué?

Más explicación: Vi otros proyectos donde las personas tenían su fuente de ffmpeg en un directorio JNI en el proyecto. También crearon algunos archivos Android.mk y algunos códigos C junto con ellos. ¿Lo necesitaría yo también? ¿Por qué debería crear los archivos .so primero y luego copiar el código fuente de ffmpeg nuevamente?

Sé que el NDK y cómo debería funcionar, pero nunca he visto un ejemplo de cómo se podría realmente llamar a funciones ffmpeg usarlo, porque la gente parece estar escondiendo sus implementaciones (que es una especie de comprensible) pero ni siquiera dando punteros o ejemplos útiles.

Digamos que quería descifrar un archivo de vídeo. ¿Qué tipo de métodos nativos necesitaría implementar? ¿Cómo ejecuto el proyecto? ¿Qué tipos de datos deben pasarse? etc. Ciertamente hay algunas personas aquí que al menos han hecho eso, lo sé buscando durante horas y horas.

+0

cómo compiló ffmpeg descargado del enlace http://bambuser.com/opensource –

+0

@Swathi Eso no fue muy difícil de hacer. Simplemente siga las instrucciones que se encuentran dentro de esta carpeta en el documento 'INSTALL'. – slhck

+0

gracias por la respuesta rápida :) Lo estoy descargando, seguiré las instrucciones en él. Estoy trabajando en Windows, ¿requiere alguna otra configuración? –

Respuesta

6

Para su primera pregunta;

Solo crear no es suficiente para el uso correcto de las librerías ffmpeg. También debe envolver esos archivos en el orden correcto. Debido a que estos archivos NEDED otras bibliotecas en el tiempo del enlace. Puede visualizar información de encabezado de ese archivo, usando.

objdump -x libavcodec.so | grep NEEDED 

Así que debe envolver estos archivos tan a través de Android.mk. Puede consultar este link.

El segundo;

Solo necesita los archivos de encabezado del proyecto ffmpeg. La implementación se vinculará desde las bibliotecas so. Eso es quizás porque los desarrolladores no se molestaron en filtrar los archivos de encabezado.

Y el último;

sus pensamientos parecen correctos por el momento, la mayoría de los desarrolladores actuales están luchando para usar ffmpeg pero carecen de documentación y códigos de muestra.

+0

Gracias por la información ... Construyo mi lib de ffmpeg y tengo tantos archivos ..Quiero desarrollar una aplicación que comprima el tamaño del archivo de video .. Entonces, ¿qué debo hacer ... quiero decir, cuáles son los métodos disponibles para comprimir videos en ffmpeg? ¿Me pueden ayudar? –

+0

@ Swap-IOS-Android estoy enfrentando el mismo problema, ¿Tienes alguna solución? –

+0

@ParagChauhan no utilicé javac lib en lugar de ffmpeg para convertir mis videos –