此代码读取长持续时间,但是当它转换为时间格式“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/