ubuntu上でNDK 21に基づいてffmpeg 4をコンパイルする.2.2
1937 ワード
ffmpeg 4をダウンロードする.2.2ソースコードhttps://git.ffmpeg.org/gitweb/ffmpeg.git/commit/192d1d34eb3668fa27f433e96036340e1e5077a0 cdをこのディレクトリに解凍する buildディレクトリmkdir build を作成 buildをコピーする.sh buildディレクトリへ、ANDROIDの変更に注意NDK_HOME変数 build.sh実行可能権限chmod+x buildを追加する.sh 実行スクリプトファイル:./build.sh内部では、実際にいくつかのパラメータの構成が行われ、親ディレクトリの../configure でコンパイル:makeまたはmake-j 8または-j 16のステップ5でmakefileファイルが生成する、makeがコンパイルされる.so make installコンパイル生成物をbuildにインストールする.sh指定ディレクトリ OK、ヘッダーファイルと.soライブラリはandroid studioで使用できます.ここでのコンパイルスクリプトはarm-v 8 aにのみ適用されます.より多くのアーキテクチャのコンパイルスクリプトは、参照できます.https://github.com/Javernaut/ffmpeg-android-maker
#!/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