Compilar FFMPEG para el uso de la línea de comandos

He estado intentando compilar FFMPEG para poder usarlo con mi aplicación de Android con comandos. El resultado debe ser 1 archivo estático, "ffmpeg", que no depende del paquete. No hay archivos.

Me las arreglé para compilarlo con guardianProject y todo está funcionando, pero la fuente era demasiado vieja y carece de opciones que necesito. Estoy usando la última Ubuntu en VirtualBox, todos los elementos esenciales se instalan y actualizan (gawk, yasm, aptitude, etc …).

Hay varios ejemplos en la web. Aquí están los problemas que he experimentado con cada una de las opciones que intenté. Agradecería ayuda con cualquiera de los siguientes errores:

  1. Guardian proyecto – Me las arreglé para compilarlo y obtener el archivo ffmpeg, pero utiliza una versión antigua de ffmpeg que no incluye la "-movFlags faststart" . He intentado lanzar el nuevo ffmpeg (2.3.3), pero sólo lanza error. (Corrí git submódulo init y actualización)

  2. JayH5 – Un archivo de compilación más genérico que básicamente debería funcionar con cada ffmpeg. He actualizado el script de construcción para trabajar con el último NDK y parece estar funcionando pero que falla en /home/dor/Desktop/ndk/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail. He leído sobre esto y parece requerir un hack, que no entiendo cómo implementar.

  3. Trovao – este es un proyecto muy bonito y la secuencia de comandos de compilación incluso descarga las últimas fuentes ffmpeg y x264, e incluso logré compilarlo en archivos FFMPEG y X264 pero cuando lo uso, obtengo este error: could not load library "libx264.so.142 cual es extraño, ya que x264 está ahí y toda la idea de este proyecto es cancelar la necesidad de archivos .so.

Le agradecería ayudar con averiguar cómo resolver cualquiera de los problemas. Yo prefiero usar el script de construcción de JayH5, ya que parece el más directo hacia fuera allí …

Archivo de construcción JayH5:

 #!/bin/bash # set the base path to your Android NDK (or export NDK to environment) if [[ "x$NDK_BASE" == "x" ]]; then NDK_BASE=/opt/android-ndk echo "No NDK_BASE set, using $NDK_BASE" fi NDK_PLATFORM_VERSION=14 NDK_ABI=arm NDK_COMPILER_VERSION=4.8 NDK_SYSROOT=$NDK_BASE/platforms/android-$NDK_PLATFORM_VERSION/arch-$NDK_ABI NDK_UNAME=`uname -s | tr '[AZ]' '[az]'` # Convert Linux -> linux HOST=$NDK_ABI-linux-androideabi NDK_TOOLCHAIN_BASE=$NDK_BASE/toolchains/$HOST-$NDK_COMPILER_VERSION/prebuilt/$NDK_UNAME-x86 CC="$NDK_TOOLCHAIN_BASE/bin/$HOST-gcc --sysroot=$NDK_SYSROOT" LD=$NDK_TOOLCHAIN_BASE/bin/$HOST-ld BUILD_PATH=build/ffmpeg ./configure \ $DEBUG_FLAG \ --arch=arm \ --target-os=linux \ --enable-runtime-cpudetect \ --enable-pic \ --disable-shared \ --enable-static \ --cross-prefix=$NDK_TOOLCHAIN_BASE/bin/$NDK_ABI-linux-androideabi- \ --sysroot="$NDK_SYSROOT" \ --extra-cflags="-march=armv7-a -mfloat-abi=softfp -fPIC -DANDROID" \ --extra-ldflags="" \ --enable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-network \ 

Después de 2 días de compilación de archivos FFMPEG que simplemente no funcionó, finalmente tuve éxito!

En el archivo build.sh anterior, sólo tiene que agregar estas 4 líneas y la parte inferior para evitar que el prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail .

Añadir al archivo:

 $ADDITIONAL_CONFIGURE_FLAG make clean make make install 

No se olvide de chmod 775 ffmpeg archivo chmod 775 ffmpeg después de que el proceso ha terminado. Realmente espero que esto ayude a otros!

Si desea FFMPEG con soporte libX264, utilice este proyecto, simplemente perfecto. https://github.com/hiteshsondhi88/ffmpeg-android/

  • ¿Dónde hay un lugar donde el reproductor ffmpeg se conecta al servidor y empieza a almacenar en búfer?
  • Muxing Android MediaCodec codificado H264 paquetes en RTMP
  • Android ffmpeg y aceleración de hardware
  • ¿Cómo ejecutar los comandos ffmpeg de línea de comandos en el android?
  • Reproductor de vídeo Android con NDK, OpenGL ES y FFmpeg
  • Añadir filtros a un video como Instagram
  • HLS streaming en Android
  • Android: concatenar dos videos
  • ¿Cómo puedo reducir el tamaño de video capturado por la cámara predeterminada usando FFMPEG en Android?
  • Video ffmpeg comprimido pero no se reproduce en el navegador
  • Android NDK. Cómo reproducir video.
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.