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

  • Construyendo FFmpeg para Android para usar argumentos de línea de comandos
  • Arm-linux-androideabi-gcc no puede crear un ejecutable - compilar ffmpeg para dispositivos android armeabi
  • Cómo utilizar el último FFMPEG en el proyecto de estudio de Android?
  • Android- Cómo compilar ffmpeg para todas las arquitecturas cpu
  • Android: ¿Cómo configurar la última versión de FFMPEG en android studio?
  • Añadir filtros a un video como Instagram
  • Decodificación de vídeo con FFMpeg para Android
  • Cómo cargar un archivo de vídeo (ubicado en la carpeta de activos) en NDK?
  • Problemas con la línea de comandos de ffmpeg en android
  • ¿Puede VideoView desmontarse y volver a unirse sin detener el flujo?
  • Uso de FFmpeg con Android-NDK
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.