美文网首页
ubuntu上基于NDK21编译ffmpeg4.2.2

ubuntu上基于NDK21编译ffmpeg4.2.2

作者: liouville | 来源:发表于2020-12-08 00:49 被阅读0次

    下载ffmpeg4.2.2源代码,https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/192d1d34eb3668fa27f433e96036340e1e5077a0

    1. 解压cd 到该目录里面

    2. 创建build目录
      mkdir build

    3. 复制build.sh到build目录, 注意修改ANDROID_NDK_HOME变量

    
    #!/bin/bash
    
    
    ANDROID_ABI=arm64
    BUILD_DIR_FFMPEG="$( cd "$( dirname "$0" )" && pwd )"
    BASE_DIR="$( cd "$( dirname "$BUILD_DIR_FFMPEG" )" && pwd )"
    
    TARGET_TRIPLE_MACHINE_BINUTILS=arch64
    HOST_TAG="linux-x86_64"
    
    # 自己的ndk的安装位置
    ANDROID_NDK_HOME=/home/lv/Android/Sdk/ndk/21.0.6113669
    TOOLCHAIN_PATH=${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/${HOST_TAG}
    SYSROOT_PATH=${TOOLCHAIN_PATH}/sysroot
    
    BUILD_DIR_FFMPEG="$( cd "$( dirname "$0" )" && pwd )"
    TARGET=aarch64-linux-android21
    FAM_CC=${TOOLCHAIN_PATH}/bin/${TARGET}-clang
    FAM_CXX=${FAM_CC}++
    FAM_LD=${FAM_CC}
    FAM_AS=${FAM_CC}
    FAM_NM=${TOOLCHAIN_PATH}/bin/aarch64-linux-android-nm
    
    
    ../configure \
    --prefix=${BUILD_DIR_FFMPEG}/android_out/${ANDROID_ABI} \
    --enable-cross-compile \
    --target-os=android \
    --arch=aarch64 \
    --sysroot=${SYSROOT_PATH} \
    --cc=${FAM_CC} \
    --cxx=${FAM_CXX} \
    --ld=${FAM_LD} \
    --ar=${FAM_AR} \
    --as=${FAM_AS} \
    --nm=${FAM_NM} \
    --ranlib=${TOOLCHAIN_PATH}/bin/aarch64-linux-android-ranlib \
    --strip=${TOOLCHAIN_PATH}/bin/aarch64-linux-android-strip \
    --enable-shared \
    --disable-static \
    --disable-avdevice \
    --disable-debug \
    --enable-jni \
    --pkg-config=/usr/bin/pkg-config
    
    
    1. 给该build.sh添加可执行权限
      chmod +x build.sh

    2. 执行脚本文件: ./build.sh
      内部其实做了一些参数的配置,并且执行父目录的 ../configure

    3. 执行编译: make 或make -j8 或者-j16
      步骤5会生成makefile文件, make即编译出.so

    4. make install
      把编译产物安装到build.sh指定的目录中

    ok, 拿到头文件和.so库就可以在android studio上使用了
    这里的编译脚本只适用于arm-v8a, 更多架构的编译脚本,可参考
    https://github.com/Javernaut/ffmpeg-android-maker

    相关文章

      网友评论

          本文标题:ubuntu上基于NDK21编译ffmpeg4.2.2

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