MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库

           最近在初步学习播放器,今天编译了FFmpeg库给Android使用。

         Step  1:首先在MAC上安装NDK,我这里使用的是ndk-r10e;

         Step  2:去FFmpeg官网下载对应的源码;

         Step  3: 将下载后的NDK进行解压,我这里直接放到桌面了,/Users/SkyLight/Desktop/ndk-r10e/android-ndk-r10e

                         文件目录如下:

                        MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库_第1张图片

         Step  4: 将下载后的FFmpeg进行解压,我这里直接直接放到桌面了,/Users/SkyLight/Desktop/ffmpeg-3.2.4

    Step 5: 编写sh脚本: 如build.sh,内容如下:

            

      #!/bin/bash

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

      NDK=/Users/SkyLight/Desktop/ndk-r10e/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 \

      --disable-ffserver \

      --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

    Step 6:把写好的build.sh放到ffmpeg-3.2.4目录下

          MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库_第2张图片

            

      Step 7: 修改一下ffmpeg源码下configure文件, 我这里是用xcode打开的,

                      找到如下代码: 

                 SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'

                 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_VERSION='$(SLIBNAME).$(LIBVERSION)'

                 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'

                 LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

                 SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'

                 SLIB_INSTALL_LINKS='$(SLIBNAME)'

      Step 8:运行行build.sh脚本

                

                 mcj1688deMacBook-Pro:~ SkyLight$ cd /Users/SkyLight/Desktop/ffmpeg-3.2.4 

                 mcj1688deMacBook-Pro:ffmpeg-3.2.4 SkyLight$ ./build.sh

         

        Step 9:运行行build.sh脚本     

              MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库_第3张图片

           如果运行过程中出现上述WARNING,可以忽略

      Step 10:执行make

           mcj1688deMacBook-Pro:ffmpeg-3.2.4 SkyLight$ make

      Step 11:执行make install

      Step 12:此时在ffmpeg-3.2.4目录下会出现一个android文件夹, 进入到arm目录

            MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库_第4张图片

    图片中的include目录下就是所要的头文件,lib目录下就是so库文件。






你可能感兴趣的:(知识点积累)