如何在龍芯架構和國產化操作系統平台上運行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的功能了。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM