在Java中处理视频(DVD,.avi.mkv)
在四处寻找一个像样的Java视频库之后,我摆脱了困境。周围的每个人都在尖叫不要使用JMF,因为它已经过时了,过时了,需要用户安装它,其他替代方案,如VLCJ,如果它们可以工作,但仍然相对不稳定并且依赖于大量的本地代码,至于处理DVD,这似乎是在免费库中找到的金粉!
当前选项:
- 现在JavaFX 2正在获得动力,这是我一直在认真研究的东西(因此我在这里的问题),但到目前为止,在试图弄清楚如何让它播放比标准FLV视频更多的内容方面,我没有运气。
- VLCJ在它所做的事情上运作良好(请参阅我目前的答案),目前我正在继续前进。它使用libvlc来做任何事情,因为它可以播放几乎任何文件,也可以开箱即用地播放DVD。最大的问题是,您必须为每个播放器使用多个虚拟机才能使其稳定执行,这意味着响应相对较慢。我还没有这种方法在Mac上工作。
- JMF已经过时了,很可怕,就我而言,这并不是一个真正的选择。我过去玩过它,但体验并不好!
- FMJ表示,这是JMF的替代品。我还没有让它工作,就像我与之交谈过的大多数其他人一样,这本身就让我厌倦了它的质量和理解,即使我确实设法让它工作!
- Xuggler在它所做的事情上很棒,它有很棒的教程,而且写得很好。但是,虽然它非常适合低级转码工作,但播放视频并以正确的顺序和同步等方式播放帧只是正常工作的噩梦,并且再次添加更多代码,这意味着更多的维护,潜在的更多错误等等。
- 我还没有愤怒地尝试过GStreamer-Java,尽管它似乎不支持DVD播放(这是一个我正在开发的开源应用程序,所以商业插件也不是一个选择),它的编解码器支持似乎不是最广泛的。
- JCodec是一个有趣的努力,是我见过的唯一一个从纯Java角度实现视频支持的工作 - 但目前缺乏对格式的支持,这是一个相对较新的项目。
- 在我想要支持的每个平台的不同本机库中自己编写一些东西。这是绝对的最后选择,因为它需要额外的维护和编码时间。
根据上述内容(或您能想到的任何其他内容),人们会推荐哪些选项,还有其他我错过的明智选择吗?或者人们认为在不久的将来可能会提供的任何其他人?