视频截图-javacv

获取视频截图--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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值