第19课 在Android环境中使用FFmpeg和openCV进行开发的一般步骤

这篇具有很好参考价值的文章主要介绍了第19课 在Android环境中使用FFmpeg和openCV进行开发的一般步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上节课,根据模板文件我们对在Android环境中使用FFmpeg和openCV进行开发有了一个初步的体验,这节课,我们来具体看一下其工作流程。

1.程序的入口

与VS2013程序开发类似,Android程序开发也有一个入口,在这个模板中,它的入口文件是MainActivity.java,具体路径是:E:\jPro\demo\src\com\example\demo\MainActivity.java。我们打开MainActivity.java,会看到项目的主类:public class MainActivity extends Activity {},这个就是程序的入口了,与VS2013开发类似,在这个类中我们可以定义各种变量,也可以定义各种方法。其中的onCreate()函数类似于MFC中的OnInitDialog()函数,会在界面初始化完成后执行。

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		 formatBtn=(Button)findViewById(R.id.formatBtn);	
		 codecBtn=(Button)findViewById(R.id.codecBtn);	
		 filterBtn=(Button)findViewById(R.id.filterBtn);	
		 configBtn=(Button)findViewById(R.id.configBtn);
		 msgTxt=(TextView)findViewById(R.id.msgTxt);
		 msgTxt.setMovementMethod(ScrollingMovementMethod.getInstance());		
		
	}

2.为了能使用FFmpeg和openCV的相关功能,我们需要先把.so动态链接库加载进来并定义四个与C++有关的native函数,这四个函数在demo.cpp中实现并被java调用。

static {		
		System.loadLibrary("opencv_java3");
		System.loadLibrary("x264.161");
		System.loadLibrary("avcodec");
		System.loadLibrary("avdevice");
		System.loadLibrary("avfilter");
		System.loadLibrary("avformat");
		System.loadLibrary("avutil");
		System.loadLibrary("postproc");
		System.loadLibrary("swresample");
		System.loadLibrary("swscale");
		System.loadLibrary("demo");
	}
	
	
	public native String avformatinfo();   
	public native String avcodecinfo();    
	public native String avfilterinfo();    
	public native String configurationinfo();

3.通过按钮调用相关函数

双击打开布局文件,路径为:/demo/res/layout/activity_main.xml。

第19课 在Android环境中使用FFmpeg和openCV进行开发的一般步骤,C++,opencv,ffmpeg,android,ffmpeg,opencv

双击其中的config按钮会看到configBtn单击时会触发名为Config的java方法

<Button
        android:id="@+id/configBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/filterBtn"
        android:layout_alignBottom="@+id/filterBtn"
        android:layout_alignRight="@+id/formatBtn"
        android:onClick="config"
        android:text="Config" />
    
     />

而名为Config的java方法则位于MainActivity.java中,而且调用了一个名为configurationinfo()的C++ native函数。

public void config(View view){ 
	msgTxt.setText(configurationinfo());
}
	

4.demo.cpp中的configurationinfo()函数则是通过下面这种方式被java调用执行的。文章来源地址https://www.toymoban.com/news/detail-801078.html

JNIEXPORT jstring JNICALL Java_com_example_demo_MainActivity_configurationinfo(
		JNIEnv *env, jobject obj) {
	char info[10000] = { 0 };
	//av_register_all();
	sprintf(info, "%s\n", avcodec_configuration());
	//printf("%s", info);
	return env->NewStringUTF(info);
}

