我是一个linux小白,但由于实验室工作的需要,这两天我一直在进行ffmpeg移植到android的工作。在经历了无数次失败终于尝到胜利的滋味之后,我决定写这篇博文来防止更多的linux小白走跟我同样的弯路。
我用的编译环境:
ubuntu12.04LTS
ndk:android-ndk-r5
ffmpeg:ffmpeg-0.6.tar.bz2
首先将解压后的ffmpeg源码复制到自己电脑的ndk路径下:(我的路径是)/home/zk/java/android-ndk-r5/samples/FFMPEG/jni/ffmpeg
1.在jni/ffmpeg目录下创建config.sh文件,内容如下:
#!/bin/bash
PREBUILT=/home/zk/java/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86
PLATFORM=/home/zk/java/android-ndk-r5/platforms/android-8/arch-arm
./configure --target-os=linux \
--arch=arm \
--enable-version3 \
--enable-gpl \
--enable-nonfree \
--disable-stripping \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-ffprobe \
--disable-encoders \
--disable-muxers \
--disable-devices \
--disable-protocols \
--enable-protocol=file \
--enable-avfilter \
--disable-network \
--disable-mpegaudio-hp \
--disable-avdevice \
--enable-cross-compile \
--cc=$PREBUILT/bin/arm-eabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-eabi- \
--nm=$PREBUILT/bin/arm-eabi-nm \
--extra-cflags="-fPIC -DANDROID" \
--disable-asm \
--enable-neon \
--enable-armv5te \
--extra-ldflags="-Wl,-T,