JavaCV 學習(一):JavaCV 初體驗

最近工做中由於項目的緣由邊學邊用,接觸並使用JavaCV作了一些相關的產品,目前以爲,JavaCV在圖形圖像(人家自己就是一個視覺庫)的功能真的挺強大,並且使用起來避免了複雜的平臺處理。下面整理一下對JavaCV庫的初步理解。java

1. JavaCV 簡介

JavaCV是對各類經常使用計算機視覺庫的封裝後的一組jar包,其中封裝了FFmpeg、OpenCV等計算機視覺編程人員經常使用庫的接口,能夠經過其中的Utility類方便的在包括Android在內的Java平臺上調用這些接口。其中使用最多的應該就是FFmpeg了。 android

最開始Javacv是googlecode下面的一個項目,後來遷移到了github,所以JavaCV相關的包名也由com.googlecode.javacv改成org.bytedeco.javacv。目前最新版本是 1.3.3。項目地址:https://github.com/bytedeco/javacvgit

2. JavaCV 基本使用指南

從github項目中下載打包好的jar包,其中javacpp.jar 和 javacv.jar是必須的兩個包,而後須要什麼功能就添加額外的包。例如我須要用到ffmpeg進行視頻錄製,則須要添加ffmpeg.jar和ffmpeg-android-arm.jar(打包的arm平臺so庫)。這裏很方便的地方是,so庫文件都放在了jar文件裏面,在集成的時候很簡潔明瞭。 github

3. JavaCV 相關例子

短視頻錄製:編程

https://github.com/peirenlei/FFmpegRecorder 
https://github.com/CrazyOrr/FFmpegRecordergoogle

短視頻錄製 + 拉流存儲 + 視頻轉播:code

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 get

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

解決這個問題以前從未想過System.loadLibrary("")會不可靠,在這裏替換爲ReLinker.recursively().loadLibrary()以後,問題就解決了。

相關文章
相關標籤/搜索