2014-09-02 66 views
0

ffmpeg android for android 2.3+,它允许我解压缩/添加水印/重新压缩视频文件。我需要让它在所有当前的CPU上运行。在ubuntu下使用NDK构建android ffmpeg的错误

我做了什么至今

我看了很多的来源进行指导。大多数文章已经过时或根本无法工作。更不用说我在将虚拟机安装到一个我以前从未见过的操作系统上所做的努力了。整个java/sdk/ndk的安装非常简单,但我很难设置PATH变量,最重要的是设置它们。

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

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

谢谢。

回答

0

我从这里2个不同来源不同 https://github.com/android-native-libraries

请随意使用库文件

+0

谢谢,从你的链接到最后,我终于设法使用https://github.com/android-native-libraries/android-ffmpeg-lib – Alin 2014-09-06 19:34:16

2

我知道,编译FFMPEG为时已晚..但它可以帮助别人谁遇到这个问题:

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