音視頻開發系列
Android音視頻開發 -> 搭建開發環境
Android音視頻開發 -> ffmpeg+h264+aac編譯以及測驗呼叫
Android音視頻開發 -> 本地音頻采集
Android音視頻開發 -> 本地camera視頻采集
Android音視頻開發 -> ffmpeg+h264+avfilter+camera推流旋轉角度
Android音視頻開發 -> fdk-aac編碼pcm為eld-aac
Android音視頻開發 -> fdk-aac解碼eld-aac為pcm
建立工程
選擇如下模塊

目錄介紹

組態檔
cmake_minimum_required(VERSION 3.10.2)
project("ffmpeg-project")
#引入安卓日志庫
find_library(log-lib log)
#設定變數,方便下面配置so檔案路徑非必選
set(lib_src_DIR ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI})
#引入頭部檔案,每個人路徑不一定一致這里留意一下有可能導致頭檔案找不到
include_directories(src/main/jniLibs/include)
#創建自定義so庫就是.cpp檔案,找到所有的.cpp檔案
file(GLOB native_files "src/main/cpp/*.cpp")
#添加自定義so庫,把所有的.cpp檔案生成一個自定義so庫在JNI操作類中匯入
add_library(ffmpeg-lib SHARED ${native_files})
#設定目標屬性即ffmpeg的so庫的檔案位置,找到自己so庫位置
add_library(ffmpeg SHARED IMPORTED)
set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libffmpeg.so)
#未知
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
#鏈接自定義so庫和第三方so庫,把so庫參考在自定義的so庫后面
target_link_libraries(ffmpeg-lib ffmpeg android
${log-lib})
build.grade配置
plugins {
id 'com.android.library'
}
android {
compileSdk 31
defaultConfig {
minSdk 21
targetSdk 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//設定支持的型別
ndk {
abiFilters "armeabi-v7a"
}
externalNativeBuild {
cmake {
cppFlags ''
abiFilters 'armeabi-v7a'
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
//每個人的路徑可能不一致這里注意一下,有可能導致組態檔失效
path file('CMakeLists.txt')
version '3.10.2'
}
}
//不加這個報錯ffmpeg的so庫出現兩邊具體原因位置
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/390517.html
標籤:其他
上一篇:Cadence Allegro修改編輯銅皮邊緣圖文教程及視頻演示
下一篇:面向單目深度估計的基于幾何的預訓練方式 -- Geometric Pretraining for Monocular Depth Estimation
