JavaCV 學(xué)習(xí)(一):JavaCV 初體驗(yàn)

轉(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容