【问题标题】:Java VLCJ canvas and drawing ontop with transparent backgroundJava VLCJ 画布和在透明背景上绘图
【发布时间】:2012-12-18 03:41:37
【问题描述】:

我花了一些时间研究是否可以在 Java 应用程序中绘制 VLCJ 电影。我发现了一些相互矛盾的建议,有些说这是不可能的,有些参考文章已经转移到 oracle.com。

有人可以澄清是否可以绘制 java2d 图形,如矩形/线条,它们也具有透明背景,以便在屏幕上显示形状时可以查看下面的视频流?

如果 vlcj 无法做到这一点,那么对于 linux 和 windows 兼容的媒体播放器,允许对正在播放的视频流进行注释的好选择是什么?请注意,我不必局限于 java,但我可以从为多个平台开发的绘图例程中重复使用的东西将是理想的。

【问题讨论】:

    标签: java linux windows ffmpeg vlcj


    【解决方案1】:

    是的,你可以做到。对于普通的硬件渲染视频播放器,您至少需要有 Java 6u10(最好是 7)并通过在 VLC 画布上覆盖一个透明的 JWindow 来实现这一点(向画布添加事件以检查更新并不难)位置/大小,然后相应地移动覆盖的窗口。)

    不涉及使用覆盖窗口的另一种方法是使用DirectMediaPlayer,您可以在其中直接访问帧缓冲区(因此可以对像素做任何您喜欢的事情,包括将它们包装为围绕 3D 对象的纹理等等。)因此,使用这种方法,您可以简单地将您想要的内容绘制到帧缓冲区上,然后以您选择的方式将其渲染到屏幕上。这是最灵活的方法,但也有一个缺点,即如果您对实现不十分小心,则会失去所有 GPU 加速功能并最终导致 CPU 瘫痪,尤其是对于高清视频。

    如果一个简单的覆盖就可以解决问题,我会先尝试,如果需要,只需求助于DirectMediaPlayer。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-16
      • 2022-11-15
      • 2012-04-02
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2016-04-21
      相关资源
      最近更新 更多