【问题标题】:Any cross-platform video playback library for c++?任何用于 c++ 的跨平台视频播放库?
【发布时间】:2012-05-04 03:57:54
【问题描述】:

我主要使用 Qt 库进行编码,它的跨平台足以满足我的需要。但是,我发现如果我想播放视频文件,则没有很好的跨平台视频播放选项。 Phonon 模块似乎无法在我的机器上运行,我不确定主要平台(Windows、OSX、Linux)是否支持它。

是否有任何用于简单视频播放的轻量级替代品?我可以将我的视频更改为任何格式,只要它可以跨平台播放。

【问题讨论】:

    标签: c++ qt video playback phonon


    【解决方案1】:

    我正在考虑将 libVLC 作为一种选择。已经有人发了wrapper,但是只支持Windows和Linux。

    【讨论】:

    • wrapper 库恰好是 GPL 代码...如果您打算将此包装用于商业目的,或者当您选择分发时不打算在 GPL 下发布它的代码,请小心它,正如 GPL 要求的那样......
    【解决方案2】:

    我发现Theora playback library 非常有用,并且只依赖于原始的 theora 库。 Here 是我制作的一个简单的 Qt 项目,它封装了播放(仅视频)theora 媒体所需的一切。您只需输入“qmake”即可。

    【讨论】:

      【解决方案3】:

      根据文档显示,Phonon 需要第三方库才能正常工作。您是否为您所在的平台安装了适当的后端?

      来自documentation

      后端

      多媒体功能不是由 Phonon 自己实现的,而是 通过后端 - 通常也称为引擎。这包括 连接、管理和驱动底层硬件或 中间技术。对于程序员来说,这意味着 产生媒体节点,例如媒体对象、处理器和接收器 在后端。此外,它还负责构建图形,即 连接节点。 Qt 的后端使用媒体系统 Windows 上的 DirectShow(需要 DirectX)、Mac 上的 QuickTime 和 Linux 上的 GStreamer。 平台依赖于这些底层系统,并且可能会有所不同 在某种程度上,例如,在支持的媒体格式中。

      后端暴露 有关底层系统的信息。它可以分辨出哪些媒体 支持格式,例如 AVI、mp3 或 OGG。

      用户通常可以添加 支持底层系统的新格式和过滤器,by, for 例如,安装 DivX codex。因此我们不能给出一个 Qt 后端可用的格式的确切概述。

      【讨论】:

      • 我在另一台机器上尝试了 Phonon,它直接工作。我认为损坏的机器有音频设备问题。不过,我想我会在更多设备上尝试一下。
      【解决方案4】:

      QtWebKit 2.2 支持 HTML5 媒体。它应该(至少最终)是相当跨平台的,但可能与 Phonon 有相同的后端问题。但是带有<video> 元素的Q(Graphics)WebView 可以实现真正的即玩即忘解决方案。

      【讨论】:

      • 你在不同的平台上试过了吗?我会试一试,看看会发生什么。我的另一个选择是'libvlc' 我在外面找到了一个库'VLC-Qt',但还没有尝试过。
      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多