Java中的媒体播放器库

时间:2010-10-07 21:35:17

标签: java streaming media-player

我正在评估用Java播放音频/视频的库。 它不需要是100%Java ; Java绑定到本机库是完全可以的。可以从Java控制的外部应用程序也可以,只要它可以在Java组件上呈现视频。

目标平台是Linux。 Windows支持是一个加号,但不是必需的。

我使用VLCj绑定玩VLC,一般来说效果很好,但在压力下偶尔会崩溃。我也在slave mode使用了mplayer,看起来不错。但我也想评估其他选项。

这些是要求:

  • 使用RTSP通过RTP实时播放H.264,MPEG4。 MJPEG通过HTTP获得额外分数。
  • 能够在Java(Swing或AWT)组件上呈现视频
  • 开源,积极维护
  • 稳定,坚如磐石

连连呢?建议?

3 个答案:

答案 0 :(得分:11)

好的,我上个月花了几个选项玩这些结果:

  1. VLC。这是我的第一个想法,因为每个人都在说它“扮演一切”。我使用了VLCj Java绑定和内置remote interface-I rc)。我发现这一般工作得很好,但有一些问题。我一直看到重负荷下的偶然碰撞(不是VLCj的故障,因为直接使用二进制时也会发生这种情况)。此外,我发现与其他选项相比,内存消耗相对较高。

  2. MPlayer。根据我的经验,这实际上比VLC表现更好,没有崩溃,内存消耗更低。没有Java绑定,尽管slave mode工作得很好。

  3. GStreamer。非常强大,非常灵活,同时仍然很容易上手。尝试从Java bindings和从Java运行gst-launch二进制文件。这两种方法都非常有效。

  4. Xuggler看起来不错,但似乎RTP存在问题(如in the FAQ所述)。由于GStreamer和MPlayer都运作良好,我没有通过最初的研究。

  5. 我发现GStreamer是满足要求的最佳解决方案,MPlayer是第二选择。

答案 1 :(得分:2)

你看过gstreamer吗?

答案 2 :(得分:2)

我也花了一些时间来研究我的选择,我实际上得出的结论是VLCJ是最好的选择 - 但是这里有关键,你需要运行它(特别是对于多个玩家)它给你100%可靠的操作。这是我采取的方法,我还没有看到它崩溃。以这种方式坚如磐石它还具有其他优势:

  • 几乎可以玩任何东西。是的,这有点陈词滥调,但这包括DVD,Youtube视频,几乎任何视频文件......
  • 应该支持Linux / Mac / Windows,但我还没有验证Mac正常工作。
  • 积极维护,如果你在讨论组中提出一个好的(经过深思熟虑的)问题,业主经常会根据我的经验回复!
  • 开源,撰写本文时的Google小组活动很高。
  • 使用VLC所做的所有图形加速
  • 能够玩任何重量级的Canvas组件(如果你使用直接播放器,你可以让BufferedImage显示在任何你喜欢的地方,即使在JOGL 3D领域,如果你疯了!

我还没有发现它在资源方面的重要性,虽然我还没有做过任何彻底的测试(但是3个玩家在我4岁的基本笔记本电脑上工作正常以及我相对耗电的应用程序!)

缺点?对于进程外的玩家没有官方框架,所以你必须自己构建一个(参见here我是如何做到的)。而且你有时必须做一些摆弄才能让它发挥作用。但据我所知,到目前为止它对我来说效果很好!