Mac OSコンパイルAndroidプラットフォームFFmpeg


ツールの準備
  • FFmpeg 4.1.5バージョンのソース、ダウンロードリンク:http://ffmpeg.org/download.html
  • NDK(android-ndk-r 17 c)、ダウンロードリンク:https://developer.android.google.cn/ndk/downloads

  • 構成の変更
    1、configureの修正
    Mac OS 编译 Android 平台 FFmpeg_第1张图片 ffmpeg-4.1.5つのディレクトリ、Sublime Textを使用して編集configureを開き、次の4行の構成を見つけます.
    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)'
    

    2、コンパイルスクリプトの修正
    ffmpeg-4.1.5つのディレクトリからbuild_を作成android.shファイル、同様にSublime Textで編集を開いて以下に記入することができます.
    #!/bin/bash
    ADDI_CFLAGS="-marm"
    API=19
    PLATFORM=arm-linux-androideabi
    CPU=armv7-a
    # NDK   
    NDK=/Users/xxx/android-ndk-r17c
    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=/Users/xxx/ffmpeg-4.1.5/android_out
    function build
    {
    ./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- \
    --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
    }
    build
    

    ndkパスに記入し、コンパイル生成物を格納するディレクトリを指定するだけでよい.
    コンパイル
    1、権限
    端末はffmpeg-4.1に入る.5つのディレクトリに、次のように入力します.
    chmod +x build_android.sh
    

    2、コンパイル
    sh build_android.sh -> /Users/xxx/ffmpeg-4.1.5/log.txt
    
  • エラーが発生した場合、logに出力されます.
  • のコンパイルが完了すると、コンパイルされた生成物を格納するandroidが表示されます.outフォルダMac OS 编译 Android 平台 FFmpeg_第2张图片