视频截图-javacv

论坛 期权论坛 脚本     
匿名网站用户   2020-12-19 17:25   11   0

获取视频截图--javacv

之前在相关文章评论过,有人问我当中遇到的问题,所以写出来

maven依赖

<dependency>   
  <groupId>org.bytedeco</groupId>   
  <artifactId>javacv</artifactId>   
  <version>0.8</version>
</dependency>

代码很多,我也是网上找的,这里就不粘出来了,主要记录一下问题

代码在windows环境下完全没用问题,如果是在win环境下编译的放到liunx下跑会报错:

java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.bytedeco.javacpp.Loader.load(Loader.java:390)
    at org.bytedeco.javacpp.Loader.load(Loader.java:358)
    at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2539)
    at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:383)
    at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:377)
    at com.example.Application.convert(Application.java:53)
    at com.example.Application.run(Application.java:103)
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:674)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:693)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:969)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:958)
    at com.example.Application.main(Application.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:745)

仔细观察后,pom引的是win下的jar,所以需在liunx下编译,之后依然报错

仔细发现每次重启项目后第一次错误信息是:

java.lang.UnsatisfiedLinkError: no jniavdevice in java.library.path
 at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) ~[?:1.8.0_144]
 at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[?:1.8.0_144]
...
Caused by: java.lang.UnsatisfiedLinkError: /tmp/javacpp777320859500247/[图片]libjniavdevice.so: [图片]libXv.so.1: cannot open shared object file: No such file or directory

而第二次之后错误信息才是

java.lang.NoClassDefFoundError

应该是第一次启动需要读取加载环境,而我环境缺少相应类库,根据错误信息可以发现是我liunx环境问题,缺少libXv.so.1这个文件,网上搜一下,安装了即可

如果还有问题看一下jvm配置,线程堆的大小 -Xss256k



重新启动,即可成功!

这个是截取视频的代码原作者:点击打开链接

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP