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

Android音视频: 引入FFmpeg 本文你可以了解到在过去,通常使用 的方式在项目中引入 代码支持,随着 的普及, 的方式已经基本被 替代。有了 官方的支持, 层代码的开发变得更加容易。以前一谈到 ,许多人就会大惊失色,感觉是深不可测的东西,一方面是 的编写很难,一方面是 相比 来说,比较晦涩。但是不必担心,一是有了 ,二是对于 的基本使用其实和 差不多,本系列涉及到的,也都是对 的基础使用,毕竟,高级的我也不会不是吗?哈哈哈~~首先,需要下载 相关工具,在 中依次点击 ,然后勾选 : CMake 构建工具 : 阅读详情

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

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

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

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

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

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


-d <dir>表示将产生的头文件放到指定目录;

-classpath classes 指明类所在的位置

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



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

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


ndk{    
  moduleName "MyLibrary"
}
sourceSets.main{
    jni.srcDirs = []    
    jniLibs.srcDir "src/main/libs"}

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     


CopyRight©  car-eye 开源团队 2018

Android 调用外接摄像头 适合开发需要开发外接摄像头的,可以实现拍照、录像以及上下转动摄像头。 立即下载

相关推荐

Android平台集成ffmpeg最简单demo

Android平台下,开发ffmpeg最简单的demo。。。。。。。。。

android之jni开发----引入ffmpeg调用(1)

1.新建一个空项目 2.点击File->project structure... 进行ndk路径的配置 3.在app->src->main下面新建一个jniLibs目录 4.把ffpmeg编译出来的so库导入进去 5.在app->src->main下面新建一个cpp文件夹,在文件夹下面新建CMakeLists.txt 6.把ffmpeg的include放到cpp文件夹下 7.接下来先编辑下CMakeLists.txt cmake_mini

allen walker的博客 1652

最佳量化交易的计算机操作系统

本文在Creative Commons许可证下发布   我经常被问到的一个问题是:用哪种计算机操作系统和计算软件进行量化交易的理论研究和代码实现?   我想把这个问题简化,从挑选的计算软件和计算库来反推最佳使用的计算机操作系统。简而言之,就是在本文撰写的时候而言,如果你想进行基于任何严肃的数学理论和金融量化交易研究理论,这里特指机器学习或者深度学习。并且需要在本地研究机器上使用桌面版本,...

evilqliang的博客 2307

Android FFmpeg开发(二)JNI数据类型

背景 JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植,在 JNI 开发中,我们知道,Java 的数据类型并不是直接在 JNI 里使用的,JNI有着的数据类型,例如 int 就是使用 jint 来表示。 那么,就如我们来认识一下这些数据类型吧。 JNI基本数据类型 JNI数据类型 Jav...

liuchuanliang的博客 308

windows版kafka异常java.nio.file.FileSystemException另一个程序正在使用此文件,进程无法访问

环境 现象 原因 解决方法 参考

山水牧羊 3847

UE4虚拟现实实习总结---蓝图中的常用交互事件|人物行走|物体移动|动态触发|材质改变

这周是ue4实习周,老师给我们的任务就是基于中学物理和化学实验的虚拟实验室,要有交互事件,后期可以链接vr手柄进行操作。 但是实习开始老师影都没了,全靠自己学习。感觉自己学习了不少东西,这里就来总结一下!顺便感叹一下,ue4好玩又强大! 以下主要介绍蓝图中的几种交互事件1.新建游戏角色并且进行角色行走旋转,2.如何控制物体移动旋转,3.如何控制物体材质动态变化 大家可以举一反三,作出更好的作品 1.新建游戏角色并且进行角色行走旋转 步骤 在刚刚新建的文件夹中鼠标右击新建蓝图类,然后分别创建以下:chara

weixin_43902063的博客 6122

Android 引入FFmpeg

上面已经把 so 和 头文件 放置到对应的目录中了,但是编译器是不会把它们编译、链接、并打包到 Apk 中的,我们还需要在 CMakeLists.txt 中显性的把相关的 so 添加和链接起来。首先,需要下载 CMake 相关工具,在 Android Studio 中依次点击 Tools->SDK Manager->SDK Tools ,然后勾选。依次点击 File -> New -> New Project ,进入新建工程页面,拉到最后,选择 Native C++ 然后按照默认配置,

weixin_63357306的博客 1940

保姆级避坑指南:用Docker在Ubuntu 22.04上部署Isaac Sim 5.1.0,搞定宇树G1仿真环境

本文提供了一份详细的保姆级避坑指南,帮助用户在Ubuntu 22.04上通过Docker部署Isaac Sim 5.1.0,并成功搭建宇树G1仿真环境。文章涵盖了环境准备、Docker与NVIDIA容器工具包的配置、Isaac Sim镜像的定制化拉取与配置,以及宇树G1仿真环境的实战调试,旨在帮助开发者高效解决部署过程中的常见问题。

weixin_33728268的博客 207

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

