美文网首页
使用NDK编译FFMPEG

使用NDK编译FFMPEG

作者: 码农呀 | 来源:发表于2019-08-09 20:20 被阅读0次

    首先,

    获取ffmpeg的工具包
    这里我使用的是4.1
    然后获取编译环境MinGw
    下载完成后安卓,会有一个弹窗

    如果不懂就直接全点了,安装过程可能有些漫长

    然后配置环境变量


    这里是win10的

    然后进入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)'
    

    编写批处理文件

    #!/bin/bash 
    set -x
    API=21
    export TMPDIR="F:/so"
    NDK=E:/ndklist/android-ndk-r17c-windows-x86_64/android-ndk-r17c
    SYSROOT=$NDK/platforms/android-$API/arch-arm/
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
    function function_one
    {
    ./configure \
      --prefix=$PREFIX \
      --enable-shared \
      --disable-static \
      --disable-doc \
      --disable-ffplay \
      --disable-ffprobe \
      --disable-symver \
      --disable-ffmpeg \
      --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
      --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
      --target-os=android \
      --arch=arm \
      --enable-cross-compile \
      --sysroot=$SYSROOT \
      --extra-cflags="-I$NDK/sysroot/usr/include/arm-linux-androideabi -isysroot $NDK/sysroot -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" \
      --enable-neon
    
    make clean all
    make 
    make install
    }
    CPU=armv7-a
    PREFIX=F:/FFmpeg/uotput/lib
    function_one
    

    注释:

    API:你的目标编译版本<gradle配置的tag
    TMPDIR: 编译时的临时文件位置,一定要有,不然编译失败!
    NDK:你的NDK路径
    PREFIX:你编译成功后so文件的位置
    以上均为准备工作

    正文

    进入到你MinGw的安装目录:E:\MinGw\msys\1.0
    双击 :msys.bat


    按照上面的顺序就可以了,批处理的文件名不要敲错了,尽量CV

    如果成功的话那么会有一个漫长的等待时间~~~


    会在你批处理文件中设置的(PREFIX)文件夹下生成这个玩意了,然后可以愉快的拿去集成了

    相关文章

      网友评论

          本文标题:使用NDK编译FFMPEG

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