ffmpegコンパイル(android)
3853 ワード
ffmpegコンパイル(android)怠け者専用リンク //コンパイルされたsoライブラリを直接ダウンロードし、ffmpeg-androidを使用します.https://github.com/tbxyxs/ffmpeg-android.git
コンパイル環境 ubuntu 17.10 x64 ndk r14b
インストールyasm ffmpegソースgit コンパイルスクリプト スクリプトに実行権限を付与 実行スクリプト
sudo apt install yasm
mkdir ffmpeg-android
cd ffmpeg-android
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout -B latest n3.3.7 // :n4.0 , , n3.3.7 ,n4.0
// copy , ffmpeg_build.sh( unix , windows )
// NDK_HOME , ndk
============================== =================================
#!/bin/bash
export NDK_HOME=/home/tolin/android/android-ndk-r14b
export NDK_HOST_PLATFORM=linux-x86_64
COMMON_OPTIONS="\
--prefix=android/ \
--target-os=android \
--disable-static \
--enable-shared \
--enable-small \
--disable-programs \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--disable-asm \
"
function build_android {
./configure \
--libdir=${PREFIX}/libs/armeabi-v7a \
--incdir=${PREFIX}/includes/armeabi-v7a \
--pkgconfigdir=${PREFIX}/pkgconfig/armeabi-v7a \
--arch=arm \
--cpu=armv7-a \
--cross-prefix="${NDK_HOME}/toolchains/arm-linux-androideabi-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/arm-linux-androideabi-" \
--sysroot="${NDK_HOME}/platforms/android-24/arch-arm/" \
--extra-cflags="-march=armv7-a -mfloat-abi=softfp -mfpu=neon" \
--extra-ldexeflags=-pie \
${COMMON_OPTIONS}
make clean
make -j8
make install
./configure \
--libdir=${PREFIX}/libs/arm64-v8a \
--incdir=${PREFIX}/includes/arm64-v8a \
--pkgconfigdir=${PREFIX}/pkgconfig/arm64-v8a \
--arch=aarch64 \
--cpu=armv8-a \
--cross-prefix="${NDK_HOME}/toolchains/aarch64-linux-android-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/aarch64-linux-android-" \
--sysroot="${NDK_HOME}/platforms/android-24/arch-arm64/" \
--extra-ldexeflags=-pie \
${COMMON_OPTIONS}
make clean
make -j8
make install
./configure \
--libdir=${PREFIX}/libs/x86 \
--incdir=${PREFIX}/includes/x86 \
--pkgconfigdir=${PREFIX}/pkgconfig/x86 \
--arch=x86 \
--cpu=i686 \
--cross-prefix="${NDK_HOME}/toolchains/x86-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/i686-linux-android-" \
--sysroot="${NDK_HOME}/platforms/android-24/arch-x86/" \
--extra-ldexeflags=-pie \
${COMMON_OPTIONS}
make clean
make -j8
make install
./configure \
--libdir=${PREFIX}/libs/x86_64 \
--incdir=${PREFIX}/includes/x86_64 \
--pkgconfigdir=${PREFIX}/pkgconfig/x86_64 \
--arch=x86_64 \
--cpu=x86_64 \
--cross-prefix="${NDK_HOME}/toolchains/x86_64-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/x86_64-linux-android-" \
--sysroot="${NDK_HOME}/platforms/android-24/arch-x86_64/" \
--extra-ldexeflags=-pie \
${COMMON_OPTIONS}
make clean
make -j8
make install
};
PREFIX=$(pwd)/android/$CPU
build_android
// ffmpeg_build.sh ffmpeg/ , ./configure 。
chmod +x ffmpeg_build.sh //
./ffmpeg_build.sh // , android , libs 。