交叉编译-2:跨平台交叉编译FFmpeg库(Android、IOS、S2L)

一、Android平台

     1. 进入网址https://ffmpeg.org/download.html,下载 FFmpeg压缩包。

     2. 修改FFmpeg的configure。由于编译出来的动态库文件名的版本号在.so之后(例如“libavcodec.so.5.100.1”),而android平台不能识别这样文件名,所以需要修改这种文件名。在configure文件中找到下面几行代码:

 

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'  
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'  
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'  
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)' 

替换为:

 

 

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'  
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'  
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'  
SLIB_INSTALL_LINKS='$(SLIBNAME)'

        3. 新建build_ffmpeg.sh脚本,执行脚本(./build_ffmpeg.sh)

 

export NDK=/tmp/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-16/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
PREFIX=./output
ADDI_CFLAGS="-marm"

function build_ffmpeg
{
	echo "start build ffmpeg $ARCH"
	./configure --target-os=linux \
	--prefix=$PREFIX \
	--arch=$ARCH \
	--enable-shared \
	--enable-static \
	--disable-yasm \
	--disable-asm \
	--disable-ffmpeg \
	--disable-ffplay \
	--disable-ffprobe \
	--disable-ffserver \
	--disable-doc \
    --disable-symver \
    --target-os=linux \
    --arch=arm \
	--enable-cross-compile \
	--enable-pic --enable-memalign-hack \
	--disable-encoders --enable-encoder=libx264 --enable-encoder=aac \
	--disable-decoders --enable-decoder=h264 --enable-decoder=aac \
	--disable-demuxers --enable-demuxer=mpegts \
    --enable-gpl --disable-zlib --enable-nonfree --disable-debug \
	--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
	--sysroot=$SYSROOT \
	--extra-cflag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值