Sto provando a creare FFMPEG con libx264 per Android.Crea FFMPEG con x264 per Android
Posso creare e utilizzare FFMPEG per Android con successo ma mi sono reso conto che ho bisogno della codifica, quindi sto cercando di creare FFMPEG con x264.
Sto usando questo tutorial per costruire FFmpeg per Android http://www.roman10.net/how-to-build-ffmpeg-for-android/
Quando si cerca di costruire FFMPEG ho un errore:
"ERROR: libx264 not found"
E nel mio ceppo si dice:
"/usr/local/lib/libx264.a: could not read symbols: Archive has no index; run ranlib to add one..."
Ho le ultime versioni di FFMPEG e x264. Capisco che FFMPEG cerca l'intestazione e le librerie in usr/lib e usr/include, così al fine di renderlo trovare x264 io uso CFLAGS e LDFLAGS:
- --extra-CFLAGS = "-I/usr/local/include "
- --extra-LDFLAGS =" -L/usr/local/lib "
ho cercato x264 edificio con molte diverse opzioni che le altre persone su internet hanno detto che ho bisogno. per esempio. --enable-shared, --enable-static, --disable-pthreads ecc. Alcuni forum dicono di abilitare questo, altri dicono no disable that.
Qualsiasi aiuto sarebbe molto apprezzato, Grazie
EDIT:
Se io costruisco FFmpeg con i comandi più semplici per includere libx264 allora funziona. ie.
./configure --enable-gpl --enable-libx264 --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --enable-static --enable-shared
Tuttavia, ho bisogno che funzioni per Android. Lo script che sto usando è:
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
sto indovinando che qualche opzione nel mio comando configure è in conflitto con abilitazione libx264
NOTA: Se rimuovo --enable-libx264 allora funziona
Se costruisco sia x264 e FFmpeg con --disable-statica e --enable-shared, poi ho ancora ottenere lo stesso errore, ma questa volta nel mio ceppo di essa non dice più "... could not read symbols ..." ma dice "non riesci a trovare -lx264 ..." – Kage
Come hai installato x264? L'hai installato scaricando il sorgente e facendo './configure', 'make', 'make install', o hai fatto qualcos'altro? Inoltre, qual è il tuo sistema di compilazione - * nix o Windows (con cygwin/msys)? – sashoalm
Ho scaricato l'origine e utilizzato .configure, make, make install Im su un mac (10.7) – Kage