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