A couple of weeks back, I gave an internal presentation that included quite a few videos. Getting these videos to work reminded me just how terrible this corner of the software world can be.
I put together my videos using Sony Vegas (this was the pleasurable part – it’s fun and easy to use), and exported them as AVIs using Xvid. I didn’t have any particular reason to choose Xvid, except that I like to try the open source option first, and it seemed to give good results with the default settings (the bewilderment of video codec settings is a story for another day!). The videos played in VLC, they played in Windows Media Player, they played from within Powerpoint. At this point I thought I was done, and I didn’t bother saving my Vegas project. That was pretty stupid, of course, but it’s the only real mistake I made …
How not to deal with errors
The presentation was to be run on a different computer, so I thought I’d start by checking it worked on my desktop PC. Although the videos worked from VLC, they didn’t play from within Powerpoint. I checked in Windows Media Player next, and that failed too. I’m sure you’re familiar with this sight:
And probably this too 🙂
If you go to web help, here’s what you get:
You’ve encountered error message C00D10D1 while using Windows Media Player. The following information might help you troubleshoot the issue. Codec is missing. Windows Media Player cannot play the file (or cannot play either the audio or video portion of the file) because the XVID MPEG-4 (XVID) codec is not installed on your computer. The missing codec might be available to download from the Internet. To search for the XVID MPEG-4 (XVID) codec, see WMPlugins.com
Let’s count up the clicks to get this error fixed: little red error icon – one, web help button – two, link to WMPlugins.com – three, link to the actual codec site – four, click to download codec (more if the codec website messes you around) – five, and then you still have to go through an installer wizard. It’s a tedious process, even when it works perfectly. And who cares about the hex code of the error? In my case, I did already have Xvid installed, so I’m not sure what was going on; I re-installed it and rebooted for good measure … no use.
Stupid problems, stupid solutions
My next thought was to import these videos back into Vegas so I could save them out with a different codec. Panic set in at this point as Vegas would not read them!!! Here was a file which it had saved out, which played on every media player on the machine (I was back on my laptop at this point) and it couldn’t read it back in. That’s breaking a pretty fundamental rule for any type of software, and I was starting to get angry (partly at myself for not saving the Vegas project originally).
After some investigation online, I found some forums which helped. Turned out that Vegas would read the files back in once I changed the file header to say “DIVX” instead of “XVID” using a FourCC changer. How stupid is that? It’s the exact same video data. Whatever the technical reason, it’s just plain daft from a user’s point of view.
Now I had the videos back in Vegas, but things got worse. When I tried the actual machine the presentation would run on, the videos worked in VLC and Media Player, but not in Powerpoint. Horror!! The main difference I could see was that this machine had Vista and Powerpoint 2007, not XP and 2003. I tried a WMV export from Vegas instead, and this worked (I had a feeling that Powerpoint handles WMV better), but the export codec created horribly blurred output, particularly where text was involved. I was really short of time, and was going to give up and put up with blurring, but one of our IT guys produced a stroke of genius. “Have you tried just renaming the AVIs to WMV, cos it probably just uses the MIME type to play it anyway?” I was equal parts furious, incredulous and relieved when this worked!
There you have it. If you’re using AVIs in Powerpoint, rename them to WMV. According to the Internet, it’s Vista-related.
There’s a bigger lesson here than how to get videos to play in Powerpoint (although that’s nice to know): as programmers, we are frequently too smart for our own good. When software breaks down, we actually enjoy the puzzle factor of figuring out how to get it to work (I’m ashamed to admit, part of me enjoyed this experience). We accept detailed technical explanations for why things go wrong, with too little questioning: I mean, it’s obvious that a video can’t play if you don’t have the codec on your machine, right?
This is where we get ourselves into trouble. Our users don’t enjoy puzzling over their computer problems. They don’t care about detailed technical explanations which mean nothing to them, and which make them feel ignorant. They just want stuff to work. If a computer problem takes me a few hours of puzzling to solve, most people would never get there – they’d either give up, or waste a lot of time, but either way they’d fail.
Videos should just play. Systems should come with as many codecs as possible pre-installed. If you don’t have a codec, your media player should surely be able to download it automatically for you. Failing that, it should provide you with help that actually helps you – in 1 click, not 5. Getting this to work doesn’t sound like rocket science (in fact, it sounds a lot easier than writing a video codec). It just requires programmers to start thinking and caring about normal users.