如何在龙芯架构和国产化操作系统平台上运行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的功能了。

如果觉得博主写得还不错,欢迎”关注、点赞、收藏“一键三连。

eguid原创文章,如未说明出处和作者名,禁止转载。 博主主更新博客为:eguid.blog.csdn.net。其他平台的小伙伴如需联系博主,请转到csdn,谢谢。 欢迎大家积极开心的加入流媒体讨论群:社区一群:770640961,社区二群:608423839,社区三群:556722677,社区四群:689672017
原文地址:https://www.cnblogs.com/eguid/p/14962018.html