如何在龍芯架構和國產化操作系統平臺上運行javacv

如何將javacv中的native庫編譯到龍芯平臺

由於我們在上一篇中已經講到,java在龍芯平臺和國產操作系統“雙劍合璧基礎上的運行問題已經解決了。但是呢,javacv依賴的ffmpeg和opencv等庫都是c/c++庫,這些庫都需要我們自行編譯,所以我們還要知道如何編譯這些c/c++庫。
而好巧不巧的是,我們在上一章中也講了如何編譯龍芯mips架構的c/c++代碼,所以我們直接跳過編譯,直接講如何打包ffmpeg和opencv就好了。

如何將ffmpeg和opencv編譯到龍芯mips平臺

由於ffmpeg和opencv都是c/c++庫,而GCC4.6以後版本都可以通過下面這種配置來編譯到龍芯平臺

./configure 
--arch=mips 
--cpu=loongson3a

ffmpeg和opencv都參照這種方式編譯即可。

注意:GCC4.6以後才默認支持龍芯3A架構,所以請GCC版本較低的自行升級到最新版本即可。

按照這種方式,ffmpeg和opencv打包好了,要如何將他們放入javacv裏面呢?
我們爲了簡化流程,後面只用ffmpeg來講。

集成龍芯版FFmpeg到javacv

目前龍芯已經提供好了版本,只是用的人還太少,沒有編譯進主分支,所以我們需要自己把它放進去即可。
以1.5.4版本的javacv和4.3.1版本的ffmpeg爲例:
新建一個java項目,在org.bytedeco.ffmpeg.linux-mips64el路徑下把編譯好的ffmpeg文件(ffmpeg、ffprobe、xxx.so),然後打包成ffmpeg-4.3.1-1.5.4-linux-mips64el.jar包即可。
打包後的jar包爲: ffmpeg-4.3.1-1.5.4-linux-mips64el.jar

將這個包作爲依賴放入項目中。

opencv和其他庫同樣依照本方法集成。

構建龍芯版的javacpp到javacv

javacpp構建參考:https://github.com/bytedeco/javacpp-presets/wiki/Build-Environments
除此以外,還需要編譯一個基於龍芯平臺的javacpp-linux-mips64el。
該步驟需要按照javacpp的教程進行構建,構建完得到的javacpp-linux-mips64el.jar,同樣作爲依賴包放入項目中。

javacpp-linux-mips64el只需要構建一次,不需要重複構建。

到這裏爲止,我們就可以在龍芯平臺上運行javacv中有關ffmpeg的功能了。

如果覺得博主寫得還不錯,歡迎”關注、點贊、收藏“一鍵三連。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章