最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Studio引入FFmpeg的方法

 更新時間:2020年03月23日 14:03:07   作者:張雨明  
這篇文章主要介紹了Android Studio引入FFmpeg的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

新建C++工程

新建

兩個externalNativeBuild

一個sourceSets(指定so路徑)

android {
 compileSdkVersion 29
 buildToolsVersion "29.0.3"
 defaultConfig {
 ...
 externalNativeBuild {
  cmake {
  cppFlags "-std=c++11 -frtti -fexceptions"
  abiFilters 'armeabi-v7a'
  }
 }
 sourceSets {
  main {
  jniLibs.srcDirs = ['src/main/jniLibs']
  }
 }
 }
 ...
 externalNativeBuild {
 cmake {
  path "src/main/cpp/CMakeLists.txt"
  version "3.10.2"
 }
 }
}

復(fù)制so和include文件

在這里插入圖片描述

編寫CMakeLists.txt

以下是默認(rèn)值

cmake_minimum_required(VERSION 3.4.1)

add_library(native-lib
 SHARED
 native-lib.cpp
 #nativ-lib2.cpp 如果有其他cpp文件可以一并打包到native-lib中)

#查找系統(tǒng)的log庫,并賦值給變量log-lib
find_library(
 log-lib
 log)

#將上面log-lib變量里的庫連接到native-lib中
target_link_libraries(
 native-lib
 ${log-lib})

CMakeLists中添加FFmpeg頭文件路徑

#設(shè)置FFmpeg頭文件的路徑
include_directories(
 include#因?yàn)楹虲MakeLists.txt在同一級,所以直接寫include
)

CMakeLists中添加libavcodec.so

#定義一個變量avcodec
add_library(
 avcodec
 SHARED
 IMPORTED
)

#給avcodec這個變量賦值
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavcodec.so)

#將avcodec混合編譯到native-lib中
target_link_libraries(
 native-lib
 ${log-lib}
 avcodec
)

CMakeLists中添加全部的so

cmake_minimum_required(VERSION 3.4.1)

#設(shè)置FFmpeg頭文件的路徑
include_directories(
 include#因?yàn)楹虲MakeLists.txt在同一級,所以直接寫include
)

add_library(native-lib
 SHARED
 native-lib.cpp)

find_library(
 log-lib
 log)

#1.定義一個變量avcodec
add_library(
 avcodec
 SHARED
 IMPORTED
)
#給avcodec這個變量賦值
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavcodec-57.so)

#2.
add_library(
 avdevice
 SHARED
 IMPORTED
)
set_target_properties(avdevice PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavdevice-57.so)

#3.
add_library(
 avfilter
 SHARED
 IMPORTED
)
set_target_properties(avfilter PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavfilter-6.so)

#4.
add_library(
 avformat
 SHARED
 IMPORTED
)
set_target_properties(avformat PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavformat-57.so)

#5.
add_library(
 avutil
 SHARED
 IMPORTED
)
set_target_properties(avutil PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavutil-55.so)

#6.
add_library(
 postproc
 SHARED
 IMPORTED
)
set_target_properties(postproc PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libpostproc-54.so)

#7.
add_library(
 swresample
 SHARED
 IMPORTED
)
set_target_properties(swresample PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libswresample-2.so)

#8.
add_library(
 swscale
 SHARED
 IMPORTED
)
set_target_properties(swscale PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libswscale-4.so)

#將avcodec混合編譯到native-lib中
target_link_libraries(
 native-lib
 ${log-lib}
 avcodec#1
 avdevice#2
 avfilter#3
 avformat#4
 avutil#5
 postproc#6
 swresample#7
 swscale#8
)

編寫測試函數(shù)

#include <jni.h>
#include <string>

extern "C" {
#include "libavcodec/avcodec.h"
}

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myffmpegcmd_MainActivity_stringFromJNI(
 JNIEnv *env,
 jobject /* this */) {
 std::string hello = "Hello from C++";
 return env->NewStringUTF(avcodec_configuration());
}

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于Android Studio引入FFmpeg的文章就介紹到這了,更多相關(guān)Android Studio引入FFmpeg內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

抚远县| 塔河县| 开封县| 泰来县| 双峰县| 江西省| 张家港市| 西安市| 大英县| 开封县| 闻喜县| 通化市| 且末县| 天门市| 黑龙江省| 崇仁县| 弋阳县| 新营市| 建水县| 绍兴县| 南江县| 阳高县| 阳原县| 新乡市| 霍城县| 桂平市| 安阳县| 贵德县| 黄梅县| 长春市| 江门市| 娄烦县| 芜湖市| 甘泉县| 唐海县| 通辽市| 临海市| 永州市| 独山县| 安图县| 黑河市|