Estoy intentando construir FFMPEG con libx264 para Android.Construye FFMPEG con x264 para Android
Puedo construir y usar FFMPEG para Android con éxito, pero me di cuenta de que necesito la capacidad de codificar, por lo tanto, estoy tratando de compilar FFMPEG con x264.
estoy usando este tutorial para construir FFmpeg para Android http://www.roman10.net/how-to-build-ffmpeg-for-android/
Cuando se trata de construir FFMPEG consigo un error:
"ERROR: libx264 not found"
Y en mi registro que dice:
"/usr/local/lib/libx264.a: could not read symbols: Archive has no index; run ranlib to add one..."
Tengo las últimas versiones de FFMPEG y x264. entiendo que FFMPEG busca la cabecera y las bibliotecas en usr/lib y usr/include, por lo que con el fin de hacer que encontrar x264 utilizo los cflags y ldflags:
- --extra-cflags = "-I/usr/local/include "
- --extra-ldflags =" -L/usr/local/lib "
he tratado x264 edificio con muchas opciones diferentes que otras personas en Internet han dicho que Necesito. p.ej. --enable-shared, --enable-static, --disable-pthreads etc. Algunos foros dicen habilitar esto, otros dicen que no deshabilitar eso.
Cualquier ayuda sería muy apreciada, Gracias
EDIT:
Si construyo FFmpeg con los comandos simples para incluir libx264 entonces funciona. es decir.
./configure --enable-gpl --enable-libx264 --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --enable-static --enable-shared
Sin embargo, lo necesito para Android. El script que estoy usando es:
NDK=~/Desktop/android-ndk-r7
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86
function build_one
{
./configure --target-os=linux \
--prefix=$PREFIX \
--enable-cross-compile \
--enable-shared \
--enable-static \
--extra-libs="-lgcc" \
--arch=arm \
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--nm=$PREBUILT/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS -I/usr/local/include" \
--extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L $PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog -L/usr/local/lib " \
--enable-gpl \
--enable-libx264 \
--disable-everything \
--enable-demuxer=mov \
--enable-demuxer=h264 \
--disable-ffplay \
--enable-protocol=file \
--enable-avformat \
--enable-avcodec \
--enable-decoder=rawvideo \
--enable-decoder=mjpeg \
--enable-decoder=h263 \
--enable-decoder=mpeg4 \
--enable-decoder=h264 \
--enable-encoder=mjpeg \
--enable-encoder=h263 \
--enable-encoder=mpeg4 \
--enable-encoder=h264 \
--enable-parser=h264 \
--disable-network \
--enable-zlib \
--disable-avfilter \
--disable-avdevice \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4 install
$PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
$PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -soname libffmpeg.so -shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a
}
CPU=armv7-a
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
PREFIX=./android/$CPU
ADDITIONAL_CONFIGURE_FLAG=
build_one
Supongo que alguna opción en mi comando configure está en conflicto con la activación de libx264
NOTA: Si quito enable-libx264 entonces funciona
Si construyo tanto x264 y FFmpeg con --disable-estática y compartida --enable, entonces sigo teniendo el mismo error, pero esta vez en mi registro que hay más dice "... no podía leer símbolos ..." pero en su lugar dice "no puedo encontrar -lx264 ..." – Kage
¿Cómo instalaste x264? ¿Lo instaló descargando la fuente y haciendo './configure', 'make', 'make install', o hizo otra cosa? Además, ¿cuál es su sistema de compilación - * nix o Windows (con cygwin/msys)? – sashoalm
He descargado la fuente y he utilizado .configure, make, make install Im en un mac (10.7) – Kage