java - Java 中的媒体播放器库

标签 java streaming media-player

<分区>

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

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

我使用 VLCj 玩过 VLC绑定(bind),一般来说它工作得很好,但在承受压力时偶尔会崩溃。我还在 slave mode 中使用过 mplayer , 看起来不错。但我也想评估其他选项。

这些是要求:

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

建议?有什么建议吗?

最佳答案

好的,上个月我尝试了几个选项,结果如下:

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

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

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

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

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

关于java - Java 中的媒体播放器库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886056/

相关文章:

java - 限制读取的消息队列

java - 如何创建一个列表,其中包含来自其他两个相等列表的元素?

android - 媒体播放器的搜索者

java - mvn install 找不到安装在本地存储库上的本地工件

java - 如何执行调用 ListView 项目上的特定号码

c# - 如何在网页上嵌入 mjpeg 文件

python - 使用 Flask 流式传输生成的 CSV

javascript - 通过 nodejs 服务器 + socket.io 从 mp3 文件同步流式传输音乐

android - 媒体播放器 : error (-19, 0)

java - android 媒体播放器的替代品?