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

Android Studio引入FFmpeg的方法

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

新建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"
 }
 }
}

復制so和include文件

在這里插入圖片描述

編寫CMakeLists.txt

以下是默認值

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頭文件路徑

#設置FFmpeg頭文件的路徑
include_directories(
 include#因為和CMakeLists.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)

#設置FFmpeg頭文件的路徑
include_directories(
 include#因為和CMakeLists.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());
}

在這里插入圖片描述

總結

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

相關文章

最新評論

连平县| 建德市| 山阴县| 武乡县| 清水河县| 临朐县| 德清县| 牟定县| 营山县| 鄂温| 银川市| 浏阳市| 陇川县| 乐陵市| 平果县| 绵竹市| 江华| 沭阳县| 诸暨市| 宁都县| 左贡县| 马公市| 花莲市| 阿克| 阿克苏市| 东阳市| 抚顺县| 齐齐哈尔市| 华坪县| 黄骅市| 维西| 基隆市| 雅江县| 保靖县| 卫辉市| 即墨市| 都昌县| 通州市| 民乐县| 宜宾市| 微山县|