JavaCV 学习(一):JavaCV 初体验
最近工作中因为项目的原因边学边用,接触并使用JavaCV做了一些相关的产品,目前觉得,JavaCV在图形图像(人家本身就是一个视觉库)的功能真的挺强大,而且使用起来避免了复杂的平台处理。下面整理一下对JavaCV库的初步理解。
1. JavaCV 简介
JavaCV是对各种常用计算机视觉库的封装后的一组jar包,其中封装了FFmpeg、OpenCV等计算机视觉编程人员常用库的接口,可以通过其中的Utility类方便的在包括Android在内的Java平台上调用这些接口。其中使用最多的应该就是FFmpeg了。
最开始Javacv是googlecode下面的一个项目,后来迁移到了github,因此JavaCV相关的包名也由com.googlecode.javacv
改为org.bytedeco.javacv。
目前最新版本是 1.3.3。项目地址:https://github.com/bytedeco/javacv
2. JavaCV 基本使用指南
从github项目中下载打包好的jar包,其中javacpp.jar 和 javacv.jar是必须的两个包,然后需要什么功能就添加额外的包。例如我需要用到ffmpeg进行视频录制,则需要添加ffmpeg.jar和ffmpeg-android-arm.jar(打包的arm平台so库)。这里很方便的地方是,so库文件都放在了jar文件里面,在集成的时候很简洁明了。
3. JavaCV 相关例子
短视频录制:
https://github.com/peirenlei/FFmpegRecorder
https://github.com/CrazyOrr/FFmpegRecorder
短视频录制 + 拉流存储 + 视频转播:
https://github.com/lmylr/LyMedia
4. JavaCV常见问题
4.1. 在Android M平台,会有异常java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
这个问题,在作者的Issue里面也有人反映过:
https://github.com/bytedeco/javacv/issues/245、https://github.com/bytedeco/javacv/issues/579
最终是通过ReLinker解决的:The UnsatisfiedLinkError X File (a real experience)
解决这个问题之前从未想过System.loadLibrary("")
会不可靠,在这里替换为ReLinker.recursively().loadLibrary()之后,问题就解决了。
最新文章
- 不使用session,借助redis实现验证码
- 八月25日认识java
- 2.5---链表来进行加法,链式A+B(CC150)
- Apache-Shiro+Zookeeper系统集群安全解决方案之缓存管理
- android 利用TrafficStats类获取本应用的流量
- lintcode :最长上升连续子序列
- bzoj 1901: Zju2112 Dynamic Rankings(树套树)
- HTML 块级元素 行内元素
- C#基础(203)实例方法和重载方法总结,构造方法与实例方法总结,this关键字
- 向SqlParameter内动态添加参数
- HDU4845(SummerTrainingDay02-C 状态压缩bfs)
- Adobe AIR(跨平台应用)
- Buildroot make网卡interfaces文件被修改
- 基于iTop4412的FM收音机系统设计(二)
- vim学习选取多行(转)
- 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/微软拼音)
- Nginx卸载重装问题
- C#中的unsafe
- LT3756/LT3756-1/LT3756-2 - 100VIN、100VOUT LED 控制器
- oracle 笔记---(七)__角色