Compilar ffmpeg con android ndk r5b

Compilar ffmpeg con android ndk r5b.

Ffmpeg 0.6.1

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?

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

  • GC y onTouch causan un error de señal fatal 11 (SIGSEGV) en la aplicación que utiliza ffmpeg a través de ndk
  • Ajustar la funcionalidad de vídeo en una aplicación Android
  • Comprimir video como whatsapp
  • Ffmpeg 10.04 no pudo encontrar parámetros de codec
  • Recuperar la carátula del álbum utilizando FFmpeg
  • Ffmpeg con un conjunto de archivos de imagen no formateado como% d.jpg
  • Concatenar archivos mp4 en Android usando halfninja ffmpeg
  • ¿Cómo descubrir el ancho de framebuffer en android?
  • Cómo convertir vídeo para Android usando FFMPEG
  • GStreamer en Android
  • Java.io.IOException: Error ejecutando exec () Directorio de trabajo: null Medio ambiente: null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.