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

2024-05-12

我正在评估用于在 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)组件上渲染视频
  • 开源,并积极维护
  • 稳定、坚如磐石

建议?建议?


好吧,上个月我尝试了多种选择,结果如下:

  1. 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 的错误,因为直接使用二进制文件时也会发生这种情况)。此外,我发现与其他选项相比,内存消耗相对较高。

  2. MPlayer http://www.mplayerhq.hu/。根据我的经验,这实际上比 VLC 表现更好,没有崩溃,而且内存消耗更低。没有 Java 绑定,尽管从机模式 http://www.mplayerhq.hu/DOCS/tech/slave.txt效果很好。

  3. 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 的二进制文件。这两种方法都非常有效。

  4. 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(使用前将#替换为@)

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

  • 使用 ScriptEngine 从 JavaScript 调用 Java 方法

    我正在使用 ScriptEngine 运行 JavaScript 我希望 JavaScript 脚本能够调用 myFunction 其中 myFunction 是我的给定类中的一个方法 我知道可以将 importPackage 用于标准 J
  • 在 libgdx 中批处理多维数据集时出现问题

    我正在尝试开发一款游戏 在屏幕上渲染多达 300 个立方体 为每个多维数据集创建新的 modelInstance 时 modelBatch 的性能非常糟糕 据我所知 没有 3d 批处理可以将所有立方体批处理到一次绘制调用 所以我拼命地尝试以
  • 浏览时 Java Applet 不会被终止

    当用户离开加载小程序的页面时 如何停止 Java 小程序的进程 我正在使用 Chrome 现在要杀死小程序 我必须使用窗口的任务栏并杀死进程 java exe Java applet 具有生命周期方法 那些是init start stop
  • 为什么用java日历解析时会得到错误的月份

    Date fakeDate sdf parse 15 07 2013 11 00 AM Calendar calendar Calendar getInstance calendar setTime fakeDate int current
  • Google API - 重定向 URI 不匹配错误

    我正在我的网络应用程序上实现 google 登录 我通过参考this尝试过link https developers google com web signin server side flow 我的 google 登录按钮如下 div s
  • android新手需要了解“?android:attr/actionBarSize”

    我正在经历拉尔斯 沃格尔的教程 http www vogella com articles AndroidFragments article html在使用 Fragments 时 我遇到了以下代码 android layout margi
  • Android 服务 START_STICKY START_NOT_STICKY

    我需要让我的服务始终在后台运行 并使用 startService 函数启动我的服务 无论应用程序的状态如何 我都不想重新启动服务 这是我的观察 START STICKY gt 如果应用程序启动 则服务正在重新启动 当应用程序关闭时 服务也会
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • 如何在休眠中持久保存实体期间验证实体的约束

    我有一个带有字段名称的实体 我希望它不超过255 所以我这样定义它 Entity public class A implements Serializable NotNull Size max 255 private String name
  • 为什么在大多数开源java项目中局部变量没有被声明为final?

    如果我查看 OpenJDK Hibernate 或 Apache 中的 java 源代码 我还没有看到任何声明为 Final 的局部变量 这表明一些最广泛使用的 java 软件库的开发人员 不要相信final关键字可以提高可读性 不相信它会
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • CompletableFuture SupplyAsync

    我刚刚开始探索 Java 8 的一些并发特性 让我有点困惑的一件事是这两个静态方法 CompletableFuture
  • 何时对字符串文字使用 intern()

    我看到很多这样的遗留代码 class A public static final String CONSTANT value intern 我看不出使用 intern 的任何原因 因为在 Javadoc 中可以读到 所有文字字符串和字符串值
  • 枚举

    我试图拥有一组扩展通用接口的枚举 例如 interface Fooable void someCommonMethod enum E1 implements Fooable some enumuerations and a definiti
  • 如何在 Windows 上使用 Java Hotspot JVM 禁用小型转储 (mdmp) 文件生成

    目前 我有一个已部署的可执行 jar 文件 该文件在崩溃时会创建大型 7 Gb 小型转储文件 我想要一个导致崩溃原因的文本表示 而不是 JVM 状态的二进制文件 我尝试使用中找到的信息这个 CodeRanch 帖子 http www cod
  • 如何在 Android 应用程序退出之前进行一些清理?

    当我的 Android 应用程序终止时 是否有某种 onTerminate 方法可以进行一些清理 我想清除一些 SharedPreferences 我有一个活动 它保持几个数字的运行平均值 并将其存储在 SharedPreference 中
  • 如何将 printStackTrace() 中的异常写入 Java 中的文本文件?

    我需要用 Java 捕获文本文件中的异常 例如 try File f new File catch FileNotFoundException f f printStackTrace instead of printing into con
  • 在地图中的图块上实现鼠标单击事件

    我正在尝试在 JPanel 上实现图像 基本上是地图上的图块 的鼠标单击事件 我只是不知道该怎么做 我有一个扩展 JPanel 的 Main 类 我正在从图块服务器检索图块 并根据特定的缩放级别在 Main 类的 PaintComponen
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码
  • Java编程编译jar

    我有一个文本文件中的java源代码 必须在源代码中输入一些自定义的硬编码变量 然后将其转换为 jar 这是可行的 但是当我运行 jar 时 找不到 Main 类 当我用 WinRAR 解压 jar 文件时 我似乎找不到错误 当我通过 cmd

随机推荐