轉(zhuǎn)載自 https://www.cnblogs.com/renhui/p/7327614.html;因?yàn)槭遣煌脚_(tái),只能復(fù)制轉(zhuǎn)載!
JavaCV 學(xué)習(xí)(一):JavaCV 初體驗(yàn)
最近工作中因?yàn)轫?xiàng)目的原因邊學(xué)邊用,接觸并使用JavaCV做了一些相關(guān)的產(chǎn)品,目前覺(jué)得,JavaCV在圖形圖像(人家本身就是一個(gè)視覺(jué)庫(kù))的功能真的挺強(qiáng)大,而且使用起來(lái)避免了復(fù)雜的平臺(tái)處理。下面整理一下對(duì)JavaCV庫(kù)的初步理解。
1.?JavaCV 簡(jiǎn)介
JavaCV是對(duì)各種常用計(jì)算機(jī)視覺(jué)庫(kù)的封裝后的一組jar包,其中封裝了FFmpeg、OpenCV等計(jì)算機(jī)視覺(jué)編程人員常用庫(kù)的接口,可以通過(guò)其中的Utility類方便的在包括Android在內(nèi)的Java平臺(tái)上調(diào)用這些接口。其中使用最多的應(yīng)該就是FFmpeg了。
最開始Javacv是googlecode下面的一個(gè)項(xiàng)目,后來(lái)遷移到了github,因此JavaCV相關(guān)的包名也由com.googlecode.javacv改為org.bytedeco.javacv。目前最新版本是 1.3.3。項(xiàng)目地址:https://github.com/bytedeco/javacv
2. JavaCV 基本使用指南
從github項(xiàng)目中下載打包好的jar包,其中javacpp.jar 和
javacv.jar是必須的兩個(gè)包,然后需要什么功能就添加額外的包。例如我需要用到ffmpeg進(jìn)行視頻錄制,則需要添加ffmpeg.jar和ffmpeg-android-arm.jar(打包的arm平臺(tái)so庫(kù))。這里很方便的地方是,so庫(kù)文件都放在了jar文件里面,在集成的時(shí)候很簡(jiǎn)潔明了。?
3. JavaCV 相關(guān)例子
短視頻錄制:
https://github.com/peirenlei/FFmpegRecorder
https://github.com/CrazyOrr/FFmpegRecorder
短視頻錄制 + 拉流存儲(chǔ) + 視頻轉(zhuǎn)播:
https://github.com/lmylr/LyMedia
4. JavaCV常見(jiàn)問(wèn)題
4.1. 在Android M平臺(tái),會(huì)有異常java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
這個(gè)問(wèn)題,在作者的Issue里面也有人反映過(guò):
https://github.com/bytedeco/javacv/issues/245、https://github.com/bytedeco/javacv/issues/579
最終是通過(guò)ReLinker解決的:The UnsatisfiedLinkError X File (a real experience)
解決這個(gè)問(wèn)題之前從未想過(guò)System.loadLibrary("")會(huì)不可靠,在這里替換為ReLinker.recursively().loadLibrary()之后,問(wèn)題就解決了。
分類:Java CV