Java中的媒体播放器库[关闭]

问题描述 投票:16回答:3

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

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

我使用VLCj绑定玩VLC,并且它在一般情况下工作得很好,但是在受到压力时偶尔会崩溃。我也在slave mode使用mplayer,看起来不错。但我也想评估其他选项。

这些是要求:

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

建议?建议吗?

java streaming media-player
3个回答
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都运作良好,我没有超越最初的研究。

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


2
投票

你看过gstreamer吗?


2
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.