Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;错误的src图像指针“;在JavaCV中的FFmpegFrameGrabber上调用setFrameNumber()后出错_Java_Opencv_Video_Javacv_Video Editing - Fatal编程技术网

&引用;错误的src图像指针“;在JavaCV中的FFmpegFrameGrabber上调用setFrameNumber()后出错

&引用;错误的src图像指针“;在JavaCV中的FFmpegFrameGrabber上调用setFrameNumber()后出错,java,opencv,video,javacv,video-editing,Java,Opencv,Video,Javacv,Video Editing,我正在创建一个小的视频编辑器,目前正在尝试在预览窗口中显示视频文件。为此,我想使用JavaCVs FFmpegFrameGrabber在特定位置获取视频帧 我找到了一种方法,将抓取器的frameNumber变量设置为所需的帧。但是,这只会导致显示文件的第一帧,并在错误旁边重复打印有关文件的一些信息(如果需要查看,请告诉我,它有点长且凌乱): [swscaler@000001927a7d3000]错误的src图像指针 这是我的帧抓取类: public class Video { priv

我正在创建一个小的视频编辑器,目前正在尝试在预览窗口中显示视频文件。为此,我想使用JavaCVs FFmpegFrameGrabber在特定位置获取视频帧

我找到了一种方法,将
抓取器的
frameNumber
变量设置为所需的帧。但是,这只会导致显示文件的第一帧,并在错误旁边重复打印有关文件的一些信息(如果需要查看,请告诉我,它有点长且凌乱):

[swscaler@000001927a7d3000]错误的src图像指针

这是我的帧抓取类:

public class Video {

    private FFmpegFrameGrabber grabber;
    private final static Java2DFrameConverter converter = new Java2DFrameConverter();

    public Video(File file) {
        this.grabber = new FFmpegFrameGrabber(file);
        try {
            this.grabber.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public BufferedImage grabFrame(int framePos) throws Exception {
        BufferedImage frame;

        grabber.grabImage(); // Without this done before, the image is just black

        grabber.setFrameNumber(framePos);

        frame = converter.convert(grabber.grabImage());

        return frame;
    }
}

我非常感谢你的回答

调用
setFrameNumber()
仅在大约且仅在恒定帧速率下工作。如果改用
setTimestamp()
会发生什么?你也会得到一个错误吗?如果是这样的话,这可能是文件的一个问题…嗯,这有点尴尬,但事实证明,我只是给这个方法一个超出其长度的位置,因为我的公式被破坏了。。。所以,嗯,它现在起作用了。不过,这些错误消息仍然会不时弹出。