Compilar ffmpeg con android ndk r5b
Compilar ffmpeg con android ndk r5b.
Ffmpeg 0.6.1
- Excluyendo los dispositivos ARMv5 y ARMv6 de Google Play
- Android NDK: Conseguir java.lang.UnsatisfiedLinkError: dlopen falló: no puede localizar el símbolo "señal" referido por "libffmpeg.so"
- Creación de un ejecutable android ffmpeg
- FFMpeg Android Stagefright SIGSEGV error (decodificación h264)
- Video ffmpeg comprimido pero no se reproduce en el navegador
Android ndk r5b
Cygwin 1.7
Url de referencia de compilación: http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html
Pero, ffmpeg ./configure error de resultado! (Debajo del archivo config.err)
check_cc BEGIN /tmp/ffconf.GlDiY1P8.c 1 int main(void){ return 0; } END /tmp/ffconf.GlDiY1P8.c /android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o /tmp/ffconf.1kQLpGaU.o /tmp/ffconf.GlDiY1P8.c arm-eabi-gcc.exe: /tmp/ffconf.GlDiY1P8.c: No such file or directory arm-eabi-gcc.exe: no input files C compiler test failed.
Así que, sólo intento código de prueba.
// test.c code int main(){ return 0; }
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o ./test.c
¡¡¡¡De acuerdo!!!! No hay problema.
Pero, cp ./test.c / tmp (copia a / tmp)
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o /tmp/test.c
arm-eabi-gcc.exe: /tmp/test.c: No such file or directory arm-eabi-gcc.exe: no input files
¡¡¡fallar!!! Diferencia es sólo ruta de archivo. / Tmp existe, y el permiso es correcto. /home/test.c es el mismo resultado.
Que esta mal?
- FFmpeg vs Vitamio
- Cómo reducir el tamaño de mp4 mediante el uso de FFMPEG lib en android
- ffmpeg para un android (usando el tutorial: "ffmpeg y Android.mk")
- Cómo utilizar el último FFMPEG en el proyecto de estudio de Android?
- Hardware acelerado FFmpeg en android?
- ¿Cómo cambiar el tempo de audio y la individualidad de tono usando ffmpeg?
- FFMPEG para Android toolchains: brazo-linux-armeabi-eabi-pkg-config - hay algún toolchain que contenga la herramienta pkg-config
- Recorte de vídeo con FFMpeg es muy lento
He tenido un tiempo duro para conseguir que funcione en Windows, pero finalmente he logrado hacerlo! Los mensajes anteriores eran correctos: hay un problema con las rutas Cygwin y las rutas de Windows. He intentado la solución descrita en el poste arriba como la primera cosa, pero no estaba trabajando. Finalmente he entendido la razón: incluso si usted pone en su archivo build_android.sh la ruta de acceso de Windows, la configuración de FFmpeg todavía contiene la ruta equivocada.
Así que en mi caso he cambiado parcialmente el archivo de configuración en el directorio raíz de FFmpeg de:
#set temporary file name : ${TMPDIR:=$TEMPDIR} : ${TMPDIR:=$TMP} : ${TMPDIR:=/tmp}
a esto:
# set temporary file name #: ${TMPDIR:=$TEMPDIR} #: ${TMPDIR:=$TMP} : ${TMPDIR:=D:/InstallTools/Android/Cygwin_Root/tmp}
Después de esto, lo conseguí compilar.
No se establece el directorio tmp. Puede configurarlo en / etc / profile o simplemente en el terminal con la export TMPDIR=/your/tmp/directory
. Aviso: 1. Si compila con cygwin, el directorio debe ser como D: / tmp. No puede utilizar / cygdrive / d / tmp. 2. Debe tener el permiso de la carpeta.
No pude conseguir que esto funcione tampoco, tenía exactamente el mismo problema. Sin embargo, pude compilar usando "android-ndk-r4". No estoy seguro en este momento lo que está causando el problema, pero si alguna vez llegar a averiguarlo voy a publicar eso también.
Así que por ahora la solución es usar ndk r4.
Me las arreglé para construirlo, usando NDK R6, cygwin. De hecho, no soporta / cydrive / paths, simplemente usa caminos como windows; Ejemplo a continuación:
NDK=e:/AndroidSDK/NDK6 PLATFORM=$NDK/platforms/android-9/arch-arm/ PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows
Si no ha solucionado este problema, compruebe la última parte de config.log en el directorio ffmpeg; Es más probable un problema de parámetro de ruta o CC.
He estado teniendo el mismo problema con r6. He intentado la sugerencia de Lambage con r4 pero todavía no podía conseguir esto para trabajar.
He estado buscando en el problema bastante y creo que he descubierto la razón.
1) configure está llamando al compilador cruzado androide que es un archivo .exe de windows.
2) Lo está llamando a través de cygwin que utiliza las convenciones de nomenclatura de archivos unix. EG / cygdrive / c / en lugar del directorio C: \
3) Dice en la documentación de la cadena de herramientas NDK de Android que los compiladores cruzados NO aceptan archivos de estilo cygwin (fuente: NDK / docs / STANDALONE_TOOLCHAIN.html):
5.1 / Soporte de Windows:
Los binarios de Windows no dependen de Cygwin. La buena noticia es que son más rápidos, la mala noticia es que no entienden la especificación de ruta Cygwin como / cygdrive / c / foo / bar (en lugar de C: / foo / bar).
Todavía estoy tratando de encontrar una manera de hacer esto. Si lo resuelvo entonces volveré y editaré este post … tbc