Java API或3rdparty用于获取电影的持续时间

时间:2013-03-27 21:52:14

标签: java video xuggler vlcj

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

目前我使用的是vlcj,这可以,但代码有点令我困惑。 在得到长度之前我必须播放媒体。然后停止媒体。这很奇怪,不是吗。

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

2 个答案:

答案 0 :(得分:2)

最后,我用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());
顺便说一下,设置很糟糕,但最后......让这段代码工作。

答案 1 :(得分:0)

  

请参阅Java Media Framework。

     

http://docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/media/jmf/2.1.1/apidocs/index.html

在这里,您还可以找到其他类似项目的链接http://en.wikipedia.org/wiki/Java_Media_Framework