Android移植FFmpeg(1)-编译

作者: 依然小激动 | 来源:发表于2016-12-30 18:32 被阅读143次

    环境:win7 FFmpeg-n3.2.2 mingw

    1.下载mingw,并安装

    下载之后,安装,选中这两项后apply changes

    进入到mingw的安装目录下,找到\MinGW\msys\1.0目录,由于编译要使用make命令,把bin的路径配置到环境变量中,然后打开msys.bat,一会编译使用

    2.下载FFmpeg,我下载的版本是3.2.2,下载之后解压。然后找到configure文件,用ultraedit或者notepad++打开,找到如下代码

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

    这里无脑替换即可,主要是so文件命名的需要

    3.在FFmpeg目录下新建build_android.sh文件,内容如下

    #!/bin/bash

    export TMPDIR=F:/ffmpeg/FFmpeg-n3.2.2/tmpdir

    NDK=G:/devtool/android-studio-sdk/ndk-bundle

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

    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64

    CPU=arm

    PREFIX=F:/ffmpeg/FFmpeg-n3.2.2/install

    ADDI_CFLAGS="-marm"

    function build_one

    {

    ./configure \

    --prefix=$PREFIX \

    --enable-shared \

    --disable-static \

    --disable-doc \

    --disable-ffmpeg \

    --disable-ffplay \

    --disable-ffprobe \

    --disable-ffserver \

    --disable-doc \

    --disable-symver \

    --enable-small \

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

    }

    build_one

    read -p "Press any key to continue." var

    其中,TMPDIR是个临时目录,编译时需要用到,可以随意指定路径;

    NDK则替换为本机的ndk路径;

    SYSROOT根据本机设置,但不要大于你的target,比如你的target是23,就不要用 大于Android-23的;

    PREFIX则是编译后so的存放地址,路径可以随便指定。

    4.在刚才打开的mingw中,切换到FFmpeg目录下,执行./build_android.sh

    在此过程中会提示一堆pr command not found的提示,不用管,继续执行下去即可

    经过了漫长的等待,会在install目录下生成so包和头文件

    相关文章

      网友评论

      • Zxhua:Hi,我运行msys.bat的时候提示找不到D:/Program 。这个问题你遇到过么?知道怎么解决么?

      本文标题:Android移植FFmpeg(1)-编译

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