ffmpeg android for android 2.3+,它允许我解压缩/添加水印/重新压缩视频文件。我需要让它在所有当前的CPU上运行。在ubuntu下使用NDK构建android ffmpeg的错误
我做了什么至今
我看了很多的来源进行指导。大多数文章已经过时或根本无法工作。更不用说我在将虚拟机安装到一个我以前从未见过的操作系统上所做的努力了。整个java/sdk/ndk的安装非常简单,但我很难设置PATH变量,最重要的是设置它们。
所以,这里是我的结构: 的默认文件夹路径是/home/alin
中,我有
路径设置在etc/profile
,我可以证实,它的工作原理。我知道,它的作品,因为运行java -version
或ndk-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/)
#!/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
文件,我得到这个:
尝试不同的build.sh有时我得到了不同的错误...所以我不知道下一步该怎么做。
请指引我:
- 能够建立FFMPEG
- 使其与尽可能多的设备尽可能兼容。
谢谢。
谢谢,从你的链接到最后,我终于设法使用https://github.com/android-native-libraries/android-ffmpeg-lib – Alin 2014-09-06 19:34:16