用于获取电影时长的 Java API 或 3rdparty

mud*_*lee 3 java video xuggler vlcj

我有很多视频文件。所有类型都不同(mkv、avi、mp4、flv 等)。我想迭代这些文件并获得电影的持续时间。

目前我使用的是 vlcj,这很好,但代码让我有点困惑。我必须播放媒体才能获得长度。然后停止媒体。这很奇怪,不是吗。

我能以某种方式做得更好吗?我听说过 xuggler,但开发已经停止。我需要一个仍然存在的 API 或 3rdparty 组件。而且我不想在播放之前播放媒体:)

mud*_*lee 6

最后,我用 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());
Run Code Online (Sandbox Code Playgroud)

顺便说一句,设置很糟糕,但最终......让这段代码起作用了。