使用NDK編譯ffmpeg

2021-08-08 03:45:16 字數 2056 閱讀 3456

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)'

編寫shell指令碼直接生成類庫

#!/bin/bash

make clean

export ndk=/usr/ndk/android-ndk-r10e

export sysroot=$ndk/platforms/android-9/arch-arm/

export toolchain=$ndk/toolchains/arm-linux-androideabi-4.8/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

注意:shell指令碼的名字為sh

編譯生成

把shell指令碼放入ffmpeg目錄裡面,也就是和configure檔案在同乙個目錄,直接執行指令碼就會生成我們需要的庫檔案,執行命令 ./指令碼名稱。

注意:我們的ffmpeg的檔案可能沒有許可權執行,使用 chmod 777 -r ffmpeg使ffmpeg檔案加下的所有檔案獲得最高許可權

編譯成功後會出現乙個android資料夾,包含的是arm平台的動態庫,我們只需要取出ffmpeg八大模組對應大版本庫就行了

你會發現android目錄下還有乙個include資料夾,那是我們生成的標頭檔案。

易錯點

使用NDK編譯ffmpeg庫

1 在 然後熱行如下命令安裝ndk,我是在ubuntu 14.04下安裝的,在win下要裝cygwin,會麻煩很多,不推薦。它官方的安裝提示如下 on linux and mac os x darwin 2.open a terminal window.3.go to the directory t...

NDK開發(五) Ubuntu編譯FFmpeg

ubuntu 14.0 amd64 64bit ffmpeg tag n2.6.9 ndk r15c cd usr mkdir ndk 建立ndk目錄 mkdir jason 建立ffmpeg目錄 1.目錄給許可權 chmod 777 r ndk 2.解壓android ndk r15c linux...

使用NDK編譯mono

2.匯出ndk目錄到環境變數 export ndk var data android ndk r10e 3.執行ndk的工具鏈 ndk build tools make standalone toolchain.sh platform android 18 install dir tmp my an...