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/245https://github.com/bytedeco/javacv/issues/579 

最終是通過ReLinker解決的:The UnsatisfiedLinkError X File (a real experience)

解決這個問題之前從未想過System.loadLibrary("")會不可靠,在這里替換為ReLinker.recursively().loadLibrary()之后,問題就解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM