欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux环境下javacv视频抓图失败

程序员文章站 2022-07-13 14:26:31
...

linux 环境javacv视频抓取第一帧失败

异常信息:

[2020-09-14 15:16:21,469] [ERROR] [ThumbnailThreadPool113-1] [] [resource.impl.ResourceServiceImpl] - Exception Caughtedavformat_open_input() error -5: Could not open input "https://.../group1/M00/00/86/test.mp4". (Has setFormat() been called?)
org.bytedeco.javacv.FrameGrabber$Exception: avformat_open_input() error -5: Could not open input "https://.../group1/M00/00/86/test.mp4".   	(Has setFormat() been called?)
	at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:432) ~[javacv-1.1.jar:1.1]
	at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:380) ~[javacv-1.1.jar:1.1]
	......

pom依赖

	<dependency>
		<groupId>org.bytedeco</groupId>
		<artifactId>javacv</artifactId>
		<version>1.1</version>
	</dependency>
	<dependency>
		<groupId>nu.pattern</groupId>
		<artifactId>opencv</artifactId>
		<version>2.4.9-4</version>
	</dependency>

处理过程

在windows环境下用同一个视频做本地测试,抓取第一帧正常,问题不能复现;
在mac环境用下同一个视频做本地测试,抓取第一帧正常,问题不能复现;
此时开始怀疑是否在linux环境下需要安装某些软件,网上各种查资料,无果。
......
在无计可施时网上看到一篇文章,发现竟然是缺少maven依赖的原因,替换依赖后问题解决。

替换pom依赖

 <dependency>
        <groupId>org.bytedeco</groupId>
        <artifactId>javacv</artifactId>
        <version>1.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.bytedeco</groupId>
        <artifactId>javacpp</artifactId>
        <version>1.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.bytedeco.javacpp-presets</groupId>
        <artifactId>opencv-platform</artifactId>
        <version>3.4.1-1.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.bytedeco.javacpp-presets</groupId>
        <artifactId>ffmpeg-platform</artifactId>
        <version>3.4.2-1.4.1</version>
    </dependency>

参考文章:https://blog.csdn.net/a1053646895/article/details/81335481