android - 在 ubuntu 中使用 NDK 为 android 构建 ffmpeg 时出错

标签 android ubuntu build android-ndk ffmpeg

一个适用于 android 2.3+ 的 ffmpeg android,它允许我解压缩/添加水印/重新压缩视频文件。我需要让它在所有当前的 CPU 上工作。

到目前为止我做了什么

我查看了很多资源以寻求指导。大多数文章已经过时或根本不起作用。更不用说我在 virtualBox 上安装 ubuntu 所经历的整个斗争,这是我以前从未见过的操作系统。整个 java/sdk/ndk 安装非常简单,但我很难设置 PATH 变量,最重要的是设置它们的位置。

所以,这是我的结构:
默认文件夹路径为 /home/alin我在其中
enter image description here

PATH 设置在 etc/profile我可以确认它有效。我知道它有效,因为运行 java -versionndk-build运行得很好

> ANDROID_SDK=/home/alin/android/sdk ANDROID_NDK=/home/alin/android/ndk
> JAVA_HOME=/usr/local/java/jdk1.8.0_20
> PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$ANDROID_NDK
> export JAVA_HOME export ANDROID_SDK export ANDROID_NDK export PATH

我已经从 ffmpeg.org 下载了最新的源码并保存在 ndk/sources文件夹,位于 sources我从 (http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/) 创建了一个 android_build.sh 文件

enter image description here
#!/bin/bash

NDK=/home/alin/android/ndk
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

运行 .sh 时文件我得到这个:
enter image description here

尝试不同的 build.sh 有时我会遇到不同的错误......所以我不知道下一步该做什么。

请指导我:
  • 能够构建ffmpeg
  • 使其与尽可能多的设备兼容。

  • 谢谢你。

    最佳答案

    我知道,为时已晚..但它可能会帮助遇到这个问题的人:

    只需 将 build_android.sh 文件放入 source/ffmpeg 文件夹 .

    关于android - 在 ubuntu 中使用 NDK 为 android 构建 ffmpeg 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630349/

    相关文章:

    android - 琐碎的驱动器构建失败

    java - Jenkins:如何为多个Java项目创建一个作业?

    android - 混合两个音频缓冲区时的咔嗒声/失真

    android - Android Studio:Gradle项目同步失败

    安卓 repo 初始化 : SSL_CERTIFICATE_VERIFY_FAILED error

    c++ - 有没有办法测试 C++ API(在 ubuntu linux 上)是否可重入(线程安全)?

    ubuntu - Ubuntu 18.04 中未调用 Netfilter Hook - 内核 4.18

    java - 停止发送 GPS 坐标 Android

    Ubuntu中的rpy2安装错误

    python - 为什么每次我尝试运行 Python 程序时 Eclipse 都会要求我输入 'ant build'?