【发布时间】:2012-09-17 01:52:00
【问题描述】:
我们正在开发一个基于 Qt 的应用程序,其中包括使用 Phonon 播放视频。我们使用具有 MJPEG 压缩的 .avi 文件(因为我们需要快速查找特定帧)。
在开发机器(运行 Windows 7)上一切正常 - Phonon 使用 DirectShow 后端,DirectShow 使用来自quartz.dll 的标准 MJPEG 编解码器加载和播放我们的视频文件。
但是 Windows 7 上的一些测试人员报告说视频播放中断,我在其中一台机器上进行了快速操作,并没有发现任何特别之处,但是:
- InstalledCodecs 实用程序报告 MJPEG 编解码器存在并启用
- Windows Media Player 可以正常播放文件(但我认为它使用不同的后端,而不是 DirectShow)。
- Media Player Classic 配置为使用 DirectShow 并且标准 MJPEG 插件抱怨没有可用的编解码器。
- 我们的软件确实坏了,显然是出于同样的原因,不管它是什么。
phonon 后端安装在插件目录中,该目录已添加到我在日志中看到的搜索路径中,因此应该加载它。我在开发机器上重命名了 QtSDK,以确保只有已安装的 qt 插件可用于应用程序并且它继续在那里工作。
如果您有任何关于下一步看哪里的建议,我将不胜感激。
我最终想知道的是:
- 可能是什么问题
- 安装程序或应用程序本身如何检测到问题
- 如何解决问题 - 自动解决,或通过指示用户
【问题讨论】:
-
另一个编解码器可以接管
JPEG解码(或MJPG- 无论您使用什么)。您最好在发生错误时拥有过滤器图形拓扑,以及由于某些 API 方法而应该注册的错误代码。 -
我们不介意其他编解码器是否接管解码,只要它会产生帧 :-) 我会考虑编写一个简单的测试应用程序来尝试构建过滤图表并测试任何错误情况以及其他情况。感谢您的支持;)
标签: qt directshow phonon