Cómo compilar ffmpeg-2.2.2 en windows con cygwin y android ndk r9c

Alguien compiló correctamente

Ffmpeg-2.2.2 en windows con cygwin y android ndkr9c?

¿O puede indicarme un tutorial actualizado?

( Http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/ no está funcionando para mí obtiene Makefile: 2: config.mak: No hay tal archivo … cygwin admin devel Gnome está completamente instalado y make -v ok)

Necesito convertir un video a imágenes (para live-wallpaper) … ¿sabes un método mejor o ffmpeg es el mejor?

Gracias

3 Solutions collect form web for “Cómo compilar ffmpeg-2.2.2 en windows con cygwin y android ndk r9c”

Comience con el tutorial de Roman. Los siguientes cambios se aplican a Windows: debe utilizar el NDK make.exe , no el de cygwin . Por lo tanto, simplemente escribí d:/dev/Android/ndk/prebuilt/windows-x86_64/bin/make.exe en mi build_android.sh . Por alguna extraña razón, no podía correr make clean – pero simplemente opté por ignorar este problema por ahora.

Siguiendo el tutorial, no olvide configurar

 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64 

Además, use rutas de estilo mixto, es decir, d:/dev/whatever y no cygwin style /cygdrive/d/dev/whatever . Tenga cuidado de no utilizar rutas con espacios – ni para la instalación de ndk , ni para ffmpeg git clon.

Con ffmpeg 2.2 , puede utilizar --target-os=android para ./configure , en lugar de ./configure archivo ./configure como se describe en el paso 2 .

En mi máquina, no tenía comandos pr y od . Elegí simplemente fingirlas, escribiendo

 echo 'cat $3' > ./pr echo 'echo od' > ./od 

Éstos no estropean la estructura.

Por lo tanto, mi proceso de construcción es el siguiente:

 git clean -d -f -x ./configure --enable-shared --disable-static --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-doc --disable-symver --cross-prefix=d:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi- --target-os=android --arch=arm --enable-cross-compile --sysroot=d:/android-ndk-r9c/platforms/android-9/arch-arm/ --extra-cflags="-Os -fpic" 

La compilación muestra algunas advertencias, pero todos los archivos .so se producen.

Para activar NEON, utilicé

 --extra-cflags="-Os -fpic -marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon" --extra-ldflags="-Wl,--fix-cortex-a8" 

Ahora, libavcodec.so ya no se podía construir: demasiados archivos en la lista de vinculadores. Así que, después de que se estrelló, lancé el vinculador manualmente:

 $ d:/Dev/Android/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64//bin/arm-linux-androideabi-gcc -shared -Wl,-Bsymbolic -Wl,--version-script,libavcodec/libavcodec.ver -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--fix-cortex-a8 --sysroot=d:/Dev/Android/ndk/platforms/android-9/arch-arm/ -isysroot d:/Dev/Android/ndk/platforms/android-9/arch-arm/ -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample @libavcodec/libavcodec.list -lswresample -lavutil -lm -lz -pthread -o libavcodec/libavcodec.so.55 

Repare el archivo library.mak la siguiente manera: for $(SUBDIR)$(SLIBNAME_WITH_MAJOR) , replace

 $$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) 

con

 $(Q)echo >$(SUBDIR)lib$(NAME).list $(wordlist 1,400,$(filter %.o,$$<)) $(Q)echo >>$(SUBDIR)lib$(NAME).list $(wordlist 401,999,$(filter %.o,$$<)) $$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) @$(SUBDIR)lib$(NAME).list $(FFEXTRALIBS) 

Y de allí, proceda sin problemas.

PS: Utilicé make -n libavcodec/libavcodec.so.55 para preparar el archivo de respuestas libavcodec/libavcodec.list .

PPS: Aquí hay otro artículo que ayuda a construir y usar ffmpeg para Android.

Puedes usar esto como build_android.sh lo probé y funcionó conmigo

 #!/bin/bash NDK=D:/android/ndk/android-ndk-r10d SYSROOT=$NDK/platforms/android-8/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows function build_one { ./configure \ --prefix=$PREFIX \ --disable-shared \ --enable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make clean make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one 

También necesita ejecutar estos comandos:

 dos2unix build_android.sh chmod +x build_android.sh ./build_android.sh 

Utilice este tutorial como referencia

Construirlo en Ubuntu (Guest) y copiar lib (sub carpeta en / andoid-ndk / sources / ffmpeg / android) carpeta a Windows (Host). Lo probé para Windows pero terminó con muchos errores, finalmente instaló Ubuntu (Free) En la caja virtual. También tendrás que descargar Andoid (SDK, Ndk) y JDK. Esto puede sonar extraño, pero funcionó para mí.

  • Ventana de superposición del sistema causa problemas de tacto para el teclado y el botón Atrás
  • Dispositivo Android no visto por ADB pero accesible desde Windows XP
  • ¿Es posible cambiar dónde se guardan los dispositivos virtuales Android?
  • Proguard error: Esperando la clase seperator de ruta - no estoy seguro donde necesito poner un camino entre comillas
  • Error de actualización del SDK
  • Cómo utilizar getWindowManager () por otro archivo java
  • Error al abrir el dispositivo HAX (Android)
  • Error de Calabash. No se pudo mostrar certificados en keystore. Probablemente porque el pase era incorrecto. (RuntimeError)
  • Cambiar el tamaño de una ventana Windroy
  • Cuenta de método jar / dex Android en ventanas
  • ¿Cómo generar apk en el servidor con el nombre de la aplicación cambiante y el icono de forma automática en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.