如何使用Java从视频中提取帧

时间:2015-04-23 08:47:42

标签: java video-processing

有没有“使用核心库从Java视频文件中提取帧而不导入外部库”的解决方案?

说我在Java AWT库中看到了ImageBufferedStrategyBufferCapabilities

3 个答案:

答案 0 :(得分:1)

Java Media Framework API( JMF )支持音频,视频和其他基于时间的媒体操作,而无需使用任何第三方库。

Seeking frames inside a movie with JMF

xuggler是一个很好的第三方库,被广泛使用。

答案 1 :(得分:0)

我认为你应该使用Xuggler from here或者你可以找到它in maven

在github存储库中,a sample在演示文稿下有文件: DecodeAndCaptureFrames.java

答案 2 :(得分:0)

根据另一个问题的this answer,你可以通过利用JavaFX的功能在没有外部库的情况下做到这一点。

引用下面的原始答案:

  

您可以使用MediaView的快照()。首先连接一个mediaPlayer   到MediaView组件,然后使用mediaPlayer.seek()来搜索   视频位置。然后您可以使用以下代码来提取   图像框架:

int width = mediaPlayer.getMedia().getWidth();
int height = mediaPlayer.getMedia().getHeight();
WritableImage wim = new WritableImage(width, height);
MediaView mv = new MediaView();
mv.setFitWidth(width);
mv.setFitHeight(height);
mv.setMediaPlayer(mediaPlayer);
mv.snapshot(null, wim);
try {
    ImageIO.write(SwingFXUtils.fromFXImage(wim, null), "png", new File("/test.png"));
} catch (Exception s) {
    System.out.println(s);
}