工欲善其事情,必先利其器。在android下使用ffmpeg必须使用JNI。先创建一个好的编译工具为先: 按照下面步骤在android stdio 下创建JNI的编译环境 1.配置Anroid Studio(这步是关键) 选中项目,单击File菜单,选择Setting进入设置...

chongduan4530的博客 179

高精度地图数据的结构

本文是个人在学习高精度地图数据结构的心得,主要是描述高精度地图的几层数据结构以及元数据信息。

qq_40664711的博客 5575

Qt项目开发实例 (含源码)

qt教程、qt项目、qt下载、qt项目实战、qt多线程。本文通过分析demo源码,QT实战的方式进行学习,学习路线是以实战为目录,全面的使用自己的学习知识,文章中编写一系列的学习游戏demo,与大家一起分享。

啊渊的专栏 14万+

FFMEPG 平台移植,接口简化和外部模块接入 (四)ffmpeg android移植(ffmpeg 视频编码)

FFMPEG 视频编码最常见的H264,H265需要X264,X265外部模块支持,可以从我们开源平台的FFMPEG编译项目里面获取代码和配置进行一键式编译:https://github.com/Car-eye-team/Car-eye-FFMPEG,我们下面的代码主要是为了简化代码调用结构。只需要配置参数,输入数据就可以进行视频编码,不多说,贴上代码:[cpp] view plain copy ...

路过的Blog 356

算法真的是个很有用的东西,通过python或者golang实现对N张图片的自动排版,每张图片的长和宽都不一样,有的是横图,有的是竖图,最终需要生成一张完整的矩形图片

算法真的是个很有用的东西,通过python或者golang实现对N张图片的自动排版,每张图片的长和宽都不一样,有的是横图,有的是竖图,最终需要生成一张完整的矩形图片。

代码讲故事 503

第一次完成FFmepg的移植,编译ffmpeg4Android

本文主要实现了FFmpeg的编译和移植,首先在linux下将官网下载的源码编译成.so文件,然后使用android-studio配合NDK工具,将.so文件移植到android项目当中,简单地介绍了如何一步步完成FFmpeg的编译流程参考文章:手把手图文并茂教你用Android Studio编译FFmpeg库并移植下面是我自己在ubuntu下编译准备的编译工具Git,NDK安装git,检查本地git

danjuan123的专栏 1441

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)...

首先来看一副图,用来纪念对视频领域做出贡献的雷神: 当然在这个图片里面的decode不是必须的,Filter 模块本身是一个非常独立的模块,但因为相关的程序,给人造成了他必须要依赖于decoder或者encoder来工作。 OK 不多说,先看看内部实现代码: [cp...

chongduan4530的博客 228

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

FFMEPG 平台移植,接口简化和外部模块接入 (四)ffmpeg android移植(ffmpeg 视频编码)...

FFMPEG 视频编码最常见的H264,H265需要X264,X265外部模块支持,可以从我们开源平台的FFMPEG编译项目里面获取代码和配置进行一键式编译:https://github.com/Car-eye-team/Car-eye-FFMPEG,我们下面的代码主要是为了简化代码调用结构。...

chongduan4530的博客 291

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android如何调用ffmpeg源码,android 使用ffmpeg 并调用接口 .

http://blog.youkuaiyun.com/kaven826/article/details/14517189由于最近要做一个音频视频合成的东东,经过各方面的资料查找,开始锁定javaCV,想用它搞定音视频合成的问题。可后来用javacv出现了很多问题,发邮件给javacv的作者,也没有得到很好的答案,后来逼于无奈只好移植ffmepg到andorid,在Android上使用ffmpeg合成音视频的问...

weixin_36366711的博客 655

FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)

首先来看一副图,用来纪念对视频领域做出贡献的雷神:当然在这个图片里面的decode不是必须的,Filter 模块本身是一个非常独立的模块,但因为相关的程序,给人造成了他必须要依赖于编码器或者解码器来工作。OK 不多说,先看看内部实现代码:#ifndef __CAREYE_PUBLIC_H__ #define __CAREYE_PUBLIC_H__ #define __STDC_CONSTA...

Car_eye的博客 970

完成FFmepg的移植,编译ffmpeg4Android

本文主要实现了FFmpeg的编译和移植,首先在linux下将官网下载的源码编译成.so文件,然后使用android-studio配合NDK工具,将.so文件移植到android项目当中,简单地介绍了如何一步步完成FFmpeg的编译流程 参考文章:手把手图文并茂教你用Android Studio编译FFmpeg库并移植 下面是我自己在ubuntu下编译 准备的编译工具

人之所能 是相信能 5773
上一篇: FFMEPG 平台移植,接口简化和外部模块接入 (一)ffmpeg android移植(ndk 编译)
下一篇: FFMEPG 平台移植,接口简化和外部模块接入 (三)ffmpeg android移植(ffmpeg实现水印文字显示)
路过&
博客等级 码龄19年 126粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值