用于android 2.3+的ffmpeg android,它允许我解压缩/添加水印/重新压缩视频文件。我需要让它适用于所有当前的CPU。
到目前为止我做了什么
我找了很多来源寻求指导。大多数文章已经过时或根本不起作用。更不用说我在virtualBox上安装ubuntu所带来的整个斗争,这是我以前从未见过的操作系统。整个java / sdk / ndk安装非常简单,但我很难设置PATH变量,最重要的是设置它们的位置。
所以,这是我的结构:
我拥有的默认文件夹路径是/home/alin
PATH在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有时我会遇到不同的错误...所以我不知道下一步该做什么。
请指导我:
谢谢。
答案 0 :(得分:2)
我知道,为时已晚......但它可能有助于遇到此问题的人:
只需将build_android.sh文件放在source / ffmpeg文件夹中。
答案 1 :(得分:0)
我在这里编译了来自2个不同来源的FFMPEG https://github.com/android-native-libraries
请随意使用库文件