【发布时间】:2011-11-16 14:27:12
【问题描述】:
更新:
由于 JFX 的媒体端已经开源,我自己研究了一下,确实有可能,但需要更改和重建 JFX 源代码(Java 和 C 部分)。描述过程here 对于任何想要尝试的人 - 我在该示例中添加了 MKV 支持,但对于其他插件应该非常相似。
因此,问题的其余部分主要是历史问题,但我将把它留在这里以供参考。
背景
到目前为止,我一直在使用 VLCJ 在我的应用程序中播放视频。它可以工作,但如果可能的话,我想看看我是否可以通过迁移到 JavaFX 来实现对通用编解码器的类似支持水平,并为自己省去很多使用多个 VM 的麻烦,比如 VLCJ 需要可靠地播放多个视频。我不会在这里讨论它,但如果您对细节感兴趣,请参阅我对this 问题的回答。还有跨平台兼容性的问题,它可以在 Mac 和 Linux 上运行,但我还没有弄清楚如何让它在 Mac 上显示(我相信有一些安全措施可以防止一个进程访问另一个进程的本机组件,但这又超出了这个问题的范围。)
归结为这样一个事实:虽然它可以工作,但如果有另一种更简单的解决方案,那么使用多个 VM 并稳定地桥接它们会带来很多维护和麻烦。 VLC 确实对播放几乎任何东西都有相当传奇的支持水平,这就是我到目前为止一直使用它的原因,我很想看看我是否可以在 JavaFX 中获得类似的结果 - 或者至少是否可以提供以跨平台方式执行此操作的方法。
研究
JavaFX 2.0 支持视频 - 太棒了!但目前官方的说法是它支持“包含 VP6 视频和 MP3 音频的 FLV”。有没有办法扩展它以添加对更多编解码器的支持?没有我想支持的硬编解码器,它更像是一个尽可能多的情况,所以我正在寻找一种可扩展的方法来解决上述问题。
我想知道它是否会播放机器上本地安装的编解码器的视频,并且它只是不宣传自己(因为该功能显然取决于机器而不是跨平台。)但没有骰子,我已经尝试了一些常见的格式,它确实拒绝播放它所声明的以外的任何东西。
从 JavaFX 1.3 来看,also supports other platform dependant codecs depending on where it's installed。有没有办法通过 JavaFX 2 获得这种行为?还是完全计划在后续版本中发布?我无法在路线图上找到任何有关它的信息或 Oracle 对此的任何评论。
我通过广泛搜索只能找到here,这意味着它可能是可能的,但似乎没有人知道如何。我也很想知道它是否基于 GStreamer 为什么默认情况下也不包含 GStreamer 支持的所有格式?
在使用 JavaFX 播放 DVD 方面,我完全无所适从,所以我假设这只是暂时的。如果有人确实有任何想法或信息,我会全力以赴。
其他方法
我半信半疑的一种方法可能是将 JMC jar 从旧的 JavaFX 中剔除,如 here 所述,并试图使其与 JavaFX 2 一起工作。我认为没有人对此有任何运气方法或类似的东西?
所有事情都失败了,如果有人有任何信息或链接说明是否/何时支持开箱即用的其他编解码器,那么我也很想听听。或者,如果有人有甲骨文某人的任何联系方式,我也可以问一下,我将不胜感激!一段时间以来,我一直渴望在 Java 中提供体面的视频支持,我想这归结为试图弄清楚 JavaFX 是否是这个问题的答案,或者只是另一个半心半意的尝试,它永远不会比它播放更多目前可以!我希望不是后者,但我还没有看到太多证明是这样的。
【问题讨论】:
标签: java video javafx codec vlcj