0

前段时间我开始了一个项目,我需要做以下事情:

  • 播放视频:
    • 以任何常见格式(avi、mpeg、xvid 等)
    • 能够以编程方式暂停和重新定位流。
    • 能够设置播放速度(不是强制性的,但可取的)
  • 让我在播放组件上绘制自定义图形(与视频保持同步)。
  • 允许以光栅图像的形式访问当前帧(这不是强制性的,但可取)。

并且易于使用(例如面向视觉组件,我不想过多处理多媒体流内部)。

因为我已经有一些用 Java 编写的相关代码,所以我尝试使用我找到的所有 Java 库(JMF、FMJ、JVLC、Jffmpeg、gstreamer-java),但没有人满足我所有的硬性要求(例如,那些允许我画在框架上不能暂停或倒带,那些功能齐全的已经过时了,等等),所以我搁置了这个项目。

现在我正准备卷土重来,我不介意用其他语言重写代码(等于或高于 Java 的级别,但请不要使用 C 或 C++,我变得太懒了:-p)它具有良好的 GUI 框架或免费提供的富客户端平台。多平台是一个好点,因为我喜欢在 Linux 中进行开发和测试,但我想接触更多的受众,所以能够以 Windows 为目标是必须的。

那么你会推荐我什么语言和框架呢?

4

6 回答 6

3

Qt 的声子。Qt 也可用于 Java,如Qt Jambi

于 2009-05-28T19:50:25.813 回答
3

如果您不完全害怕只使用 Windows,WPF 应该响应几乎所有(如果不是全部)您的需求。

您可以将它与 C# 和所有 .net 语言一起使用。

于 2009-06-08T10:59:59.400 回答
2

我会使用 OpenCV 库。您需要的所有功能:格式支持、任何帧获取、帧修改等。查看此安装指南和一些示例。

于 2009-06-03T16:34:20.260 回答
1

您可能会考虑的另一个框架是 mlt 框架:http ://mltframework.org/

它的设计很棒,用 C 语言编写,并使用 SWIG 进行语言绑定(java、perl、php、python、ruby、tcl)。我知道人们已经在大多数主要平台上运行它。

要了解它的功能,请查看令人敬畏的 NLE kdenlive,它是最活跃的用户。

于 2009-06-04T16:44:21.287 回答
0

你说你试过gstreamer-java。也许它的绑定不是那么好?我很确定 Gstreamer 可以满足您的所有要求。也许您应该改为查看 Python 绑定。Python 是 Gstreamer 开发人员的一等公民,因此绑定应该始终是完整的和最新的。

Python 也有多个可用的跨平台 GUI 框架。我个人喜欢使用 libglade 的 GTK,因为使用 glade 构建 GUI 非常容易,而且它是 XML 文件(GTK 也可以在 Windows 上运行,所以没有问题)。如果您更喜欢其他东西,那么还有 Qt、wxWidgets 和 Tk,它们都可以在 Linux 和 Windows 上运行(我假设也是 MacOSX)。

于 2009-06-01T22:00:34.410 回答
0

嵌入式网络浏览器将处理您声明的要求:

  • 视频播放(使用 mplayer 或 vlc 插件)
  • 控制播放的高级语言(javascript)
  • 覆盖/GUI(HTML + CSS + PNG/SVG)

要光栅化当前帧会更难,您可能需要一些自定义 ffmpeg 将帧转储到磁盘然后将其作为 < img > 读回

于 2009-06-07T18:25:37.870 回答