我有很多视频文件。所有类型都不同(mkv、avi、mp4、flv 等)。 我想迭代这些文件并获取电影的持续时间。
目前我使用vlcj,这还可以,但代码有点让我困惑。 我必须播放媒体才能获得长度。然后停止媒体。这很奇怪,不是吗。
我可以做得更好吗?我听说过 xuggler,但开发已经停止了。 我需要一个仍然有效的 API 或第 3 方组件。而且我不想在玩之前播放媒体:)
最佳答案
最后,我用Xuggle解决了这个问题。 设置完成后,我必须添加这些行,并且它工作正常:
IContainer container = IContainer.make();
if (container.open(movie, IContainer.Type.READ, null) < 0) {
throw new RuntimeException("Cannot open '" + movie + "'");
}
logger.info("# Duration (ms): " + ((container.getDuration() == Global.NO_PTS) ? "unknown" : "" + container.getDuration() / 100));
logger.info("# File size (bytes): " + container.getFileSize());
logger.info("# Bit rate: " + container.getBitRate());
顺便说一句,设置很糟糕,但最终......让这段代码正常工作。
关于Java API 或 3rdparty 用于获取电影时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670226/