Java 获取 视频 时长

复制代码
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv-platform</artifactId>
    <version>1.5.7</version> 
</dependency>

首先在 pom 中引入包

根据以下工具类,直接调用传入文件路径即可

复制代码
public static Integer getMp4Seconds(String filePaths){
        String filePath = filePaths; // 替换为你的MP4文件路径
        int seconds = 0;
        FFmpegFrameGrabber grabber = null;
        try {
            grabber = new FFmpegFrameGrabber(filePath);
            grabber.start();
            //这一步获取的是微妙,除以 1000000 获取保留整数部位的秒
            seconds = Math.toIntExact(grabber.getLengthInTime())/1000000;
            System.out.println("Duration of the MP4 file: " + seconds + " s");
            return seconds; // 返回秒
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        } finally {
            if (grabber != null) {
                try {
                    grabber.stop();
                } catch (Exception ignored) {
                }
            }
        }
    }
相关推荐
Boilermaker19925 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维5 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_996 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子6 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34166 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体17 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wszy18097 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
wszy18097 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
程序员小假8 小时前
我们来说一下无锁队列 Disruptor 的原理
java·后端
资生算法程序员_畅想家_剑魔8 小时前
Kotlin常见技术分享-02-相对于Java 的核心优势-协程
java·开发语言·kotlin