目录
简述
Maven依赖
获取结果单位毫秒
获取结果单位秒
总结
简述
获取mp4视频的时长,没啥好说明的。
Maven依赖
org.projectlombok
lombok
true
org.mp4parser
isoparser
1.9.41
获取结果单位毫秒
上代码
import lombok.extern.slf4j.Slf4j;
import org.mp4parser.IsoFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@Slf4j
public class Mp4Utils {
public static long readDuration(Path mp4Path) {
if (Files.notExists(mp4Path) || !Files.isReadable(mp4Path)) {
log.warn("文件路径不存在或不可读 {}", mp4Path);
return 0;
}
try {
IsoFile isoFile = new IsoFile(mp4Path.toFile());
long duration = isoFile.getMovieBox().getMovieHeaderBox().getDuration();
// long timescale = isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
return duration;
} catch (IOException e) {
log.error("读取MP4文件时长出错", e);
return 0;
}
}
public static void main(String[] args) {
System.out.println(readDuration(Paths.get("C:\Users\huyi\Desktop\测试.mp4")));
}
}
执行结果:
验证结果:
获取结果单位秒
上代码
import lombok.extern.slf4j.Slf4j;
import org.mp4parser.IsoFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@Slf4j
public class Mp4Utils {
public static long readDuration(Path mp4Path) {
if (Files.notExists(mp4Path) || !Files.isReadable(mp4Path)) {
log.warn("文件路径不存在或不可读 {}", mp4Path);
return 0;
}
try {
IsoFile isoFile = new IsoFile(mp4Path.toFile());
long duration = isoFile.getMovieBox().getMovieHeaderBox().getDuration();
long timescale = isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
return duration / timescale;
} catch (IOException e) {
log.error("读取MP4文件时长出错", e);
return 0;
}
}
public static void main(String[] args) {
System.out.println(readDuration(Paths.get("C:\Users\huyi\Desktop\测试.mp4")));
}
}
执行结果:
总结
没啥好总结的,今天南京好冷。
如果本文对你有帮助,请点个赞支持一下吧。



