android - 带有 NDK r10d 的 Android FFMPEG 2.5.4 构建

标签 android macos ubuntu android-ndk ffmpeg

我正尝试按照以下教程为 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`

好像脚本没有找到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

我很卡,所以任何想法都会很受欢迎。

谢谢

最佳答案

终于解决了我的问题。我将 configure 命令放在一行中,它起作用了!!我不知道为什么它失败了......

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

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

关于android - 带有 NDK r10d 的 Android FFMPEG 2.5.4 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796037/

相关文章:

android - BLE 信号发射的模拟测试?

android - 约束布局下的ListView在预览中消失

java - 如何在函数执行期间显示加载消息?

ruby-on-rails - 无法在Mac OS Catalina上安装Rails

svn 提交帮助 ubuntu

shell - 在 Ubuntu 中编写只能由 sudo 用户运行的 shell 脚本

java - 自定义 Android 对话框方向更改

objective-c - Cocoa 的蓝牙示例代码(Objective-C)

objective-c - 将 iOS 版本添加到 Mac 应用程序

PHP 扩展在 Ubuntu 中激活