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

标签 java video xuggler vlcj

我有很多视频文件。所有类型都不同(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/

相关文章:

java - Xuggler 解码 h264 问题

java - java优先级队列

JAVA简单的fps动画(我该如何使用?)

java - 使用 JDOM/Jaxen 的 XPath 问题

video - 透明地将 mp4 转换为 webm?

ios - 我如何使用 AVCaptureSession 和 swift (IOS 8)在 mpeg4 容器中录制 mp4 视频

opencv - 用 VP9 编码 mp4 视频时应该使用什么fourcc?

ffmpeg - 使用 libspeex 为 Raspberry pi 编译 Xuggler 时出现问题 #1

ffmpeg - Xuggler 和 libfdk-aac

java - 如何退出 Java 运行时并保存当前进度?