美文网首页
一分钟编译ffmpeg4.2.2并移植到Android添加htt

一分钟编译ffmpeg4.2.2并移植到Android添加htt

作者: 飞起来的大雨 | 来源:发表于2020-01-07 16:42 被阅读0次

    Android 编译FFmpeg 添加硬编码  和https

    码字不易,转载请注明出处!

    我们编译FFmpeg一般在Linux的系统上进行编译(当然在WIN上也是可以的加上VM虚拟机安装linux)

    FFmpeg官网下载,直接DownLoad即可(文档编辑时版本 ffmpeg-4.2.2)

    编译环境Ubuntu 19.10   重点NDK20b  采用 CLANG 则是一个效率更高的C/C++编译工具,并且兼容GCC,Google在很早以前就开始建议使用clang进行编译,并且在 ndk 17 以后,把 GCC 移除了,全面推行使用 CLANG

    在 ffmpeg-4.2.2 根目录下新建 shell 脚本,命名为:build_android.sh 创建build_andorid.sh 并授予权限sudo  chmod   777  build_android.sh 

    讲已下代码复制到所创建的文件中

    #!/bin/bash

    # 清空上次的编译

    make clean

    #你自己的NDK路径.

    export NDK=/home/tt/android-ndk-r20b-linux-x86_64/android-ndk-r20b

    TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/

    API=29

    function build_android

    {

    echo "Compiling FFmpeg for $CPU"

    ./configure \

        --prefix=$PREFIX \

        --enable-neon \

        --enable-hwaccels \

        --enable-gpl \

        --enable-postproc \

        --enable-shared \

        --enable-jni \

        --enable-mediacodec \

        --enable-decoder=h264_mediacodec \

        --disable-decoders \

        --enable-decoder=aac \

        --enable-decoder=aac_latm \

        --enable-decoder=mjpeg \

        --enable-decoder=png \

        --enable-decoder=mpeg4_mediacodec \

        --disable-static \

        --disable-doc \

        --enable-ffmpeg \

        --disable-ffplay \

        --disable-ffprobe \

        --enable-avdevice \

        --disable-doc \

        --disable-symver \

        --cross-prefix=$CROSS_PREFIX \

        --target-os=android \

        --arch=$ARCH \

        --cpu=$CPU \

        --cc=$CC

        --cxx=$CXX

        --enable-cross-compile \

        --sysroot=$SYSROOT \

        --extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \

        --extra-ldflags="$ADDI_LDFLAGS" \

        $ADDITIONAL_CONFIGURE_FLAG

    make clean

    make

    make install

    echo "The Compilation of FFmpeg for $CPU is completed"

    }

    #armv8-a

    ARCH=arm64

    CPU=armv8-a

    CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang

    CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++

    SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

    CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-

    PREFIX=$(pwd)/android/$CPU

    OPTIMIZE_CFLAGS="-march=$CPU"

    build_android

    #armv7-a

    ARCH=arm

    CPU=armv7-a

    CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang

    CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++

    SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

    CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-

    PREFIX=$(pwd)/android/$CPU

    OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "

    build_android

    #x86

    ARCH=x86

    CPU=x86

    CC=$TOOLCHAIN/bin/i686-linux-android$API-clang

    CXX=$TOOLCHAIN/bin/i686-linux-android$API-clang++

    SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

    CROSS_PREFIX=$TOOLCHAIN/bin/i686-linux-android-

    PREFIX=$(pwd)/android/$CPU

    OPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"

    build_android

    #x86_64

    ARCH=x86_64

    CPU=x86-64

    CC=$TOOLCHAIN/bin/x86_64-linux-android$API-clang

    CXX=$TOOLCHAIN/bin/x86_64-linux-android$API-clang++

    SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

    CROSS_PREFIX=$TOOLCHAIN/bin/x86_64-linux-android-

    PREFIX=$(pwd)/android/$CPU

    OPTIMIZE_CFLAGS="-march=$CPU -msse4.2 -mpopcnt -m64 -mtune=intel"

    build_android

    保存等待直接 运行./build_android.sh  

    然后一步编译成功!

    后续移植到Android studio 项目中会发出来  目前可以参考移植部分就可以了

    相关文章

      网友评论

          本文标题:一分钟编译ffmpeg4.2.2并移植到Android添加htt

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