6 编译ffmpeg,脚本如下:
#!/bin/bash
NDK=/root/android-ndk-r9
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-nonfree \
--enable-gpl \
--enable-libx264 \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
#make clean
#make
#make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-I/usr/local/include"
ADDI_LDFLAGS="-L/usr/local/lib"
build_one
内容和stackoverflow上的例子几乎一样,只是最后两行加上了libx264的路径。
为了看具体过程,把make,make install注释掉了。
这两个脚本放在各自目录下,运行就可以了。比如保存成build.sh,chmod一下再执行。
这样,就生成了ffmpeg sdk的各个.so或.a (根据自己的实际情况,修改configure 里的--enable static等参数)。
虽然是linux下编译生成的,但直接用在windows下的ndk编译环境也可以。
本文只讲了如果编译ffmpeg,顺利的话,一个小时就能完成。下一步开始在android上做视频采集,编码,解码,回放的测试了,和在PC上的流程一致。
编译过程中, 如果有问题,大致是这两个: