我需要编写一个(可移植)程序,除其他外,它能够播放视频文件。 Qt5 中的 QMediaPlayer 似乎是显而易见的选择,但显然它只使用安装在执行机器上的编解码器。 对于视频播放器,我所需要的只是能够在所有(Windows)机器上播放至少一种视频格式而无需安装任何东西,并将当前状态传达给主程序(当前时间以毫秒为单位,播放/暂停)。
具体问题:有人可以给我一些提示吗?如何在我的程序中实现视频编解码器,以便 QMediaPlayer 可以在所有机器上可靠地播放视频?或者(但不太受欢迎):如何(轻松地)将另一个视频播放器实现到能够执行任务的程序中?
我已经尝试使用 libVLC 和一两个其他选项,但到目前为止它从未奏效,而且它似乎使我的程序变得比它必须的更复杂。
最佳答案
QMediaPlayer 可以播放平台媒体服务支持的任何格式。您应该为要成功播放的视频类型安装正确的编解码器。所以你必须在 Linux 上安装 GStreamer 编解码器,或者如果你在 Windows 上,你应该安装一些 KLite 编解码器。
考虑使用像 QtAV 这样的库可能是件好事.它适用于大多数平台,不需要安装额外的编解码器和插件。
QtAV 使用 FFmpeg 并具有一些有趣的功能,例如 1 个播放器的多个渲染器、感兴趣区域(视频裁剪)、自定义过滤器,......它也适用于 Qt4 和 Qt5。
关于c++ - Qt5 QMediaPlayer 使用程序自带的编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988564/