用于GUI应用程序中视频播放的多媒体框架?

时间:2009-05-28 18:32:11

标签: user-interface video playback multimedia

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

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

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

由于我已经有一些用Java编写的相关代码,我尝试了我找到的所有Java库(JMF,FMJ,JVLC,Jffmpeg,gstreamer-java),但没有人满足我所有的硬性要求(例如,那些这让我画框不能暂停或重新拍摄,那些功能齐全的画面已经过时等等,所以我把这个项目搁置了。

现在我心情复出,我不介意用其他语言重写代码(等级或高于Java的代码,但请不要使用C或C ++,我变得太懒了: -p)具有良好的GUI框架或Rich Client Platform也可以免费使用。多平台是一个很好的观点,因为我喜欢在Linux中开发和测试,但我希望能够覆盖更多的受众,因此能够以Windows为目标是必须的。

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

6 个答案:

答案 0 :(得分:3)

Qt's Phonon。 Qt也可用于Java,Qt Jambi

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

我会使用OpenCV库。 您需要的所有功能:格式支持,任何帧提取,帧修改等。 查看此installation guide和一些示例。

答案 3 :(得分:1)

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

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

要了解它的功能,请查看非常棒的NLE kdenlive,它是最活跃的用户。

答案 4 :(得分:0)

你说你试过gstreamer-java。也许它的绑定并不是那么好?我很确定Gstreamer可以做你所要求的一切。也许您应该检查Python绑定。 Python是Gstreamer开发人员的一等公民,所以绑定应该始终是完整的并且是最新的。

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

答案 5 :(得分:0)

嵌入式网络浏览器可以满足您的要求:

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

对于栅格当前帧会更难,您可能需要一些自定义ffmpeg将帧转储到磁盘然后以<< img>