【问题标题】:simple video decoding in Java / ScalaJava / Scala中的简单视频解码
【发布时间】:2011-07-11 04:51:59
【问题描述】:

有没有简单的方法在 java/scala 中解码视频?

我只需要框架并且必须对它们进行一些计算。无需快速或实时。

我尝试了处理,但效果不佳,我无法将其嵌入到我的项目中。我也看到了 jmf,但它似乎从 2004 年起就不再维护了。

【问题讨论】:

  • 目前它是带有 DivX 的 AVI。但如果需要,我们应该能够更改容器/编解码器。但它必须是压缩格式。

标签: java scala video decoding


【解决方案1】:

看看XugglerFMJ(它们试图从 JMF 停止的地方继续,但看起来半死不活)。

【讨论】:

    【解决方案2】:

    您可以使用 JCodec (http://jcodec.org) 中的“FrameGrab”类。
    目前它支持 MP4(ISO BMF、QuickTime)文件格式,内含 AVC(H.264)视频。
    只需要一帧

    int frameNumber = 150;
    BufferedImage frame = FrameGrab.getFrame(new File("filename.mp4"), frameNumber);
    ImageIO.write(frame, "png", new File("frame_150.png"));
    

    JCodec 在 maven 中可用:

    <dependency>
        <groupId>org.jcodec</groupId>
        <artifactId>jcodec</artifactId>
        <version>0.1.3</version>
    </dependency>
    

    或在其网站上下载。

    【讨论】:

      【解决方案3】:

      使用velvet-video,可以轻松地从压缩为 FFMpeg 支持的任何格式的视频文件中获取帧:

      IVideoLib lib = new FFMpegVideoLib();
      IDemuxer demuxer = lib.demuxer(new File("path-to-video-file"));
      while(demuxer.nextPacket(frame -> {
          BufferedImage image = frame.image();
          // You get frames as BufferedImages here
      }, null));
      

      免责声明:我是 velvet-video 的作者。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-02
        • 2016-10-13
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 2012-09-21
        相关资源
        最近更新 更多