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) {
                }
            }
        }
    }
相关推荐
摇滚侠13 小时前
面试实战 问题三十四 对称加密 和 非对称加密 spring 拦截器 spring 过滤器
java·spring·面试
xqqxqxxq13 小时前
Java 集合框架之线性表(List)实现技术笔记
java·笔记·python
L0CK14 小时前
RESTful风格解析
java
程序员小假14 小时前
我们来说说 ThreadLocal 的原理,使用场景及内存泄漏问题
java·后端
何中应14 小时前
LinkedHashMap使用
java·后端·缓存
tryxr14 小时前
Java 多线程标志位的使用
java·开发语言·volatile·内存可见性·标志位
talenteddriver14 小时前
java: Java8以后hashmap扩容后根据高位确定元素新位置
java·算法·哈希算法
云泽80814 小时前
STL容器性能探秘:stack、queue、deque的实现与CPU缓存命中率优化
java·c++·缓存
yyy(十一月限定版)14 小时前
c语言——栈和队列
java·开发语言·数据结构
本地运行没问题14 小时前
基于Java注解、反射与动态代理:打造简易ORM框架
java