关于javacv不支持Linux运行的BUG

博客讲述因原JavaCV导入包不支持Linux运行,将其版本进行更换。还给出了视频帧提取的代码,包括导入相关依赖包,定义fetchFrame方法从视频文件中提取帧并保存为图片,以及FrameToBufferedImage方法将帧转换为BufferedImage对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本导入包是这样

org.bytedeco
javacv
0.8

因不支持linux运行,而改成更高的版本

org.bytedeco
javacpp
1.4.1


org.bytedeco
javacv
1.4.1


org.bytedeco.javacpp-presets
opencv-platform
3.4.1-1.4.1


org.bytedeco.javacpp-presets
ffmpeg-platform
3.4.2-1.4.1

//代码在下
public static void fetchFrame(String videofile, String framefile) {
// String tempPath=" ";//保存的目标路径
File targetFile = new File(framefile);
// if (!targetFile.getParentFile().exists()) {
// targetFile.getParentFile().mkdirs();
// }
try{
File file2 = new File(videofile);
if (file2.exists()) {
FFmpegFrameGrabber ff = new FFmpegFrameGrabber(file2);
ff.start();
int ftp = ff.getLengthInFrames();
int flag=0;
Frame frame = null;
while (flag <= ftp) {
//获取帧
frame = ff.grabImage();
//过滤前3帧,避免出现全黑图片
if ((flag>3)&&(frame != null)) {
break;
}
flag++;
}
ImageIO.write(FrameToBufferedImage(frame), “jpg”, targetFile);
ff.close();
ff.stop();
}
}catch(Exception e){
}
}
private static RenderedImage FrameToBufferedImage(Frame frame) {
//创建BufferedImage对象
Java2DFrameConverter converter = new Java2DFrameConverter();
BufferedImage bufferedImage = converter.getBufferedImage(frame);
return bufferedImage;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值