编译Android下可用的FFmpeg+x264

jopen 9年前

编译x264:

下载最新版的x264

ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

1.解压到指定的目录

2.切换当前目录为该目录

3.创建一个shell脚本build_x264.sh,内容如下:

NDK= NDK=/home/duizhe/android-ndk-r6(你自己的NDK根目录)

PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt

PLATFORM=$NDK/platforms/android-8/arch-arm (or any other android platform you want)

PREFIX=/home/android-ffmpeg

./configure --prefix=$PREFIX \

--enable-static \

--enable-pic \

--disable-asm \

--disable-cli \

--host=arm-linux \

--cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \

--sysroot=$PLATFORM

make

sudo make install

sudo ldconfig

编译ffmpeg:

下载最新版的ffmpeg

http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

1.解压到指定的目录

2.切换当前目录为该目录

3.创建一个shell脚本build_ffmpeg.sh,内容如下:

 #!/bin/bash    export NDK=/home/duizhe/android-ndk-r6    export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt    export PLATFORM=$NDK/platforms/android-8/arch-arm    export PREFIX=/home/android-ffmpeg    function build_one    {    ./configure --target-os=linux --prefix=$PREFIX \    --enable-cross-compile \    --enable-runtime-cpudetect \    --disable-asm \    --arch=arm \    --cc=$PREBUILT/linux-x86/bin/arm-linux-androideabi-gcc \    --cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \    --disable-stripping \    --nm=$PREBUILT/linux-x86/bin/arm-linux-androideabi-nm \    --sysroot=$PLATFORM \    --enable-nonfree \    --enable-version3 \    --disable-everything \    --enable-gpl \    --disable-doc \    --enable-avresample \    --enable-demuxer=rtsp \    --enable-muxer=rtsp \    --disable-ffplay \    --disable-ffserver \    --enable-ffmpeg \    --disable-ffprobe \    --enable-libx264 \    --enable-encoder=libx264 \    --enable-decoder=h264 \    --enable-protocol=rtp \    --enable-hwaccels \    --enable-zlib \    --disable-devices \    --disable-avdevice \    --extra-cflags="-I/home/android-ffmpeg/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a" \    --extra-ldflags="-L/home/android-ffmpeg/lib"    make -j4 install    $PREBUILT/linux-x86/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o    $PREBUILT/linux-x86/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib  -soname libffmpeg.so -shared -nostdlib  -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libavresample/libavresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog -lx264 --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/linux-x86/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a    }    build_one

编译完成。


转自:http://hi.baidu.com/duizhe_memory/item/482e6fd6ccfee7fa93a974be