ffmpeg官網
編譯錯誤:
make: *** No rule to make target '/tests/Makefile'. Stop.
Unknown option "--disable-ffserver".
See ./configure --help for available options.
出現這個錯誤的原因可能是ffmpeg版本過高或者NDK版本過高
我的環境:
NDK(android-ndk-r14b-linux-x86_64.zip)
FFmpeg(ffmpeg-3.3.tar.gz)
先下載下傳安裝NDK
NDK歸檔曆史版本下載下傳
下載下傳android-ndk-r14b-linux-x86_64.zip 然後解壓 指令:unzip android-ndk-r14b-linux-x86_64.zip 如果未安裝工具軟體先安裝壓縮工具
可以下載下傳再放入到指定檔案夾 或者直接下載下傳
mkdir ndk_build//建立檔案夾
cd ndk_build//進入到檔案夾
wget +linux版本的下載下傳連結位址//下載下傳ndk
unzip + 壓縮檔案//解壓
配置ndk(進入環境配置後在最後添加配置路徑 ESC鍵退出編輯 然後儲存退出 ,記得執行環境變量)
vim ~/.bashrc//進入環境變量配置
//以下代碼添加到文末
export NDKROOT=/home/ndk_build/android-ndk-r14b//配置你的安裝路徑
export PATH=$NDKROOT:$PATH//配置路徑
:wq!//先按Esc鍵然後輸入wq!儲存退出
source ~/.bashrc//執行環境變量
ndk-build//檢視是否安裝成功,隻要不是顯示ndk-build not found,則表示安裝成功
指令下載下傳ffmpeg版本 建議不要太高 4.1.1我沒有編譯成功
wget http://ffmpeg.org/releases/ffmpeg-3.3.tar.gz
tar -xzf ffmpeg-3.3.tar.gz
編寫編譯(.sh)腳本
建立編譯腳本
在ffmpeg 跟目錄下建立android_build.sh(名稱随意):
然後編輯該腳本
touch android_build.sh//建立腳本檔案
vim android_build.sh
然後複制一下代碼使用Shift+Insert鍵粘貼到腳本中,然後隻修改配置NDK路徑,注意檢查檔案copy是否全
#!/bin/bash
make clean
export NDK=/home/ndk_build/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"
./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
先按Esc鍵然後輸入wq!儲存退出 然後執行下面代碼
chmod +x android_build.sh
然後修改configure,如果你不修改的話,編譯出來過後的.so檔案後面會有一串數字,無法使用,是以得修改他的命名規則
将該檔案中的如下四行:(輸入/SLIBNAME快速搜尋定位)
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
替換為:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
先按Esc鍵然後輸入wq!儲存退出
最好編譯.sh檔案
./android_build.sh

然後等待編譯完成