注:參考自bilibili系列視頻,從0開始做播放器-第二季-第1章-用 Android NDK 編譯 FFmpeg,更詳細的內容可以從視頻獲取http://www.lxweimin.com/writer#/notebooks/47674984/notes/76664263
Android NDK 簡介
想在安卓平臺運行c++,首先需要一個交叉編譯環境,用來把c++代碼編譯成安卓上可以運行的動態庫。NDK就是安卓平臺下的交叉編譯環境,可以讓我們直接用c/c++等語言實現應用的各個部分。
https://developer.android.google.cn/ 下載NDK
https://developer.android.google.cn/ndk/guides/other_build_systems 文檔 將 NDK 與其他構建系統配合使用
在NDK下編譯ffmpeg
下載ffmpeg
編寫cmake腳本
./configure
--prefix 設置安裝路徑
--enable-static 允許編譯靜態庫
--enable-shared 允許編譯動態庫
//如果運行上面代碼,會編譯出windows平臺的ffmpeg庫,要android上的庫,需要加配置
--enable-cross-compile 允許交叉編譯
--target-os=android 設置目標操作系統為安卓
--arch=arm
--cc=/c/NDK/android-ndk-r21b/```/armv7a-linux-android 指定c編譯器,指定c編譯器的同時,確定了cpu架構。(在NDK目錄下)
--cross-prefix 設置交叉編譯環境編譯工具路徑,平臺無關(在NDK下)
--disable-ffmpeg ffmpeg命令行程序,android下會編譯出錯,所以disable掉
--disable-ffplay 同上
--disable-ffprobe 同上
--disable-avdevice 與設備相關的,android平臺不需要make
make install
運行腳本后,就會得到android平臺的ffmpeg