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

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


__EOF__

  • 本文作者: eguid
  • 本文链接: https://www.cnblogs.com/eguid/p/14962018.html
  • 关于博主: JavaCV 技术拓荒者。专注于音视频流媒体、计算机视觉以及计算机图形技术的探索与实践。
  • 版权声明: 博客所有文章和作品版权归作者 eguid 所有,未经作者同意,禁止转载。取得作者同意后转载必须注明作者名和原文链接
  • 声援博主: 支持博主原创技术文章,欢迎推荐、关注、收藏!!!