第一次完成FFmepg的移植,编译ffmpeg4Android

转载自
https://righere.github.io/2016/10/10/build-ffmpeg4Android/
https://righere.github.io/2017/02/21/SDLVideo-Demo/

下载源代码
https://github.com/FFmpeg/FFmpeg/tree/n3.1.4

文章使用了 ffmpeg3.1.4 版本的库,使用最新版本编译会出现问题,暂时不使用
ffmpeg3.1.4 不是一个release版本,从tag标签下找到该版本

这里写图片描述

编译过程主要就是两步

第一步 修改ffmpeg的configure文件

为了保证我们编译出的文件是以.so的后缀名
将文本中的3209-3212这4行:

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)'
第二步 配置编译脚本
#!/bin/sh
NDK=/home/admin/tools/android-ndk-r14b
SYSROOT=$NDK/platforms/android-23/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=arm
PREFIX=./android/$CPU/
ADDI_CFLAGS="-marm"
config_para()
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --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
}
config_para
第三步 编译获得相应的库

执行 make 和 make install
生成的android/arm/目录中的文件,图中标出的为链接文件可以删除:
这里写图片描述

最后使用测试程序进行视频播放测试

测试程序 : https://github.com/righere/ConvexdSDLPlayer.git

播放了一个变形金刚的视频
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值