最近提供需要提供音视频服务。参考网上的开源程序,提供了一个JAVA版的RTSP转HTTP的服务,并使用ffmpeg作为播放工具。
该程序在自己的机器上没有问题,但生成jar包后放置到服务器上运行出错,出错的关键字是“java.lang.NoClassDefFoundError:Could not initialize class org.bytedeco.ffmpeg.global.avutil”。
服务器是Windows Server2008。
最开始想的是Windows Server2008不支持流媒体服务造成的,安装上KB963697,然后通过MCC安装上流媒体服务后,发现依然如此。
找解决方案,找到了这几篇博客:【FAQ】解决报错Could not initialize class org.bytedeco.javacpp.avutil_bytedeco 报错_weixin_42534940的博客-CSDN博客
解决:Could not initialize class org.bytedeco.ffmpeg.global.avutil_Cyz971010的博客-CSDN博客
https://stackoverflow.com/questions/42829974/java-lang-noclassdeffounderror-could-not-initialize-class-org-bytedeco-javacpp
CameraServerApplication启动失败 · Issue #I2DAD9 · banmajio/RTSPtoHTTP-FLV - Gitee.com
javacv使用笔记 - 雾非雾的情思
发现这一系列提供的解决方案均无法解决该问题,但给了一个思路,是java库的版本的问题。
最后发现github上的javacvGitHub - bytedeco/javacv: Java interface to OpenCV, FFmpeg, and moresss
上面有最新的库配置,文件如下:文章来源:https://www.toymoban.com/news/detail-545295.html
<dependencies>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.5.9</version>
</dependency>
<!-- Additional dependencies required to use CUDA and cuDNN -->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>opencv-platform-gpu</artifactId>
<version>4.7.0-1.5.9</version>
</dependency>
<!-- Optional GPL builds with (almost) everything enabled -->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg-platform-gpl</artifactId>
<version>6.0-1.5.9</version>
</dependency>
</dependencies>
修改该文件的pom.xml,和上面一致,问题解决。文章来源地址https://www.toymoban.com/news/detail-545295.html
到了这里,关于Could not initialize class org.bytedeco.javacpp.avutil问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!