所有人。如何使用x264和libfdk-aac編譯FFmpeg for Android
請理解我使用錯誤的英文。
我想使用FFmpeg編碼應用程序。
我用FFmpeg成功地構建了NDK。
但是,編碼的H.264視頻編碼失敗(編解碼器未找到..)。
我瞭解到libx264需要編碼H.264,而libfdk-aac需要編碼AAC。
所以我試圖建立libx264和libfdk-aac,但是不容易交叉編譯。
請告訴我我做錯了什麼。
我的開發環境
操作系統:Ubuntu的13.10 64位
NDK:採用Android NDK-R9
FFmpeg的:ffmpeg的-2.0.2
x26 4構建:build_x264_android.sh
NDK=$ANDROID_NDK_HOME
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
PLATFORM=$NDK/platforms/android-9/arch-arm
CPU=arm
PREFIX=$NDK/sources/ffmpeg-2.0.2/android/$CPU
./configure --prefix=$PREFIX \
--enable-shared \
--enable-pic \
--disable-asm \
--disable-cli \
--host=arm-linux \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$PLATFORM
make
make install
ldconfig
FDK-AAC構建:build_aac_android.sh
NDK=$ANDROID_NDK_HOME
CROSS_PREFIX=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
PLATFORM=$NDK/platforms/android-9/arch-arm
CPU=arm
PREFIX=$NDK/sources/ffmpeg-2.0.2/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a -mthumb -D__thumb__"
./configure --prefix=$PREFIX \
--with-sysroot=$PLATFORM \
--host=arm-linux \
--enable-shared \
--with-pic=no \
CC="${CROSS_PREFIX}gcc --sysroot=$PLATFORM" \
CXX="${CROSS_PREFIX}g++ --sysroot=$PLATFORM" \
RANLIB="${CROSS_PREFIX}ranlib" \
AR="${CROSS_PREFIX}ar" \
STRIP="${CROSS_PREFIX}strip" \
NM="${CROSS_PREFIX}nm" \
CFLAGS="-O3 $OPTIMIZE_CFLAGS --sysroot=$PLATFORM" \
CXXFLAGS="-O3 $OPTIMIZE_CFLAGS --sysroot=$PLATFORM"
make
make install
當運行 'build_aac_android.sh',示出錯誤。
日誌中的config.log
configure:2907: checking for arm-linux-gcc
configure:2934: result: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm
configure:3203: checking for C compiler version
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm --version >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -v >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -V >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -qversion >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3243: checking whether the C compiler works
configure:3265: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -O3 -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a -mthumb -D__thumb__ --sysroot=/platforms/android-9/arch-arm conftest.c >&5
./configure: line 3267: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3312: error: in `/home/nel/android-ndk-r9/sources/ffmpeg-2.0.2/libfdk-aac':
configure:3314: error: C compiler cannot create executables
See `config.log' for more details
我無法理解的錯誤!我被證實在目錄中找到了arm-linux-androideabi-gcc ..
我想借用你的智慧。請告訴我如何'ffmpeg + x264 + fdk-aac'爲Android構建。
謝謝.. :-)
我需要包括libfdk-AAC。找不到android的項目包括fdk-aac? – Codeveloper
這個項目在AAC編碼可能嗎? – Codeveloper
Aac可以添加適當的配置設置。 Fdk-aac我不知道。 –