【问题标题】:Rendering video on Swing在 Swing 上渲染视频
【发布时间】:2013-04-03 06:58:01
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你不能总是得到你想要的。但如果你有时尝试得很好,你可能会发现你得到了你需要的东西。

标签: java swing video-processing xuggler xuggle


【解决方案1】:

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

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

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

【讨论】:

  • 感谢回答,正在考虑丢帧机制
猜你喜欢
  • 2021-11-07
  • 2014-03-28
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多