0

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

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

xuggler 还输出 YUV420P 像素格式解码帧,将其转换为 RGB、创建 BufferedImage 并在 Swing 组件上显示是否有开销?

请指导我。我想在摆动组件中一次显示 20 个视频流。

4

1 回答 1

1

这是我在 Google 上搜索的一些代码,可以将 YUV420 文件转换为 BufferedImage 帧。您可以将其用作您想要的基础。

您可能也无法在 PC 上每秒处理 600 个视频帧。您必须查看每秒可以转换多少视频帧,然后丢弃其余的帧。

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

于 2013-04-03T09:11:04.607 回答