https://ffmpeg.org/download.html
------------------------------------------------------
build ffmpeg on linux:
https://juejin.im/post/5d831333f265da03c61e8a28
ffmpeg-4.1.3 -> 4.1.5
Ndk r17c -> r21b
失敗
利用linux server(82.225), 製作xxx.sh檔 並執行,
主要注意:
cc& cxx 設定為clang
& clang++
--prefix 設為$(pwd)/android/armv8-a
(or armv7-a or x86 or x86-64)
Cflags 設定在各abi不同
1.
build_android
--cc=$CC
--cxx=$CXX
後面沒 “\”
2.
X86 or x86-64 => build_android =>新增 --disable-x86asm
3.
Gcc 改為 clang
--------------------Android ffmpeg (以下為舊版,測試正常)----------------------------
* ndk r17c + ffmpeg 4.1.3 + linux server compile
---------------------------build_android.sh-------------------
#!/bin/bash
NDK=/home/chinghungpan/Android/android-ndk-r17c
SYSROOT_v7a=$NDK/platforms/android-21/arch-arm/
SYSROOT_v8a=$NDK/platforms/android-21/arch-arm64/
SYSROOT_x86=$NDK/platforms/android-21/arch-x86/
SYSROOT_x86_64=$NDK/platforms/android-21/arch-x86_64/
TOOLCHAIN_v7a=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
TOOLCHAIN_v8a=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64
TOOLCHAIN_x86=$NDK/toolchains/x86-4.9/prebuilt/linux-x86_64
TOOLCHAIN_x86_64=$NDK/toolchains/x86_64-4.9/prebuilt/linux-x86_64
PREFIX_v7a=$(pwd)/../AS_SixFfmpeg/app/src/main/jni/armeabi-v7a
PREFIX_v8a=$(pwd)/../AS_SixFfmpeg/app/src/main/jni/arm64-v8a
PREFIX_x86=$(pwd)/../AS_SixFfmpeg/app/src/main/jni/x86
PREFIX_x86_64=$(pwd)/../AS_SixFfmpeg/app/src/main/jni/x86_64
ADDI_CFLAGS="-marm"
function build_v7a
{
if [ -f config.h ]; then
rm config.h
fi
./configure \
--prefix=$PREFIX_v7a \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--disable-asm --enable-pic \
--disable-linux-perf \
--cross-prefix=$TOOLCHAIN_v7a/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT_v7a \
--extra-cflags="-Os -fpic $ADDI_CFLAGS -isysroot $NDK/sysroot -I$NDK/sysroot/usr/include/arm-linux-androideabi" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
cp -rf $PREFIX_v7a/include/* $PREFIX_v7a/..
}
function build_v8a
{
if [ -f config.h ]; then
rm config.h
fi
./configure \
--prefix=$PREFIX_v8a \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--disable-asm --enable-pic \
--disable-linux-perf \
--cross-prefix=$TOOLCHAIN_v8a/bin/aarch64-linux-android- \
--target-os=android \
--arch=aarch64 \
--enable-cross-compile \
--sysroot=$SYSROOT_v8a \
--extra-cflags="-Os -fpic -isysroot $NDK/sysroot -I$NDK/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21" \
--extra-ldflags="$ADDI_LDFLAGS -shared" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
function build_x86
{
if [ -f config.h ]; then
rm config.h
fi
./configure \
--prefix=$PREFIX_x86 \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--disable-asm --enable-pic \
--disable-linux-perf \
--cross-prefix=$TOOLCHAIN_x86/bin/i686-linux-android- \
--target-os=android \
--arch=i686 \
--enable-cross-compile \
--sysroot=$SYSROOT_x86 \
--extra-cflags="-Os -fpic -isysroot $NDK/sysroot -I$NDK/sysroot/usr/include/i686-linux-android -D__ANDROID_API__=21" \
--extra-ldflags="$ADDI_LDFLAGS -shared" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
function build_x86_64
{
if [ -f config.h ]; then
rm config.h
fi
./configure \
--prefix=$PREFIX_x86_64 \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--disable-asm --enable-pic \
--disable-linux-perf \
--cross-prefix=$TOOLCHAIN_x86_64/bin/x86_64-linux-android- \
--target-os=android \
--arch=x86_64 \
--enable-cross-compile \
--sysroot=$SYSROOT_x86_64 \
--extra-cflags="-Os -fpic -isysroot $NDK/sysroot -I$NDK/sysroot/usr/include/x86_64-linux-android -D__ANDROID_API__=21" \
--extra-ldflags="$ADDI_LDFLAGS -shared" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
#build_v7a
#build_v8a
#build_x86
build_x86_64
沒有留言:
張貼留言