美文网首页
mac编译ffmpeg(arm arm64)

mac编译ffmpeg(arm arm64)

作者: 李韬_3ebe | 来源:发表于2020-02-07 21:36 被阅读0次

    ffmpeg 4.2.1版本编译

    解压后修改configure

    # build settings
    SHFLAGS='-shared -Wl,-soname,$$(@F)'
    LIBPREF="lib"
    LIBSUF=".a"
    FULLNAME='$(NAME)$(BUILDSUF)'
    LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)'
    SLIBPREF="lib"
    SLIBSUF=".so"
    SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
    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_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
    SLIB_INSTALL_LINKS='$(SLIBNAME)'
    VERSION_SCRIPT_POSTPROCESS_CMD="cat"
    

    运行脚本

    #!/bin/bash
    ADDI_CFLAGS="-marm"
    API=24
    PLATFORM=arm-linux-androideabi
    CPU=armv7-a
    NDK=/Users/litao/Library/Android/android-ndk-r14b # 修改自己本地的ndk路径
    SYSROOT=$NDK/platforms/android-$API/arch-arm/
    ISYSROOT=$NDK/sysroot
    ASM=$ISYSROOT/usr/include/$PLATFORM
    TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
    OUTPUT=android #自己指定一个输出目录
    function build_one
    {
    ./configure \
    --prefix=$OUTPUT \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
    --nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
    --target-os=android \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
    --extra-ldflags="-marm" \
    $ADDITIONAL_CONFIGURE_FLAG
      make clean
      make
      make install
    }
    echo "开始编译ffmpeg..."
    build_one
    echo "完成编译..."
    
    #!/bin/bash
    ADDI_CFLAGS="-marm"
    API=24
    PLATFORM=aarch64-linux-android
    CPU=armv8-a
    NDK=/Users/litao/Library/Android/android-ndk-r14b # 修改自己本地的ndk路径
    SYSROOT=$NDK/platforms/android-$API/arch-arm64/
    ISYSROOT=$NDK/sysroot
    ASM=$ISYSROOT/usr/include/$PLATFORM
    TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
    OUTPUT=android #自己指定一个输出目录
    function build_one
    {
    ./configure \
    --prefix=$OUTPUT \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \
    --cc=$TOOLCHAIN/bin/aarch64-linux-android-gcc \
    --nm=$TOOLCHAIN/bin/aarch64-linux-android-nm \
    --target-os=android \
    --arch=aarch64 \
    --cpu=armv8-a \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    #--extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
    #--extra-ldflags="-marm" \
    $ADDITIONAL_CONFIGURE_FLAG
      make clean
      make
      make install
    }
    echo "开始编译ffmpeg..."
    build_one
    echo "完成编译..."
    

    在android目录下生产对应的so

    相关文章

      网友评论

          本文标题:mac编译ffmpeg(arm arm64)

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