我正在评估用于在 Java 中播放音频/视频的库。它不需要 100% Java; Java 与本机库的绑定完全没问题。可以通过 Java 控制的外部应用程序也可以,只要它可以在 Java 组件上渲染视频即可。
目标平台是Linux。 Windows 支持是一个优点,但不是必需的。
我用 VLC 玩过VLCj http://code.google.com/p/vlcj/绑定,一般来说它工作得很好,但在压力下偶尔会崩溃。我也用过 mplayer从机模式 http://www.mplayerhq.hu/DOCS/tech/slave.txt,看起来不错。但我也想评估其他选择。
这些是要求:
- 使用 RTSP 通过 RTP 实时播放 H.264、MPEG4。通过 HTTP 的 MJPEG 可以加分。
- 能够在 Java(Swing 或 AWT)组件上渲染视频
- 开源,并积极维护
- 稳定、坚如磐石
建议?建议?
好吧,上个月我尝试了多种选择,结果如下:
VLC http://www.videolan.org/vlc/。这是我的第一个想法,因为每个人都一直说它“可以播放所有内容”。我都用过VLCj http://code.google.com/p/vlcj/Java 绑定和内置远程接口 http://www.videolan.org/doc/play-howto/en/ch04.html#id501902 (-I rc
)。我发现这总体上工作得很好,但有一些问题。我经常看到重负载下偶尔发生崩溃(不是 VLCj 的错误,因为直接使用二进制文件时也会发生这种情况)。此外,我发现与其他选项相比,内存消耗相对较高。
MPlayer http://www.mplayerhq.hu/。根据我的经验,这实际上比 VLC 表现更好,没有崩溃,而且内存消耗更低。没有 Java 绑定,尽管从机模式 http://www.mplayerhq.hu/DOCS/tech/slave.txt效果很好。
GStreamer http://gstreamer.freedesktop.org/features/。非常强大,非常灵活,同时仍然很容易上手。都尝试过Java 绑定 http://code.google.com/p/gstreamer-java/并运行gst-launch http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/chapter-using.html来自 Java 的二进制文件。这两种方法都非常有效。
Xuggler http://www.xuggle.com/xuggler/看起来不错,但是 RTP 似乎有问题(如所述在常见问题解答中 http://wiki.xuggle.com/Frequently_Asked_Questions#Does_Xuggler_support_RTP)。由于 GStreamer 和 MPlayer 都工作得很好,所以我没有完成最初的研究。
我发现 GStreamer 是满足要求的最佳解决方案,MPlayer 是第二个选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)