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

时间:2014-09-02 18:54:34

标签: 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我创建了一个android_build.sh文件,来自(http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/

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
  • 使其与尽可能多的设备兼容。

谢谢。

2 个答案:

答案 0 :(得分:2)

我知道,为时已晚......但它可能有助于遇到此问题的人:

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

答案 1 :(得分:0)

我在这里编译了来自2个不同来源的FFMPEG https://github.com/android-native-libraries

请随意使用库文件