Java 自动化视频快照
如何使用Java自动化视频快照 下面是我的尝试。不幸的是,seek命令似乎不起作用,因为无论视频在哪里,[100100]处的像素颜色都保持不变 我需要的是一个能够创建视频快照的应用程序(最好不需要GUI)Java 自动化视频快照,java,javafx-2,video-capture,snapshot,Java,Javafx 2,Video Capture,Snapshot,如何使用Java自动化视频快照 下面是我的尝试。不幸的是,seek命令似乎不起作用,因为无论视频在哪里,[100100]处的像素颜色都保持不变 我需要的是一个能够创建视频快照的应用程序(最好不需要GUI) 我认为这是不可能的。FX媒体API面向播放而非数据操作,在屏幕上没有实际媒体的情况下,您无法轻松加载图片数据 鉴于您不需要UI,FX没有实际工作,您可能希望通过其他工具解决您的任务,例如ffmpeg,请参见,我认为这是不可能的。FX媒体API面向播放而非数据操作,在屏幕上没有实际媒体的情况下,
我认为这是不可能的。FX媒体API面向播放而非数据操作,在屏幕上没有实际媒体的情况下,您无法轻松加载图片数据
鉴于您不需要UI,FX没有实际工作,您可能希望通过其他工具解决您的任务,例如
ffmpeg
,请参见,我认为这是不可能的。FX媒体API面向播放而非数据操作,在屏幕上没有实际媒体的情况下,您无法轻松加载图片数据
鉴于您不需要UI,FX没有实际工作,您可能希望通过其他工具(例如,
ffmpeg
)解决您的任务,请参阅,不建议使用JAVAFX执行此任务。更好的解决方案是使用Xugler。本教程介绍了确切的情况:
不建议将JAVAFX用于此任务。更好的解决方案是使用Xugler。本教程介绍了确切的情况:
示例
player.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> arg0, Duration arg1, Duration arg2) {
// TODO Auto-generated method stub
WritableImage write = new WritableImage(media.getWidth(),media.getHeight());
mview.snapshot(new SnapshotParameters(),write);
//Now Write is Your current image
}
});
player.currentTimeProperty().addListener(新的ChangeListener()){
@凌驾
公共无效已更改(可观察值)
创建媒体视图:新建媒体视图(mediaplayer)
使用current time属性并添加更改侦听器**:每次更改播放持续时间时,都将调用侦听器
在这个侦听器中,我们将拍摄mediaView的快照。
示例
player.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> arg0, Duration arg1, Duration arg2) {
// TODO Auto-generated method stub
WritableImage write = new WritableImage(media.getWidth(),media.getHeight());
mview.snapshot(new SnapshotParameters(),write);
//Now Write is Your current image
}
});
player.currentTimeProperty().addListener(新的ChangeListener()){
@凌驾
public void changed(可观察到)如果我决定允许使用GUI,是否可以以类似的方式拍摄快照?如果我决定允许使用GUI,是否可以以类似的方式拍摄快照?
player.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> arg0, Duration arg1, Duration arg2) {
// TODO Auto-generated method stub
WritableImage write = new WritableImage(media.getWidth(),media.getHeight());
mview.snapshot(new SnapshotParameters(),write);
//Now Write is Your current image
}
});