问题
We're developing a Qt-based application that includes video playback using Phonon. We use .avi files with MJPEG compression (as we need fast seeking to particular frames).
On the development machine (running Windows 7) all works well - Phonon uses DirectShow backend, DirectShow loads and plays our video files using standard MJPEG codec from quartz.dll
.
But some of the testers on Windows 7 reported broken video playback, I had a quick on one of the machines and see nothing special there, but:
- InstalledCodecs utility reports MJPEG codec present and enabled
- Windows Media Player plays the files fine (but I gather it uses a different backend, not the DirectShow).
- Media Player Classic configured to use DirectShow and the standard MJPEG plugin complains that there is no codec available.
- Our software indeed breaks, apparently for the same reason, whatever it is.
The phonon backend is installed in the plugins directory which is added to the search paths which I see listed in the logs, so it should be loaded. I renamed QtSDK on the development machine to make sure only installed qt plugins are available to the application and it continues to work there.
I would appreciate any advice as to where to look at next.
What I'd eventually like to know is:
- what could be the problem
- how could installer or the app itself detect the problem
- how could the problem be solved - either automatically, or by instructing the user
回答1:
I ran into a similar issue recently, but it was with a variety of video file formats, not necessarily just the MPEG compression.
The solution I found was to install a coverall codec pack. This did a good job for the setup on a handful of computers. If you are deploying to a lot of users, you will probably want to find the exact codecs you need and make sure phonon can find them.
K-Lite Codec Pack Download
来源:https://stackoverflow.com/questions/12584767/what-could-make-phonon-directshow-miss-a-standard-codec