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編譯ijkplayer的Android平臺so庫筆記Linux編譯Android
- FFmpeg開發筆記(八)Linux交叉編譯Android的FFmpeg庫筆記Linux編譯Android
- FFmpeg開發筆記(十六)Linux交叉編譯Android的OpenSSL庫筆記Linux編譯Android
- Mac中編譯FFmpeg教程(Android版)Mac編譯Android
- 編譯Android下可執行命令的FFmpeg編譯Android
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- Android開發編譯curl庫給Android使用Android編譯
- FFmpeg開發筆記(九)Linux交叉編譯Android的x265庫筆記Linux編譯Android
- FFmpeg系列(一)-Mac環境下使用NDK編譯FFmpegMac編譯
- 編譯並裁剪 FFmpeg 在 Android 上做視訊編輯編譯Android
- C編譯: 動態連線庫 (.so檔案)編譯
- 為 Android 編譯並整合 FFmpeg 的嘗試與踩坑Android編譯
- Android 基於ffmpeg開發簡易播放器 - NDK交叉編譯ffmpegAndroid播放器編譯
- 安裝編譯ffmpeg編譯
- Android使用cmake編譯串列埠通訊.so檔案報錯cannot locate symbol "tcgetattr"Android編譯串列埠Symbol
- Make編譯之編譯32bit ffmpeg編譯
- ffmpeg學習window下使用Visual Studio建立cpp專案新增ffmpeg原始碼編譯好的依賴庫原始碼編譯
- linux編譯so庫不要生成字尾和軟連結Linux編譯
- FFmpeg學習之一(FFmpeg原始碼編譯)原始碼編譯
- Android中使用ffmpeg編碼進行rtmp推流Android
- Ubuntu16桌面版編譯OpenCV4的java庫和so庫Ubuntu編譯OpenCVJava
- NDKr20編譯ffmpeg-4.2.2編譯
- libusb android ndk編譯--編譯mipsAndroid編譯
- linux編譯Android原始碼的時候出錯:error while loading shared libraries: libstdc++.so.6Linux編譯Android原始碼ErrorWhileC++
- FFmpeg command line tool(Android中使用FFmpeg命令列)Android命令列
- 使用CMake命令編譯Android平臺下的包編譯Android
- android 反編譯Android編譯
- android編譯方法Android編譯
- Assimp Android 編譯Android編譯
- ffmpeg安裝之linux編譯安裝Linux編譯
- Android native層動態載入so庫Android
- Android NDK祕籍--編譯靜態庫、呼叫靜態庫Android編譯
- 如何編譯openGauss對應版本的wal2json.so編譯JSON
- PHP 5.4 編譯 configure: error: libXpm.(a|so) not found.PHP編譯Error
- 優化使用kotlin開發Android app的編譯速度優化KotlinAndroidAPP編譯
- Android下檢視SO庫被依賴的情況Android
- Android so庫防客戶端破解的解決方案Android客戶端