最近工做中由於項目的緣由邊學邊用,接觸並使用JavaCV作了一些相關的產品,目前以爲,JavaCV在圖形圖像(人家自己就是一個視覺庫)的功能真的挺強大,並且使用起來避免了複雜的平臺處理。下面整理一下對JavaCV庫的初步理解。java
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
從github項目中下載打包好的jar包,其中javacpp.jar 和 javacv.jar是必須的兩個包,而後須要什麼功能就添加額外的包。例如我須要用到ffmpeg進行視頻錄製,則須要添加ffmpeg.jar和ffmpeg-android-arm.jar(打包的arm平臺so庫)。這裏很方便的地方是,so庫文件都放在了jar文件裏面,在集成的時候很簡潔明瞭。 github
短視頻錄製:編程
https://github.com/peirenlei/FFmpegRecorder
https://github.com/CrazyOrr/FFmpegRecordergoogle
短視頻錄製 + 拉流存儲 + 視頻轉播:code
https://github.com/lmylr/LyMedia視頻
java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
這個問題,在做者的Issue裏面也有人反映過:接口
https://github.com/bytedeco/javacv/issues/245、https://github.com/bytedeco/javacv/issues/579 get
最終是經過ReLinker解決的:The UnsatisfiedLinkError X File (a real experience)
解決這個問題以前從未想過System.loadLibrary("")
會不可靠,在這裏替換爲ReLinker.recursively().loadLibrary()以後,問題就解決了。