javacv 基础04-读取mp4,avi等视频文件并截图保存图片到本地

news2024/12/23 15:49:51

javacv 读取mp4,avi等视频文件并截图保存图片到本地

代码如下:

package com.example.javacvstudy;


import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

import org.opencv.core.Core;
import org.springframework.boot.test.context.SpringBootTest;



@SpringBootTest
class ReadMp4 {


    public static void main(String[] args) {
// 加载OpenCV库
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

        // 视频文件路径
        String videoPath = "D:\\down\\baozi.mp4"; // 替换为您的视频路径

        // 保存帧截图的文件夹路径
        String outputFolderPath = "D:\\temp\\img"; // 替换为您的输出文件夹路径
        File outputFolder = new File(outputFolderPath);
        outputFolder.mkdirs();

        // 打开视频文件
        try (FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(videoPath)) {
            grabber.start();

            // 遍历视频的每一帧
            int frameNumber = 0;
            Java2DFrameConverter converter = new Java2DFrameConverter();
            while (true) {
                Frame frame  =  grabber.grabImage();
                if (frame == null) {
                    break;
                }

                // 将帧转换为BufferedImage
                BufferedImage image = converter.convert(frame);

                // 保存图片
                String outputFilePath = outputFolderPath + File.separator + "frame_" + frameNumber + ".jpg";
                File outputFile = new File(outputFilePath);
                ImageIO.write(image, "jpg", outputFile);

                frameNumber++;
                Thread.sleep(1000);
            }
            grabber.stop();
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("帧截图保存完成!");

    }



}

运行结果:

在这里插入图片描述

测试视频mp4 下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《算法竞赛·快冲300题》每日一题:“浇水”

《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 浇…

得帆信息东区总经理周俊君:该采用低代码和无代码给繁重的SAP减减负了

数字化转型对任何有竞争力的业务都至关重要,组织踏上数字化转型之旅,意味着要么重新开始,要么在现有IT建设的基础上再接再厉。这段旅程不仅仅是采用新技术,而是寻求在高可用性的同时为客户提供差异化价值。为了帮助客户达成这些目…

报表技术POI和EasyPOI处理百万数据、CSV、Word

1、了解百万数据的导入 1.1 需求分析 使用POI基于事件模式解析案例提供的Excel文件 1.2 思路分析 用户模式: 加载并读取Excel时,是通过一次性的将所有数据加载到内存中再去解析每个单元格内容。当Excel数据量较大时,由于不同的运行环境可…

欧盟GMP附录-对气流流型的11条要求及解读

欧盟GMP附录《无菌药品生产》已经生效,本文总结了该附录对气流流型的11条要求,并进行延伸解读。 【气流流型检测仪】 具体11条如下,来自EU GMP 无菌附录。 1.洁净室和区域内的气流模式应可视化,以证明气流不会从低洁净级别区域进…

【数据结构】带头双向循环链表及其实现

目录 1.带头双向循环链表 2.带头双向循环链表实现 2.1初始化 2.2销毁 2.3头插 2.4链表打印 2.5头删数据 2.6尾插数据 2.7尾删数据 2.8链表判空 2.9查找一个数据 2.10在pos位置前插入数据 2.11删除pos位置 2.12求链表的长度 2.顺序表和链表的比较 1.带头双向循环…

字节前端实习的两道算法题,看看强度如何

最长严格递增子序列 题目描述 给你一个整数数组nums,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7…

使用DataX对MySQL 8.1进行数据迁移

1. 环境准备 1.1 下载DataX 这里采用直接下载的方式:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz,不过这个包是真的有点大。 1.2 安装Python Python下载地址:https://www.python.org/downloads/ 安装的时…

【深度思考】如何优雅的实现脱敏?

最近做了个脱敏的需求,要对系统中的敏感信息,如手机号、车牌号、身份证号、银行卡号等进行脱敏显示。 效果类似下面这样: 简单来说,就是对敏感信息中的某几位进行掩码显示,常见的一般是使用*。 本篇文章就来讲解下在…

解析肖特基二极管NRVBS360BNT3G整流器的优缺点及应用

何为肖特基二极管整流器? 是一种常用的电子器件,用于将交流信号转换为直流信号。它由一个PN结和一个金属接触组成,具有较低的正向压降和快速的开关特性。 在正向偏置下,肖特基二极管具有较低的正向压降,通常为0.3-0.…

如何防范恶意邮件?只要做到这几点

目前,网络钓鱼仍然是企业面临的最大威胁之一,而恶意电子邮件只是网络攻击的起点。一旦进入,威胁行动者就可以展开下一阶段的攻击,例如勒索软件或数据窃取。而这将给被攻击的企业造成巨大的声誉和经济损失,甚至涉及法律…

node升级带来的问题及解决方案(digital envelope routines::unsupported)

由于项目需要将 node版本从16升级到了18,但是原有的老项目还是使用的16的环境,导致在运行老版本的时候出现错误 错误信息如下 Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.…

文件恢复工具推荐,这4款高效恢复数据!

“有什么好用的文件恢复工具推荐吗?我经常莫名其妙丢失文件!而且还是一些很重要的文文件,我都不知道该怎么办了!请大家帮帮我,感谢大家!” 文件恢复对各位电脑用户来说可能都并不陌生。在使用电脑时&#x…

win | wireshark | 在win上跑lua脚本 解析数据包

前提说明:之前是在linux 系统上配置的,然后现在 在配置lua 脚本 ,然后 分析指定协议 的 数据包 其实流程也比较简单,但 逻辑需要缕清来 首先要把你 预先准备的 xxx.lua 文件放到wireshark 的安装文件中,(我…

easyexcel poi根据模板导出Excel

1.导入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.1</version> </dependency>2.代码实现 package com.jiayou.peis.manage.biz.cotroller;import com.alibaba.excel.…

vue2中使用全屏screenfull插件遇到的问题

1、安装screenfull6.0.2后&#xff0c;启动项目。报错 解决方案&#xff1a; 第一种&#xff1a;卸载6.0的版本&#xff0c;安装 screenfull5.1.0 第二种&#xff1a; vue.config.js文件中配置属性 第三种&#xff1a; 安装插件babel/plugin-proposal-nullish-coalescing-o…

c语言练习题40:深入理解字符串常量

深入理解字符串常量 #include<stdio.h> int main() {char str1[] "abcd";char* str2 "abcd";printf("%s\n", str1);printf("%s\n", str2);return 0; } char str1[] "abcd";是用字符串初始化数组。 char* str2 &…

AMBEO 双声道空间音频现已迈进直播制作领域

图片来源&#xff1a;Unsplash&#xff0c;作者&#xff1a;Bence Balla-Schottner AMBEO 双声道空间音频现已迈进直播制作领域 为所有观众解锁更加身临其境的听觉体验 森海塞尔将功能强大的 AMBEO 双声道空间音频技术引入了广播电视直播应用领域&#xff0c;对所有体育赛事广…

ssm实验室开放管理系统源码和论文

ssm实验室开放管理系统源码和论文096 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归…

海外ASO优化之如何分析我们的应用

分析我们的应用在商店中的可见度的当前状况&#xff0c;我们当前使用的关键词是否带来了任何转化&#xff1f;我们在每个关键词查询的搜索结果中排名如何&#xff1f;我们的类别排名如何&#xff1f; 1、将相关的添加到我们的跟踪列表中。 观察每个项目的变化和排名。接下来转…