一个适用于 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
我从 (http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/) 创建了一个 android_build.sh 文件#!/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 有时我会遇到不同的错误......所以我不知道下一步该做什么。
请指导我:
谢谢你。
最佳答案
我知道,为时已晚..但它可能会帮助遇到这个问题的人:
只需 将 build_android.sh 文件放入 source/ffmpeg 文件夹 .
关于android - 在 ubuntu 中使用 NDK 为 android 构建 ffmpeg 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630349/