【发布时间】:2017-07-07 18:41:19
【问题描述】:
有没有解决“使用核心库从Java中的视频文件中提取帧而不导入外部库”的解决方案?
说我在 Java AWT 库中看到了Image、BufferedStrategy、BufferCapabilities。
【问题讨论】:
标签: java video-processing
有没有解决“使用核心库从Java中的视频文件中提取帧而不导入外部库”的解决方案?
说我在 Java AWT 库中看到了Image、BufferedStrategy、BufferCapabilities。
【问题讨论】:
标签: java video-processing
Java Media Framework API (JMF) 支持音频、视频和其他基于时间的媒体操作,无需使用任何第三方库。
Seeking frames inside a movie with JMF.
xuggler 是一个很好的第三方库,被广泛使用。
【讨论】:
根据this answer 的另一个问题,您可以通过利用JavaFX 的功能在没有外部库的情况下做到这一点。
引用下面的原始答案:
您可以使用 MediaView 的 snapshot()。首先连接一个媒体播放器 到 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);
}
【讨论】: