FFmpeg編譯Android使用的so庫
Android平臺下FFmpeg類庫一共包含下面8個:
上圖是我編譯好的arm架構的,我編譯的FFmpeg的版本為2.6.9,NDK版本為R12b,編譯環境為Linux。
1、Linux環境下NDK配置
1、安裝vim
2、配置vim
vim /etc/vim/vimrc 開啟vim的配置檔案
set nu 顯示行號
set tabstop tab鍵長度
set cursorline 高亮顯示當前這一行
set ruler 右下角顯示游標位置
3、下載NDK Linux環境的包
NDK下載連結
4、解壓NDK安裝包
5、配置NDK環境
vim ~/.bashrc 在末尾加上如下你NDK目錄配置如下圖:
然後儲存退出
source ~/.bashrc 更新一下環境變數
執行ndk-build命令,如下圖NDK配置完成
2、FFmpeg下載解壓
FFmpeg下載地址
自行選擇對應的版本
3、執行FFmpeg的configure檔案
cd到FFmpeg解壓目錄
vim configure,修改幾行命令
然後執行 ./configure 命令,如果沒有安裝yasm,執行 ./configure --disable-yasm。
4、編寫編譯shell指令碼
我的指令碼如下:
指令碼中可以盡情發揮,FFmpeg有幾大模組,你需要什麼就配置什麼,這樣可以減少so庫的大小。
5、編譯
執行編寫的shell指令碼 ./buil_android.sh就完事了。就這麼簡單
6、題外話
如上編譯,如果專案中幾大模組都需使用的話,8個so庫都的搬運到專案中去,CMAKE配置挺麻煩的,有沒有簡單的辦法,只有一個so庫呢?答案是肯定的,必須有啊,哈哈。
這次指令碼跟上面不一樣,這是編譯生成的是.a檔案,libavcodec.a,libavfilter.a,libswresample.a,libavformat.a,libavutil.a,libswscale.a,libpostproc.a,libavdevice.a
該指令碼執行完後,會把上述的.a檔案打包為1個.so檔案:libffmpeg.so,這是make install後面的那一行命令的結果。
相關文章
- Android-ffmpeg編譯so檔案Android編譯
- FFmpeg開發筆記(八)Linux交叉編譯Android的FFmpeg庫筆記Linux編譯Android
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- 【FFmpeg】Windows下FFmpeg編譯Windows編譯
- Mac中編譯FFmpeg教程(Android版)Mac編譯Android
- 編譯Android下可執行命令的FFmpeg編譯Android
- FFmpeg開發筆記(十六)Linux交叉編譯Android的OpenSSL庫筆記Linux編譯Android
- FFmpeg系列(一)-Mac環境下使用NDK編譯FFmpegMac編譯
- 用 NDK 編譯 ffmpeg 到 Android 平臺編譯Android
- 【FFmpeg】Windows下64位ffmpeg編譯Windows編譯
- mac上編譯FFmpegMac編譯
- 編譯並裁剪 FFmpeg 在 Android 上做視訊編輯編譯Android
- Make編譯之編譯32bit ffmpeg編譯
- iOS: FFmpeg編譯和使用問題總結iOS編譯
- C編譯: 動態連線庫 (.so檔案)編譯
- ijkplayer編譯so庫真沒那麼難編譯
- FFmpeg開發筆記(九)Linux交叉編譯Android的x265庫筆記Linux編譯Android
- Android 基於ffmpeg開發簡易播放器 - NDK交叉編譯ffmpegAndroid播放器編譯
- 為 Android 編譯並整合 FFmpeg 的嘗試與踩坑Android編譯
- FFmpeg學習之一(FFmpeg原始碼編譯)原始碼編譯
- 編譯Android的OpenSSL類庫編譯Android
- 編譯FFMPEG原始碼的指令碼編寫案例編譯原始碼指令碼
- android使用C/C++呼叫SO庫AndroidC++
- ffmpeg學習window下使用Visual Studio建立cpp專案新增ffmpeg原始碼編譯好的依賴庫原始碼編譯
- 我的第一個ffmpeg程式(編譯及呼叫ffmpeg函式)編譯函式
- Ubuntu16桌面版編譯OpenCV4的java庫和so庫Ubuntu編譯OpenCVJava
- Android使用cmake編譯串列埠通訊.so檔案報錯cannot locate symbol "tcgetattr"Android編譯串列埠Symbol
- NDKr20編譯ffmpeg-4.2.2編譯
- ffmpeg為視訊新增時間戳 - 手動編譯ffmpeg時間戳編譯
- Android中使用ffmpeg編碼進行rtmp推流Android
- android使用ant編譯(rem)Android編譯REM
- FFmpeg開發筆記(七)尤拉系統編譯安裝FFmpeg筆記編譯
- FFmpeg音視訊編譯配置選項編譯
- Xamarin.Android編譯提示找不到mscorlib.dll.so檔案Android編譯
- Android反編譯工具ApkTool的使用Android編譯APK
- ffmpeg安裝之linux編譯安裝Linux編譯
- ffmpeg iOS平臺編譯 指令碼註釋iOS編譯指令碼
- Windows系統使用minGW+msys 編譯ffmpeg 0.5的全過程詳述Windows編譯