我需要用 Java 进行简单的视频播放。
以下是我的要求:
生产质量
打开和解码我可以选择视频和音频编解码器的视频文件。IE 我可以选择表现良好的编解码器。
能够播放、暂停、seekToFrame或seekToTime和停止播放。本质上,我希望能够以非线性方式播放单个视频文件的片段。例如,我可能想播放 20.3 秒到 25.6 秒的片段,暂停 10 秒,然后播放 340.3 秒到 350.5 秒的片段,等等。
在播放过程中,视频和音频必须同步。
视频必须显示在 Swing JComponent 中。
必须能够在商业产品中使用而不必是开源的(IE LGPL 或 Comercial 都不错)
我的研究使我找到了以下解决方案:
- 使用 Java 媒体框架 + Fobs4JMF http://fobs.sourceforge.net/f4jmf_first.html
我已经实现了一个快速原型,这似乎可以满足我的需要。我可以使用以下方式播放一段视频:
player.setStopTime(new Time(end));
player.setMediaTime(new Time(start));
player.start();
虽然 Fobs4JMF 似乎可以工作,但我觉得代码质量很差,项目不再活跃。有谁知道任何使用 Fobs4JMF 的产品?
- 编写一个播放视频的 Flash 应用程序并使用 JFlashPlayer 将它带入我的 Java Swing 应用程序
与 Java 不同,Flash 在播放视频方面表现出色。我可以使用以下方法编写一个小型 Flash 应用程序:
open(String videoFile),
play(),
pause(),
seek(int duration),
stop()
然后使用 JFlashPlayer 将其引入 Java,该 JFlashPlayer 可以从 Java 调用 Flash 函数。
我喜欢这个解决方案的地方在于 Flash 中的视频播放应该坚如磐石。有人用 JFlashPlayer 用 Java 播放视频吗?
- 在 Xuggler 之上编写一个简单的媒体播放器
Xuggler 是一个用于 Java 的 FFMpeg 包装器,它似乎是一个非常活跃和高质量的项目。但是,实现需求中描述的简单视频播放并非易事(特别是 Seeking),但在 MediaTools MediaViewer 中已经完成了一些工作,这将是构建的基础。
- 使用 FMJ
我试图让 FMJ 工作,但到目前为止还没有成功。
我会很感激你对我的问题的意见。