我正在评估用Java播放音频/视频的库。 它不需要是100%Java ; Java绑定到本机库是完全可以的。可以从Java控制的外部应用程序也可以,只要它可以在Java组件上呈现视频。
目标平台是Linux。 Windows支持是一个加号,但不是必需的。
我使用VLCj绑定玩VLC,一般来说效果很好,但在压力下偶尔会崩溃。我也在slave mode使用了mplayer,看起来不错。但我也想评估其他选项。
这些是要求:
连连呢?建议?
答案 0 :(得分:11)
好的,我上个月花了几个选项玩这些结果:
VLC。这是我的第一个想法,因为每个人都在说它“扮演一切”。我使用了VLCj Java绑定和内置remote interface(-I rc
)。我发现这一般工作得很好,但有一些问题。我一直看到重负荷下的偶然碰撞(不是VLCj的故障,因为直接使用二进制时也会发生这种情况)。此外,我发现与其他选项相比,内存消耗相对较高。
MPlayer。根据我的经验,这实际上比VLC表现更好,没有崩溃,内存消耗更低。没有Java绑定,尽管slave mode工作得很好。
GStreamer。非常强大,非常灵活,同时仍然很容易上手。尝试从Java bindings和从Java运行gst-launch
二进制文件。这两种方法都非常有效。
Xuggler看起来不错,但似乎RTP存在问题(如in the FAQ所述)。由于GStreamer和MPlayer都运作良好,我没有通过最初的研究。
我发现GStreamer是满足要求的最佳解决方案,MPlayer是第二选择。
答案 1 :(得分:2)
答案 2 :(得分:2)
我也花了一些时间来研究我的选择,我实际上得出的结论是VLCJ是最好的选择 - 但是这里有关键,你需要运行它(特别是对于多个玩家)它给你100%可靠的操作。这是我采取的方法,我还没有看到它崩溃。以这种方式坚如磐石它还具有其他优势:
我还没有发现它在资源方面的重要性,虽然我还没有做过任何彻底的测试(但是3个玩家在我4岁的基本笔记本电脑上工作正常以及我相对耗电的应用程序!)
缺点?对于进程外的玩家没有官方框架,所以你必须自己构建一个(参见here我是如何做到的)。而且你有时必须做一些摆弄才能让它发挥作用。但据我所知,到目前为止它对我来说效果很好!