3

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

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

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

4

2 回答 2

2

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

考虑使用像QtAV这样的库可能是件好事。它适用于大多数平台,无需安装额外的编解码器和插件。

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

于 2015-01-16T16:57:22.197 回答
0

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

于 2015-01-16T16:43:04.790 回答