在Swing上渲染视频

时间:2013-04-03 06:58:02

标签: java swing video-processing xuggler xuggle

我正在开发应用程序,以便一次监控20个视频流。我将在JFrame中使用JFrame和20个框(例如JPanel)来显示20个流。我可以使用xuggler加载流和解码,但是现在如何在Swing JPanel上显示它?

我能在SourceDataLine上播放声音,我的问题是,如何在Swing组件上以秒显示20 * 30 = 600个视频帧?

此外xuggler输出YUV420P像素格式解码帧,将此转换为RGB,创建BufferedImage并在Swing Component上显示会有开销吗?

请指导我。我希望在swing组件中一次显示20个视频流。

1 个答案:

答案 0 :(得分:1)

这是我用Google搜索的一些代码convert a YUV420 file to BufferedImage frames。您可以将此作为您想要的基础。

您可能无法在PC上每秒处理600个视频帧。您必须查看每秒可以转换的视频帧数,并删除剩余的帧。

处理20个视频源的最佳方法可能是有20个线程抓取视频帧,将视频帧转换为BufferedImage,并将BufferedImage传递给事件调度线程(EDT),以便Swing在相应的JPanel上绘制。当线程返回以抓取下一个视频帧时,您将自动删除PC没有时间处理的帧。