到了这里,关于第19课 在Android环境中使用FFmpeg和openCV进行开发的一般步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android开发配置OpenCV环境详细指南

    Android开发配置OpenCV环境详细指南 在进行Android开发时,我们经常需要使用图像处理库来实现各种功能。其中,OpenCV是一个强大且广泛应用的开源计算机视觉库。本文将详细介绍如何在Android开发环境中配置OpenCV,并附带相应的源代码和说明。 步骤一:下载OpenCV库文件 首先,我

    2024年02月08日
    浏览(54)
  • Clion 使用ffmpeg 学习1 开发环境配置

    在视频处理和多媒体应用程序开发中,FFmpeg 是一个强大的开源工具,它提供了处理音频和视频的丰富功能。CLion 是一款受欢迎的跨平台集成开发环境(IDE),它提供了强大的代码编辑和调试工具。 本文章介绍在CLion下配置FFmpeg开发环境的方法。 windows10 已安装Clion 官网入口:

    2024年02月10日
    浏览(36)
  • Android 环境下OpenCV使用-- 环境搭建(一)

    1、OpenCV SDK下载 openCv官网下载 2、Android Studio 创建 C++ 工程 3、openCV的so库 加载项目中 src-main目录下新建 jniLibs 下载的openCv的sdk的 opencv-4.1.0-android-sdkOpenCV-android-sdksdknativelibs目录对应平台的so库复制进来 4、加载头文件 将sdk目录下边的头文件目录 include的头文件加载到项目中

    2024年02月15日
    浏览(38)
  • 使用 Clojure 进行 OpenCV 开发简介

    从 OpenCV 2.4.4 开始,OpenCV 支持使用与 Android 开发几乎相同的接口进行桌面 Java 开发。 Clojure 是由 Java 虚拟机托管的一种现代 LISP 方言,它提供了与底层 JVM 的完全互操作性。这意味着我们甚至应该能够使用 Clojure REPL(Read Eval Print Loop)作为底层 OpenCV 引擎的交互式可编程接口

    2024年01月16日
    浏览(51)
  • 利用ffmpeg和opencv进行视频的解码播放

    引子 OpenCV中有自己的用于处理图片和视频的类VideoCapture,可以很方便的读入文件和显示。 现在视频数据流是ffmpeg解码h264文件得到的,由于要依赖该数据源进行相应的后续处理,所以需要将ffmpeg中得到的数据缓存转换成可以被OpenCV处理的Mat类对象。 ffmpeg介绍 FFmpeg是一个开源

    2024年02月13日
    浏览(45)
  • Android项目引入OpenCV和FFmpeg

    因为毕设项目涉及在安卓手机上处理音视频,需要使用OpenCV和FFmpeg库,所以前段时间一直在找Android如何引入OpenCV和FFmpeg,相关教程在网上可以搜到很多,但因为教程编写的时间都很久,很多都存在问题。本文以Opencv-4.5.1和FFmpeg-4.4版本为例,记录下Android项目引入两个音视频库

    2024年02月03日
    浏览(47)
  • opencv+ffmpeg环境(ubuntu)搭建全面详解

    1.1它们之间的联系 我们知道opencv主要是用来做图像处理的,但也包含视频解码的功能,而在视频解码部分的功能opencv是使用了ffmpeg。所以它们都是可以处理图像和视频的编解码,我个人感觉两个的侧重点不一样。 1.2它们之间的区别 这就要提上面我所说的它们的侧重点是不一

    2024年02月15日
    浏览(248)
  • Ubuntu环境下C++使用onnxruntime和Opencv进行YOLOv8模型部署

    目录 环境配置 系统环境 项目文件路径  文件环境  config.txt  CMakeLists.txt type.names  读取config.txt配置文件 修改图片尺寸格式 读取缺陷标志文件 生成缺陷随机颜色标识 模型推理 推理结果获取 缺陷信息还原并显示 总代码 Ubuntu18.04 onnxruntime-linux-x64 1.12.1:https://github.com/microsof

    2024年01月17日
    浏览(45)
  • VSCode使用docker环境进行开发

    为什么要使用使用docker环境进行开发? 1、切换环境时,只需要切换连接的镜像; 2、在不同系统进行开发时,均可以连接一个标准镜像,从而统一开发环境; 3、纯净开发环境,本机只需简单安装vscode 如何搭建docker服务? 前提需要在本地安装docker,打开终端执行 docker versi

    2024年02月16日
    浏览(36)
  • golang 使用 gomobile进行 Android 开发

    build gomobile成功后会在$GOPATH/bin目录生成gomobile可执行程序 初始化环境,自动下载安装依赖 若提示未找到ndk,根据提示的路径把ndk包复制过去即可 执行bind命令,后面跟上go代码所在的目录 目录结构如下图(包名分别为test和tree) 执行完命令后会在当前目录下生成一个arr包和

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包