java - 如何使用 xuggler 获取视频的持续时间长度

标签 java xuggler

此代码读取长持续时间,但是当它转换为时间格式“hh:mm:ss”的日期时,它给出不同的值,视频长度为 00:08:07。这段代码有什么问题

String filename = "C:\\Documents\\Airtel Youthstar-Tutorial.mp4";   
    IContainer container = IContainer.make();  
    int result = container.open(filename, IContainer.Type.READ, null);  
    long duration = container.getDuration();  
    System.out.println("Duration (ms): " + duration);  

最佳答案

实际上,您的代码返回以微秒为单位的时间。如果你想获取java.util.Duration,你应该使用:

public static Duration getVideoDuration(String videoPath) {
    IContainer container = IContainer.make();
    int result = container.open(videoPath, IContainer.Type.READ, null);
    long durationInMicrosec = container.getDuration();
    long durationInNanoSec = durationInMicrosec * 1000;     
    return Duration.ofNanos(durationInNanoSec);
}

为了格式化结果时间,您可以使用@SASM的代码,他的代码的输入应该是

long ms = getVideoDuration("your_path_here").toMillis()

关于java - 如何使用 xuggler 获取视频的持续时间长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36286449/

相关文章:

java - Xuggler 无法打开输出 url 错误

ubuntu - 在 ubuntu 11.10 中安装 xuggler 时收到错误消息

java - 使用 POI API 在 Excel 中显示百分比值

java - 警告 - 无法通过类加载器访问类 'XXX/XXX/XXX '

java - 为什么我的 Xuggle 视频转换器无法工作

java - 无法使用 Xuggler 编码视频

java - Ioshed 2012 HomeActivity.class 未找到

java - Spring Boot Admin 日志中重复出现 AsyncRequestTimeoutException

java - 我怎样才能找到任意数字之间的偶数和奇数?

java - Swing 在不同的平台上工作不同