美文网首页
2018-09-29 Mac 下使用NDK进行FFmpeg编译源

2018-09-29 Mac 下使用NDK进行FFmpeg编译源

作者: 馒Care | 来源:发表于2018-09-29 13:15 被阅读65次

    以下只针对Mac版本下进行FFmpeg版本的编译,移植到Android上
    环境:Mac
    工具:Mac 终端编译
    源码:git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg(下载源代码后,我这里放到桌面上,命名文件ffmpeg,把当前文件复制到android-ndk-r10e根目录下,也就是android-ndk-r10e/ffmpeg)
    NDK版本:android-ndk-r10e(这里可以选择自己需要的版本)

    步骤:
    一.首先配置NDK环境:
    1.打开Mac终端编译
    输入open -e .bash_profile
    2.编辑.bash_profile文件
    export NDK_HOME=/Users/xxx/Documents/android-ndk-r10e(这里是ndk的目录位置)
    export PATH=PATH:NDK_HOME
    3.保存.bash_profile文件
    4.终端输入ndk-build
    如果有显示,类似以下内容,表示配置成功
    Android NDK: Could not find application project directory !
    Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
    /Users/yaganglian/Documents/android-ndk-r10e/build/core/build-local.mk:143: *** Android NDK: Aborting . Stop.

    二.把我们下载好的FFmpeg源码复制到NDK根目录下
    三.在FFmpeg根目录下,新建文件build-android.sh文件,复制以下内容

    !/bin/bash

    这里的路径需要修改为你自己的ndk路径

    NDK=/Users/yaganglian/Documents/android-ndk-r10e

    注意android-9文件夹的版本号,替换好自己的版本号

    SYSROOT=$NDK/platforms/android-9/arch-arm/

    把这里的路径替换好自己的版本

    TOOLCHAIN=NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 function build_one(){ ./configure \ --prefix=PREFIX
    --enable-shared
    --disable-static
    --disable-doc
    --enable-cross-compile
    --cross-prefix=TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --sysroot=SYSROOT
    --extra-cflags="-Os -fpic ADDI_CFLAGS" \ --extra-ldflags="ADDI_LDFLAGS"
    ADDITIONAL_CONFIGURE_FLAG } CPU=arm PREFIX=(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one
    这里注意下,新版的FFmpeg不需要再设置disable-ffmpeg-server

    四.修改FFmpeg目录下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)'

    五.以上步骤都做好后,就开始回到Mac终端,最好是重启下终端,使用cd 进入到ffmpeg文件目录下,使用以下命令
    ./build_android
    等待一会儿,输入 make
    最后输入make install 全部编译后,我们打开ffmpeg目录,会发现生成了一个文件夹,android,android/xxx/lib/下就是我们需要的so文件了。

    以上就是ffmpeg在Mac下移植的过程,讲真简书我真的还用不习惯,这格式好难梳理,
    有编译的疑问可以留言给我

    相关文章

      网友评论

          本文标题:2018-09-29 Mac 下使用NDK进行FFmpeg编译源

          本文链接:https://www.haomeiwen.com/subject/xnvvoftx.html