FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

Stella981
• 阅读 940

工欲善其事情,必先利其器。在android下使用ffmpeg必须使用JNI。先创建一个好的编译工具为先:

按照下面步骤在android stdio 下创建JNI的编译环境

1.配置Anroid Studio(这步是关键)

选中项目,单击File菜单,选择Setting进入设置界面。或者按快捷键 Ctrl+Alt+S。:

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

点击+号之后,打开Macros 配置宏命令界面,如下图:

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

2.配置使用javah 、ndk-build、ndk-build clean这三个命令,请看下图

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

-d

表示将产生的头文件放到指定目录;

-classpath classes 指明类所在的位置

-jni com.hypersilicon.dav.DavJNI 指定类名

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

3.配置完成,我们开始新建工程MyNdk,然后新建jni目录

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

4.修改app下的build.gradle文件, 如下图

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

ndk{    
  moduleName "MyLibrary"
}
sourceSets.main{
    jni.srcDirs = []    
   

5.修改MyNdk下的gradle.properties文件(如果没有此文件,自己新建一个)

android.useDeprecatedNdk=true

环境创建成功。可以开始移植ffmeg了。

car-eye开源官方网址:www.car-eye.cn   

car-eye 流媒体平台网址:www.liveoss.com    

car-eye 技术官方邮箱: support@car-eye.cn    
car-eye技术交流QQ群: 590411159     

FFMEPG 平台移植,接口简化和外部模块接入 (二)ffmpeg android移植(JNI 开发环境建立)

CopyRight©  car-eye 开源团队 2018

点赞
收藏
评论区
推荐文章
刘望舒 刘望舒
3年前
Android深入理解JNI(一)JNI原理与静态、动态注册
Android框架层Android深入理解JNIAndroid框架层本文首发于微信公众号「刘望舒」前言JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在JavaFramework层。这一个系列我们来一起深入学习JNI。<!more1.JNI概述Android系统按语言来划分的
Stella981 Stella981
3年前
Android打包so文件到apk
Android打包so文件到apk在使用Android源码开发app的时候,怎么使JNI生成的so文件打包进Apk呢,如果这样的就可以只提供给客户一个app就搞定了。下面是具体的实施步骤,这只是一个简单的Demo仅供参考,但是任何复杂的业务逻辑使用原理还是相同的1.含义全代码的so打包. a)建立工程,并使用本地调用,java文件如
Stella981 Stella981
3年前
JNI线程、Linux常用命令、权限、防火墙配置
JNI\_OnLoad:调用System.loadLibrary()函数时,内部就会去查找so中的JNI\_OnLoad函数,如果存在此函数则调用。JNI\_OnLoad会:告诉VM此native组件使用的JNI版本。​对应了Java版本,android中只支持JNI\_VERSION\
Wesley13 Wesley13
3年前
JNI实战全面解析
简介项目决定移植一款C开源项目到Android平台,开始对JNI深入研究。JNI是什么?JNI(JavaNativeInterface)意为JAVA本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,一种在Java虚拟机控制下执行代码的标准机制。NDK是什么?AndroidNDK(NativeDe
Stella981 Stella981
3年前
JVM的启动流程
JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境.1.创建JVM装载环境和配置2.装载JVM.dll3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例4.调用JNIEnv实例装载并处理class类。!(https://oscimg.oschina.net
Stella981 Stella981
3年前
Android Studio 使用NDK编译jni
试用了AndroidStudio一段时间,发现这东西不支持C/C,而且创建工程也只能创建Android的工程.这可苦恼死我了....网上找了找,大多人都说是AndroidStudio和Eclipse之间来回切换..这不悲剧吗?在AndroidStuido的SettingPlugins中发现有C/C的插件,安装后发现自己能力有限,不会玩这东
Wesley13 Wesley13
3年前
01.Flink笔记
Flink开发环境部署配置Flink是一个以Java及Scala作为开发语言的开源大数据项目,代码开源在github上,并使用maven来编译和构建项目。所需工具:Java、maven、Git。本次操作是在windows环境下。一、工具安装Java配置(略)maven配置1.
Stella981 Stella981
3年前
FFMEPG 平台移植,接口简化和外部模块接入 (四)ffmpeg android移植(ffmpeg 视频编码)
FFMPEG视频编码最常见的H264,H265需要X264,X265外部模块支持,可以从我们开源平台的FFMPEG编译项目里面获取代码和配置进行一键式编译:https://github.com/Careyeteam/CareyeFFMPEG(https://www.oschina.net/action/GoToLink?urlhttps%3A
Stella981 Stella981
3年前
FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)
首先来看一副图,用来纪念对视频领域做出贡献的雷神:!(https://imgblog.csdn.net/20180518102442303)当然在这个图片里面的decode不是必须的,Filter模块本身是一个非常独立的模块,但因为相关的程序,给人造成了他必须要依赖于decoder或者encoder来工作。OK不多说,先看看内部实现代码
Stella981 Stella981
3年前
FFMEPG 平台移植,接口简化和外部模块接入 (一)ffmpeg android移植(ndk 编译)
CareyeFFMPEG项目是Careye开源平台的一个新项目,目的是在FFMPEG项目和其外部模块,如freetype,X264的基础上建立一个多平台编译,接口调用简单的工具集。本博客是一个连载,首先从android开始写吧。因为FFMPEG本身对android编译的支持就不是特别好。本文开发环境是ubuntu分步来做:1\.建立