JavaCV
依赖包体积?相信很多同学在刚开始使用 JavaCV 计算机视觉库进行开发的时候都会碰到这个问题,JavaCV视觉库内包含丰富的常用工具包,包括:OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, CL PS3 Eye Driver, videoInput, ARToolKitPlus, flandmark, Leptonica, and Tesseract… 博主就不一一列举了,感兴趣的同学可以查看相关源码,地址如下:JavaCV。
博主正在开发音视频流采集和录制功能,需要用到的工具包主要包括 OpenCV, FFmpeg以及平台相关的依赖包,但并不需要用到所有的依赖,优化和降低依赖包体积的需求就出现了。
待我查阅了相关的资料,整理并提供了以下快速解决方案,请往下看。
博主粗略的计算了一下,javacv-platform依赖包大概 883.5MB ,噩待优化。
<dependency>
<groupId>org.bytedecogroupId>
<artifactId>javacv-platformartifactId>
<version>1.5.8version>
dependency>
以下图片是冗余的项目Jar包,里面包含大量未使用到的依赖
以下依赖项可根据不同的平台变量进行切换,方便适配各平台进行开发
<properties>
<javacv.version>1.5.8javacv.version>
<javacv.opencv.version>4.6.0-1.5.8javacv.opencv.version>
<javacv.ffmpeg.version>5.1.2-1.5.8javacv.ffmpeg.version>
<javacv.openblas.version>0.3.21-1.5.8javacv.openblas.version>
<javacpp.platform.android-arm>android-armjavacpp.platform.android-arm>
<javacpp.platform.android-arm64>android-arm64javacpp.platform.android-arm64>
<javacpp.platform.android-x86>android-x86javacpp.platform.android-x86>
<javacpp.platform.android-x86_64>android-x86_64javacpp.platform.android-x86_64>
<javacpp.platform.ios-arm>ios-armjavacpp.platform.ios-arm>
<javacpp.platform.ios-arm64>ios-arm64javacpp.platform.ios-arm64>
<javacpp.platform.ios-x86>ios-x86javacpp.platform.ios-x86>
<javacpp.platform.ios-x86_64>ios-x86_64javacpp.platform.ios-x86_64>
<javacpp.platform.macosx-x86_64>macosx-x86_64javacpp.platform.macosx-x86_64>
<javacpp.platform.linux-armhf>linux-armhfjavacpp.platform.linux-armhf>
<javacpp.platform.linux-arm64>linux-arm64javacpp.platform.linux-arm64>
<javacpp.platform.linux-ppc64le>linux-ppc64lejavacpp.platform.linux-ppc64le>
<javacpp.platform.linux-x86>linux-x86javacpp.platform.linux-x86>
<javacpp.platform.linux-x86_64>linux-x86_64javacpp.platform.linux-x86_64>
<javacpp.platform.windows-x86>windows-x86javacpp.platform.windows-x86>
<javacpp.platform.windows-x86_64>windows-x86_64javacpp.platform.windows-x86_64>
properties>
<dependencies>
<dependency>
<groupId>org.bytedecogroupId>
<artifactId>javacppartifactId>
<version>${javacv.version}version>
<classifier>${javacpp.platform.windows-x86_64}classifier>
dependency>
<dependency>
<groupId>org.bytedecogroupId>
<artifactId>openblasartifactId>
<version>${javacv.openblas.version}version>
<classifier>${javacpp.platform.windows-x86_64}classifier>
dependency>
<dependency>
<groupId>org.bytedecogroupId>
<artifactId>opencvartifactId>
<version>${javacv.opencv.version}version>
<classifier>${javacpp.platform.windows-x86_64}classifier>
dependency>
<dependency>
<groupId>org.bytedecogroupId>
<artifactId>ffmpegartifactId>
<version>${javacv.ffmpeg.version}version>
<classifier>${javacpp.platform.windows-x86_64}classifier>
dependency>
<dependency>
<groupId>org.bytedecogroupId>
<artifactId>javacvartifactId>
<version>${javacv.version}version>
dependency>
dependencies>
使用以上优化后的依赖,体积直接减少了 807MB。
阶段 | 体积 |
---|---|
初始包 | 69.5MB |
优化前 | 953MB |
优化后 | 146MB |
通过图表可以看出,优化效果还是非常明显的,又可以愉快的进行开发了。写作不易,一键三连。
交友小贴士:
博主Github,Gitee同名账号,Follow 一下就可以一起愉快的玩耍了,更多精彩文章请持续关注。