저는 안드로이드 용 ffmpeg를 만들고 있습니다. 팔에서는 잘 작동하지만 x86에서는 실패합니다.여러 아치 용 안드로이드 ffmpeg
편집이 정상입니다. 나는이 86는 FFmpeg lib 디렉토리를 사용하는 APK를 실행한다면, 로그 캣은 다음과 같은 오류를 출력 할 것이다 : 나는 APK 파일을 확인했던
04-13 10:30:09.862: E/dalvikvm(1262): dlopen("/data/app-lib/com.misgood.ipcamdemo-2/libplayer.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libavformat-55.so" needed by "libplayer.so"; caused by load_library(linker.cpp:745): library "libavformat-55.so" not found
. 모든 공유 라이브러리가 존재합니다.
문제는 라이브러리가 제대로 설정되어 있지 않은 것 같습니다.
의견을 보내 주시면 감사하겠습니다. 여기
내가#!/bin/bash
NDK=$HOME/android-ndk-r9c
function build_core
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--disable-error-resilience \
--disable-decoder=h263p \
--disable-decoder=mpegvideo \
--target-os=linux \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-std=c99 -O3 -fpic -DANDROID $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ARCH_SPEC \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
function build_arm
{
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
ARCH_SPEC="--arch=arm \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
"
build_core
}
function build_x86
{
SYSROOT=$NDK/platforms/android-19/arch-x86/
TOOLCHAIN=$NDK/toolchains/x86-4.8/prebuilt/linux-x86_64
CPU=x86
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-mincoming-stack-boundary=4 -march=i686 -mtune=atom -mstackrealign -msse3 -mfpmath=sse -m32"
ARCH_SPEC="--arch=x86 \
--cross-prefix=$TOOLCHAIN/bin/i686-linux-android- \
--cpu=i686
"
build_core
}
build_x86
그냥 x_86에 빌드! 심지어 build_x86을 build_arm으로 변경했습니다. –