使用NDK r10d为Android构建的FFMPEG 2.5.4

jma*_*nso 2 macos ubuntu android ffmpeg android-ndk

我正试图在这个tuto之后为android构建FFmpeg:http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/

我正在使用:

  • NDK r10d
  • FFMPEG 2.5.4

我试图在MacOs和Ubuntu上构建,并且在执行./build_android.sh时遇到同样的错误:

`Creating config.mak, config.h, and doc/config.texi...
./build_android.sh: line 16: --prefix=/Users/jesusmartin92/Documents/android-ndk-r10d/sources/ffmpeg-2.5.4/android/arm: No such file or directory
./build_android.sh: line 18: --enable-shared: command not found
./build_android.sh: line 20: --disable-static: command not found
./build_android.sh: line 22: --disable-doc: command not found
./build_android.sh: line 24: --disable-ffmpeg: command not found
./build_android.sh: line 26: --disable-ffplay: command not found
./build_android.sh: line 28: --disable-ffprobe: command not found
./build_android.sh: line 30: --disable-ffserver: command not found
./build_android.sh: line 32: --disable-avdevice: command not found
./build_android.sh: line 34: --disable-doc: command not found
./build_android.sh: line 36: --disable-symver: command not found
./build_android.sh: line 38: --cross-prefix=/Users/jesusmartin92/Documents/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-: No such file or directory
./build_android.sh: line 40: --target-os=linux: command not found
./build_android.sh: line 42: --arch=arm: command not found
./build_android.sh: line 44: --enable-cross-compile: command not found
./build_android.sh: line 46: --sysroot=/Users/jesusmartin92/Documents/android-ndk-r10d/platforms/android-9/arch-arm/: No such file or directory
./build_android.sh: line 48: --extra-cflags=-Os -fpic -marm: command not found
./build_android.sh: line 50: --extra-ldflags=: command not found`
Run Code Online (Sandbox Code Playgroud)

这就像脚本找不到ndk文件夹,但我查了一下,路径没问题.脚本"build_android.sh"位于ffmpeg文件夹中.这是它的内容:

#!/bin/bash
NDK=/Users/jesusmartin92/Documents/android-ndk-r10d
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
function build_one
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm"
build_one
Run Code Online (Sandbox Code Playgroud)

我很困难,所以任何想法都会受到欢迎.

谢谢

jma*_*nso 5

最后,我解决了我的问题.我把configure命令放在一行就行了!! 我不知道为什么会失败......

无论如何,现在我正在使用这个项目(https://github.com/hiteshsondhi88/ffmpeg-android-java)所以,我没有必要编译任何东西.我认为这是在我们的Android应用程序中使用FFMPEG的简单方法.

编辑:我完成了我的项目.你可以在GitHub上查看我的工作:https: //github.com/JesusMartinAlonso/Video4Share