javacv视频抽帧的实现过程详解(附代码)
更新时间:2019年07月11日 10:16:26 作者:行走在江湖
这篇文章主要介绍了javacv视频抽帧的实现过程详解(附代码),视频抽帧可以做一些处理,比如水印,去水印等操作,然后再合成视频,需要的朋友可以参考下
视频抽帧可以做一些处理,比如水印,去水印等操作,然后再合成视频。下面直接上代码:
引入maven步骤看javacv去水印的文章
这里直接上关键操作:
/** * 视频文件指定时间段的帧截取 * @param file * @param start * @param end */ public static List<File> videoIntercept(File file, Integer start, Integer end) { Frame frame = null; List<File> files = Lists.newArrayList(); FFmpegFrameGrabber fFmpegFrameGrabber = new FFmpegFrameGrabber(file); String filePath = "D://video//images//"; String fileTargetName = "movie"; try { fFmpegFrameGrabber.start(); int ftp = fFmpegFrameGrabber.getLengthInFrames(); System.out.println("开始视频提取帧"); for (int i=0 ; i < ftp ; i++){ if( i >= start && i <= end){ frame = fFmpegFrameGrabber.grabImage(); doExecuteFrame(frame, filePath, fileTargetName, i ,files); } } System.out.println("============运行结束============"); fFmpegFrameGrabber.stop(); } catch (IOException E) { // Loggers.ERROR.error("视频抽帧异常", e); } return files; } public static void doExecuteFrame(Frame frame, String targetFilePath, String targetFileName, int index ,List<File> files) { if ( frame == null || frame.image == null) { return; } Java2DFrameConverter converter = new Java2DFrameConverter(); String imageMat = "jpg"; String fileName = targetFilePath + targetFileName + "_" + index + "." + imageMat; BufferedImage bi = converter.getBufferedImage(frame); File output = new File(fileName); files.add(output); try{ ImageIO.write(bi, imageMat, output); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { List<File> files = videoIntercept(new File("D://video//1553583033205-480p.mp4"), 10, 20); System.out.println(files); }
我们可以看到文件夹下抽取了视频的第10,20之间的帧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Java中的动态数组和栈Vector Stack使用区别介绍
这篇文章主要为大家介绍了Java中的动态数组和栈Vector Stack使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-10-10聊聊SpringCloud中的Ribbon进行服务调用的问题
SpringCloud-Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。本文给大家介绍SpringCloud中的Ribbon进行服务调用的问题,感兴趣的朋友跟随小编一起看看吧2022-01-01spring-boot-klock-starter V1.1 主体功能重大更新内容介绍
这篇文章主要介绍了spring-boot-klock-starter V1.1 主体功能重大更新内容描述,非常不错,具有参考借鉴价值,需要的朋友可以参考下2018-01-01
最新评论