相信将ffmpeg移植到android上的兄弟都遇到过很多问题。
这里就将我移植过程与大家分享下。
1、建一个目录,将ffmpeg源码放在jni目录下
2、在ffmpeg的根目录编写config.sh 如下:
PREBUILT=${NDK_ROOT}/toolchains/mips-linux-android-4.4.3/prebuilt/windows
PLATFORM=${NDK_ROOT}/platforms/android-8/arch-mips
./configure --target-os=linux \
--arch=mips \
--enable-version3 \
--enable-gpl \
--disable-debug \
--enable-nonfree \
--disable-doc \
--disable-stripping \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-encoders \
--disable-muxers \
--disable-devices \
--disable-mpegaudio-hp \
--disable-protocols \
--enable-protocol=file \
--enable-avfilter \
--disable-avdevice \
--enable-cross-compile \
--cc=$PREBUILT/bin/mips-linux-android-gcc.exe \
--cross-prefix=$PREBUILT/bin/mips-linux-android- \
--nm=$PREBUILT/bin/mips-linux-android-nm.exe \
--extra-cflags="-fPIC -DANDROID" \
--disable-asm \
--enable-neon \
--enable-armv5te \
--extra-ldflags='-L$PLATFORM/usr/lib -nostdlib' \
sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
其中configure之后的参数根据自己的情况编写。
3、修改config.h中的#define restrict restrict 为#define restrict
4、屏蔽Makefile 中的 include $(SUBDIR)../subdir.mak , include $(SUBDIR)../config.mak
5、运行config.sh
6、然后运行make 静静等待,大功告成
1158




被折叠的 条评论
为什么被折叠?



