Java Xuggler:在单独的线程中捕获视频帧

Java Xuggler:在单独的线程中捕获视频帧,java,multithreading,swing,xuggler,Java,Multithreading,Swing,Xuggler,我正在与Xugler合作,试图创建一个使用从视频中捕获的帧的程序 我发现这个代码: 我设法让它工作,并保存了我需要的帧 现在,我正试图将它集成到一个单独的线程上的GUI程序中,以防止在它抓取帧时锁定所有内容。我几乎只是将main中的所有内容复制到run方法中。我所做的唯一更改是更正args文件名。我硬编码它,我检查我的工作程序,以确保它是正确的路径 现在,当我试图在自己的可运行线程中运行帧捕获代码时,它崩溃了。 打开文件时,此部分似乎崩溃: IContainer container = ICon

我正在与Xugler合作,试图创建一个使用从视频中捕获的帧的程序

我发现这个代码:

我设法让它工作,并保存了我需要的帧

现在,我正试图将它集成到一个单独的线程上的GUI程序中,以防止在它抓取帧时锁定所有内容。我几乎只是将main中的所有内容复制到run方法中。我所做的唯一更改是更正args文件名。我硬编码它,我检查我的工作程序,以确保它是正确的路径

现在,当我试图在自己的可运行线程中运行帧捕获代码时,它崩溃了。 打开文件时,此部分似乎崩溃:

IContainer container = IContainer.make();

if (container.open(filename, IContainer.Type.READ, null) < 0)
    throw new IllegalArgumentException("could not open file: " + filename);
我尝试通过设置自己的IFormat打开它,如下所示:

IContainerFormat format = IContainerFormat.make();        
        format.setInputFormat("mp4");
我尝试使用null作为格式,就像API所说的那样,让类“猜测”该格式


虽然两者都抛出相同的异常,所以我不确定接下来该怎么办。但我仍在搜索。

也许您应该使用来处理线程池。

目前只有一个线程,但我也尝试了这个。当轮胎打开容器并退出时,它仍然会崩溃,并产生负面结果。
IContainerFormat format = IContainerFormat.make();        
        format.setInputFormat("mp4");