【问题标题】:Qt5 QMediaPlayer use codecs that are delivered with the programQt5 QMediaPlayer 使用随程序提供的编解码器
【发布时间】:2015-03-15 07:54:44
【问题描述】:

我需要编写一个能够播放视频文件的(便携式)程序。 Qt5 中的 QMediaPlayer 似乎是显而易见的选择,但显然它只使用安装在执行机器上的编解码器。 视频播放器只需要能够在所有(Windows)机器上播放至少一种视频格式,而无需安装任何东西,并将当前状态传达给主程序(以毫秒为单位的当前时间,播放/暂停)。

具体问题:有人可以给我一些提示吗?如何在我的程序中实现视频编解码器,以便 QMediaPlayer 可以在所有机器上可靠地播放视频?或者(但不太喜欢):如何(轻松)在能够完成任务的程序中实现另一个视频播放器?

我已经尝试过使用 libVLC 和一两个其他选项的运气,但到目前为止它从未奏效,而且它似乎使我的程序变得比它必须的复杂得多。

【问题讨论】:

    标签: c++ qt qt5 libvlc qmediaplayer


    【解决方案1】:

    QMediaPlayer 可以播放平台的媒体服务支持的任何格式。您应该为要成功播放的视频类型安装正确的编解码器。所以你必须在 Linux 上安装 GStreamer 编解码器,或者如果你在 Windows 上,你应该安装一些 KLite 编解码器。

    考虑使用QtAV 之类的库可能会更好。它适用于大多数平台,无需安装额外的编解码器和插件。

    QtAV 使用 FFmpeg 并具有一些有趣的功能,例如 1 个播放器的多个渲染器、感兴趣区域(视频裁剪)、自定义过滤器……它也适用于 Qt4 和 Qt5。

    【讨论】:

      【解决方案2】:

      QMediaPlayer 使用您使用的任何机器的底层视频框架,这意味着无法使用此类可移植编写播放器。在我看来,您唯一的解决方案是切换到使用本机编解码器的 FFMpeg 播放库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-13
        • 1970-01-01
        • 1970-01-01
        • 2018-02-11
        • 2020-09-10
        • 2013-09-17
        • 2013-04-14
        相关资源
        最近更新 更多