Скомпилируйте FFmpeg для Android на Mac - PullRequest
0 голосов
/ 12 апреля 2020

Мой запрос

Итак, я хочу скомпилировать ffmpeg и упаковать файл stati c (например, libavfilter.a et c) в libffmpeg.so, что я могу сделать для этого?

Мой компл ie окружение :

Ма c ОС: Ма c Ос Каталина версия 10.15.4

Ndk: anroid-ndk-r17 c

build_ android. sh

это моя сборка ffmpeg. sh:

#!/bin/bash
export NDK=/User/Library/Android/ndk/android-ndk-r17c
export SYSROOT=$NDK/platforms/android-19/arch-arm
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64

CPU=armv7-a
ARCH=arm
PREFIX=$(pwd)/android/$CPU

ADDI_CFLAGS="-marm"

#configure
./configure \
    --prefix=$PREFIX \
    --arch=$ARCH \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --extra-ldflags="$ADDI_LDFLAGS" \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --target-os=linux \
    --enable-cross-compile \
    --enable-gpl \
    --disable-shared \
    --enable-static \
    --disable-doc \
    --disable-debug \
    --enable-small \
    --disable-programs \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    $ADDITIONAL_CONFIGURE_FLAG

#compile
make clean

make -j4

make install

#package
$TOOLCHAIN/bin/arm-linux-androideabi-ld \
    -rpath-link=$SYSROOT/usr/lib \
    -L$SYSROOT/usr/lib \
    -L$PREFIX/lib \
    -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o \
    $PREFIX/libffmpeg.so \
    libavcodec/libavcodec.a \
    libavfilter/libavfilter.a \
    libswresample/libswresample.a \
    libavformat/libavformat.a \
    libavutil/libavutil.a \
    libswscale/libswscale.a \
    libavdevice/libavdevice.a \
    libpostproc/libpostproc.a \
    -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker \
    $TOOLCHAIN/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a

#strip
$TOOLCHAIN/bin/arm-linux-androideabi-strip  $PREFIX/libffmpeg.so

Сообщение об ошибке

/ ndk / android -ndk-r17c / toolchains / arm- linux -androideabi-4.9 / prebuilt / darwin-x86_64 / bin / arm- linux -androideabi-ld: ошибка: libavformat / libavformat.a: член 15294144 не является объектом ELF

android -ndk-r17c / toolchains / arm- linux -androideabi-4.9 / prebuilt / darwin-x86_64 / bin / arm- linux -androideabi-strip: '/Users/wangqing/Desktop/FFmpeg/ffmpeg/ffmpeg-4.1.4/android/armv7-a/ libffmpeg.so ': такого файла нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...